Python3学习之路~3.3 内置函数
Python内置函数表:
内置参数详解:https://docs.python.org/3/library/functions.html?highlight=built#ascii
用法:
#Author:Zheng Na # abs() 取绝对值
print(abs(-10)) # # all() 如果可迭代对象iterabla中的所有元素都为真(或者iterable为空),返回True
print(all([])) # True
print(all([1,-5])) # True
print(all([0])) # False # any() 如果可迭代对象iterable中任意一个元素为真,返回真;如果iterable为空,返回False
print(any([])) # False
print(any([1])) # True
print(any([-5])) # True
print(any([0])) # False
print(any([1,-5,0])) # True # ascii() 把一个数据对象变成一个可打印的字符串的形式,不常用
print(ascii("你好")) # '\u4f60\u597d'
a=ascii([1,2,3])
print(type(a),[a]) # <class 'str'> ['[1, 2, 3]'] # bin() 把一个整数转成二进制
print(bin(1)) # 0b1
print(bin(5)) # 0b101
print(bin(255)) # 0b11111111 # bool() 返回一个布尔值
print(bool(1)) # True
print(bool(-1)) # True
print(bool(0)) # False
print(bool([])) # False
print(bool([0])) # True
print(bool([1,2])) # True # bitearray() and bytes()
#前面讲过,字符串不可修改,字符串的二进制字节格式更不可以修改
# 要修改必须生成一个新的覆盖旧的,如果没覆盖,其实旧的a根本没改,如下
a= bytes("abcde",encoding="UTF-8")
print(a.capitalize(),a) # b'Abcde' b'abcde
# 但是,bitearray()是可修改的二进制字节格式
b=bytearray("abcde",encoding="UTF-8")
print(b[0]) # 97 打印了a的ASCII码
print(b[1]) # 98 打印了b的ASCII码
print(b[2]) # 99 打印了c的ASCII码
#b[1] = 'B' # 报错:TypeError: an integer is required
b[1] = 66
print(b) # bytearray(b'aBcde')
#如上,可以把字符串变成bytearray形式,然后就可以对字符串进行修改了 # callables() 判断是否可调用,即是否后面可加括号
print(callable([])) # False 列表不可调用
def sayhi():pass
print(callable(sayhi)) # True 函数、类可调用 # chr() 返回ASCII码的对应表,参数必须是数字,与ord()对应相反
print(chr(97)) # a
print(ord('a')) # # classmethod() 类方法 # compile() 用于底层的把代码进行编译的过程,我们基本用不到
code = "for i in range(10):print(i)"
c=compile(code,'','exec') # <code object <module> at 0x0000000002444A50, file "", line 1>
exec(c) #输出0到9,但其实直接exec(code)就可以执行,哈哈 code2 = "1+3/2*6"
c2=compile(code2,'','eval')
print(eval(c2) ) # 10.0 code3='''
def fib(max):
n,a,b=0,0,1
while n<max:
#print(b)
yield b
a,b = b,a+b
n=n+1
return 'done' g = fib(6)
while True:
try:
x = next(g)
print('g:', x)
except StopIteration as e:
print('Generator return value:', e.value)
break
'''
py_obj=compile(code3,'err.log','exec') #err.log打印错误日志实际上不好使
exec(py_obj)
# 输出:
# g: 1
# g: 1
# g: 2
# g: 3
# g: 5
# g: 8
# Generator return value: done # complex() 复数,不常用 # delattr() 非常有用 # dict() 生成一个字典
print(dict()) # {} # dir() 查询一个数据类型下面有什么方法可用
a={}
print(dir(a))
# 输出:
# ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values'] # divmod() 返回商和榆树
print(divmod(5,2)) # (2, 1) # enumerate()
name=['Amy','Bob','Cendy']
print(list(enumerate(name))) # [(0, 'Amy'), (1, 'Bob'), (2, 'Cendy')]
print(list(enumerate(name,start=1))) # [(1, 'Amy'), (2, 'Bob'), (3, 'Cendy')]
for index,item in enumerate(name):
print(index,item)
# 输出:
# 0 Amy
# 1 Bob
# 2 Cendy # eval() 将字符串string对象转化为有效的表达式参与求值运算返回计算结果
x = 1
print(eval('x+1')) # # exec() 执行以string类型存储的Python代码
x,y=2,3
exec("ans = x+y")
print("Answer is:",ans) # Answer is: 5 # filter() 过滤器,类似于map()
#把range(10)中符合lambda n:n>5规则的打印出来
res = filter(lambda n:n>5,range(10))
for i in res:
print(i) #打印6 7 8 9 # map() 类似于filter()
# 把后面的集合中的每一个值传入前面的lambda n:n*n进行处理,然后覆盖原来的列表
res = map(lambda n:n*n,range(10))
for i in res:
print(i) #打印0 1 4 9 16 25 36 49 64 81 # reduce() 在python2.7中有,在python3.0已经将其从内置函数移到标准库中了
import functools
res = functools.reduce( lambda x,y:x+y,range(10) ) #0+1+2+3+4+5+6+7+8+9=45
print(res) # # float() 浮点
# format() 类似于字符串的format # frozenset() 冻结的、不可变的集合
#集合默认是可修改的但是将集合变成frozenset之后就不可修改了,像元组一样
a = set([1,2,4,7])
print(dir(a)) #打印方法
b = frozenset([1,2,4,7])
print(dir(b))
#如上,可以看出b比a少了很多方法,比如['add', 'clear', 'pop', 'remove', 'update', 'difference_update', 'discard', 'intersection_update', 'symmetric_difference_update'] # getattr() # globals() 返回一个字典,将当前程序的所有全局变量以key-value的形式打印出来
print(globals()) # locals() 返回一个字典,将当前程序的局部变量以key-value的形式打印出来
def test():
local_var = 333
print(locals()) # {'local_var': 333}
print(globals().get('local_val')) # None
test()
print(globals().get('local_var')) # None # hasattr()
# hash() 哈希
# help() 查看帮助 # hex() 把一个整数转成16进制
print(hex(255)) # 0xff # id 返回内存地址 # input() 交互输入
# user= input("Username:") # int() 取整 # isinstance(object,classinfo) 判断object是否是classinfo类型
print(isinstance([1,2,3],list)) # True # issubclass() 判断是否是子类 # iter() 把一个可迭代对象变成一个迭代器
names=iter([1,2,3,4,5,6])
print(type(names)) # <class 'list_iterator'> #len() 长度
print(len([1,2,3])) # # max() 最大值
# min() 最小值 #memoryview()
#usage:
#>>> memoryview(b'abcd')
#<memory at 0x104069648>
#在进行切片并赋值数据时,不需要重新copy原列表数据,可以直接映射原数据内存,
import time
for n in (100000, 200000, 300000, 400000):
data = b'x'*n
start = time.time()
b = data
while b:
b = b[1:]
print('bytes', n, time.time()-start) for n in (100000, 200000, 300000, 400000):
data = b'x'*n
start = time.time()
b = memoryview(data)
while b:
b = b[1:]
print('memoryview', n, time.time()-start)
# 输出:
# bytes 100000 0.4980285167694092
# bytes 200000 3.0671753883361816
# bytes 300000 2.7071547508239746
# bytes 400000 5.042288541793823
# memoryview 100000 0.021001338958740234
# memoryview 200000 0.04300260543823242
# memoryview 300000 0.06600356101989746
# memoryview 400000 0.09100532531738281 # next() 相当于迭代器中的_next_() # oct() 把一个整数转成八进制
print(oct(13)) # 0o15 # open() 打开一个文件
with open('text.txt','w',encoding='UTF-8') as f:
pass # ord() 返回ASCII码的对应表,参数必须是字符,与chr()对应相反
print(chr(97)) # a
print(ord('a')) # # pow(x,y) 返回x的y次方
print(pow(2,8)) # # print() 打印
msg = "又回到最初的起点"
f = open("tofile.txt","w",encoding='UTF-8')
print(msg,"记忆中你青涩的脸",sep="|",end="",file=f) # property() # range()
for i in range(5):
print(i) #输出0到4
for i in range(1,6):
print(i) #输出1到5 # repr() 把一个对象变成字符串
a=repr([1,2,3])
print(type(a),[a]) # <class 'str'> ['[1, 2, 3]'] # reversed(seq) 跟列表中的reverse一样 # round()
print(round(1.3334)) #
print(round(1.3334,2)) # 1.33 # slice() 切片,没什么用处
d = range(20)
print(d[slice(2,5)]) #range(2,5) 相当于d[2:5]
print(d[2:5]) # sorted() 排序
a={6:2,8:0,1:4,-5:6,99:11,4:22}
#将字典变成列表,并按照key排序
print(sorted(a.items())) # [(-5, 6), (1, 4), (4, 22), (6, 2), (8, 0), (99, 11)]
#将字典变成列表,并按照value排序
print(sorted(a.items(),key=lambda x:x[1])) # [(8, 0), (6, 2), (1, 4), (-5, 6), (99, 11), (4, 22)] # starticmethod()
# str()
# super() # tuple() 元组
a = tuple([1,2,3])
print(a) # (1, 2, 3) # type() 查看对象的数据类型,并且他也是所有对象的根
print(type([])) # <class 'list'> # vars() 返回一个对象的所有属性名,不常用 # zip()
# zip(a,b)将a和b拼在一起,一一对应,像拉链(zip)一样
a=[1,2,3,4]
b=['a','b','c','d']
for i in zip(a,b):
print(i)
# 输出:
# (1, 'a')
# (2, 'b')
# (3, 'c')
# (4, 'd') # 如果a多b少,按照最少的来
a=[1,2,3,4,5,6]
b=['a','b','c','d']
for i in zip(a,b):
print(i)
# 输出:
# (1, 'a')
# (2, 'b')
# (3, 'c')
# (4, 'd') # __import__()
# import aaa可以引入一个模块名,但是__import__()可以引入一个字符串格式的
# __import__('aaa')
Python3学习之路~3.3 内置函数的更多相关文章
- oracle——学习之路(oracle内置函数)
oracle与很多内置函数,主要分为单行函数与集合函数. 首先要提一下dual表,它oracle的一个表,没有什么实质的东西,不能删除它,否则会造成Oracle无法启动等问题,他有很大用处,可以利用它 ...
- Python基础学习参考(三):内置函数
一:内置函数 在第一篇文章中,我们简单的认识了一下print()函数和input()函数,也就是输入和输出,这些函数我们可以直接的调用,不要自己定义或者引入什么,对吧?想这样的函数就叫做内置函数.这里 ...
- Python3标准库(一) 内置函数
Python中内置了很多的函数,而学习标准库我们需要事先熟悉这些内置函数,所以在这里一个个进行介绍.有些函数比较简单,只给予文字描述,而有些函数会给出示例代码帮助理解. 1.abs(x):返回一个整数 ...
- Python学习日记(六)——内置函数和文件操作(lambda)
lambda表达式 学习条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'prime' else: name = 'c ...
- mysql学习(十二)内置函数
常用的内置函数,常用select\ 字符串函数 contat('' , '', .....) //连接字符串 select concat(name, ' age is ', age) from per ...
- python学习笔记(五)— 内置函数
我们常用的‘’int,str,dict,input,print,type,len‘’都属于内置函数 print(all([1,2,3,4]))#判断可迭代的对象里面的值是否都为真 print(any( ...
- python学习笔记(四):生成器、内置函数、json
一.生成器 生成器是什么?其实和list差不多,只不过list生成的时候数据已经在内存里面了,而生成器中生成的数据是当被调用时才生成呢,这样就节省了内存空间. 1. 列表生成式,在第二篇博客里面我写了 ...
- 【python之路46】内置函数2,是【python之路18】的补充
将3.5版本中的68个内置函数,按顺序逐个进行了自认为详细的解析.为了方便记忆,将这些内置函数进行了如下分类: 数学运算(7个) 类型转换(24个) 序列操作(8个) 对象操作(7个) 反射操作(8个 ...
- python学习笔记(七)——内置函数
builtins.py模块,是python的内建模块,在运行时会自动导入该模块.在该模块中定义了很多我们常用的内置函数,比如print,input 等. 在 builtins.py 模块中给出如下注释 ...
随机推荐
- [Artoolkit] kpmMatching & Tracking of nftSimple
1. kpmMatching thread main() --> loadNFTData() --> trackingInitInit() --> In static void *t ...
- [Python] 05 - Load data from Files
文件读写 一.文件打开 传统方法 >>> f = open('data.txt', 'w') # Make a new file in output mode ('w' is wri ...
- WampServer自己DIY添加apache、php、mysql版本
下载自己需要的apache版本. 下载地址: http://httpd.apache.org/download.cgi http://www.apachelounge.com/download/ 解压 ...
- Go学习笔记(二)搭建Visual Studio Code调试环境
上一篇 Go学习笔记(一)安装Go语言环境 安装Visual Studio Code 这是目前我觉得最好用的文本编辑器了, https://code.visualstudio.com/ 中间有几部确认 ...
- 使用python爬虫爬取股票数据
前言: 编写一个爬虫脚本,用于爬取东方财富网的上海股票代码,并通过爬取百度股票的单个股票数据,将所有上海股票数据爬取下来并保存到本地文件中 系统环境: 64位win10系统,64位python3.6, ...
- juqery 点击谁获取他的值,赋给input标签
//html代码 <a href="javascript:;" class="confirm fahuo" data-fahuo-id="{$v ...
- day3 三、基本数据类型和运算符
一.多行注释和单行注释 """ 多行注释 多行注释 多行注释 """ # 单行注释 # print('hello world') # pri ...
- iPhone XS 能否经受的起寒冬的考验
我的知乎文章链接: https://zhuanlan.zhihu.com/p/51782644 华北地区近日寒风凛冽,温度骤降,已经进入真正的冬天了,最低温度可以达到零下10度,我们手里的iPhone ...
- 初学的linux命令行
这几条命令是今天刚初学的,以前总看别人输入命令,好利落,到自己了,真心觉得难.目前就学了这几个命令.后期等学会了,再进行添加 vm 文件名 ——> 新建文件: :wq ——> 保存并退 ...
- 泡泡一分钟:Automatic Parameter Tuning of Motion Planning Algorithms
Automatic Parameter Tuning of Motion Planning Algorithms 运动规划算法的自动参数整定 Jos´e Cano, Yiming Yang, Brun ...