python函数有很多内置方法,在这里我们介绍一下函数的内置方法。
5.7.1内置方法
abs(n)
取绝对值dict
help
min(arg1, arg2, args, key) 取最小值
min([1,2,7,8,5,-1,-10])
max() 取最大值
setattr()
??(待补充)bool() 转换成bool类型
all(n) bool(n的每个元素)如果都是True,返回True。有任何一个是False,返回False。 注意:当n是个空的可循环类型(比如空列表[]),返回True
类似'and',可以在很多个and处理的情况下用
any(n) bool(n的每个元素)只要有一个是True,返回True。全是false,返回false。 注意:当n是个空的可循环类型(比如空列表[]),返回False
类似'or',可以在很多个or处理的情况下用
bytearray(bytes型) 将bytes修改成bytearray,可修改的数组(可变数据类型)。(bytes是不可变数据类型)
- bytes() 转成bytes型。
by = bytes('中国','utf-8') # 相当于 by = '中国'.encode('utf-8')
print(by)
callable()
判断对象是否可以被调用chr(n)
返回第n号ascii码对应的字符classmethod()
面向对象时学习compile() 自己写的语法转换成py解释器可以懂的内容,高端。。。
complex() 求复数
delattr() 面向对象学
dir(var) 返回变量var可用的所有方法和属性
dir(),没有参数的时候返回当前程序里定义的所有变量
hex(n) 将n转成16进制
slice() 切片。不常用
divmod(a,b) 返回(商,余数)的元组:(a//b,a%b)
id() 取内存地址
sorted() 排序。需要会用。
还有reversed()
ascii() 没啥用
enumerate() 枚举。返回一个对象,我们可以以for循环来取出枚举的内容。内容是(index,value)元组组成的
oct(10进制) 转8进制
bin(10进制) 转2进制
ord(字符) 返回字符对应的ascii码
staticmethod() 以后讲
eval() 读取文件的时候,把文件字符串转成相应的数据类型(以格式判断)
文件只能写入字符串或bytes类型。 当我们要写入字符串以外的数据类型的时候,需要先转成字符串。 读取文件的时候也只能读取到字符串。 想把数据类型转成原有的数据类型,就要用eval
list1 = ['aaa', 'bbb', 'ccc']
dict1 = {'k1': 'v1', 'k2': 'v2'}
# 写入文件
with open('testdata.txt', 'w') as f:
f.write(str(list1) + '\n')
f.write(str(dict1))
# 读取文件
with open('testdata.txt', 'r') as f:
d1 = f.readline() # 读取的是str
d2 = f.readline() # 读取的是str
f.seek(0)
d3 = eval(f.readline()) # 这一行格式是list,所以读取成list类型
d4 = eval(f.readline()) # 这一行格式是dict,所以读取成dict类型
print(type(d1), ':', d1, end="")
print(type(d2), ':', d2)
print(type(d3), ':', d3)
print(type(d4), ':', d4)
执行结果:
<class 'str'> : ['aaa', 'bbb', 'ccc']
<class 'str'> : {'k1': 'v1', 'k2': 'v2'}
<class 'list'> : ['aaa', 'bbb', 'ccc']
<class 'dict'> : {'k1': 'v1', 'k2': 'v2'}
exec('sen') 执行sen字符串的语句。不太常用。
exec("print('hello world!')")filter(func,iterable)
以iterable的每一个元素作为参数赋给func执行,如果func的返回值是True,则将符合条件的元素返回(filter对象返回)可以用list()把filter对象转成列表
li = [1, 2, 3, 4, 5, 6, 7, 8, 9]
def fun(a):
if a > 3:
return True
else:
return False
f_li = list(filter(fun,li)) # 把filter返回的iterable对象转成list形式
print(f_li)
执行结果:
[4, 5, 6, 7, 8, 9]
map(func,iter1) 用法类似filter,将iter1中的每个元素作为func的参数进行处理,返回处理结果的对象。(对象可以用list()转换成列表)
- frozenset()
把一个集合转换成冻结集合(不可修改)。
a = {1,2}
frozenset(a) # 这样集合a就不能修改了
- isinstance(o,t) 判断数据类型
a = {1,2}
frozenset(a)
isinstance(a,frozenset) # 返回True
round(number,小数点后保留位数) 舎位。注意round不是四舍五入。
注意,round()不是真正的四舍五入,当取舍位是0.5的时候,它会选择取舍后成为偶数的取舍方式(只适用于取舍后为整数或整十,整百的情况) 例:
print('0.5 =>', round(0.5))
print('1.5 =>', round(1.5))
print('2.5 =>', round(2.5))
print('3.5 =>', round(3.5))
print('4.5 =>', round(4.5))
print('4.67 =>', round(4.67,1)) # 取小数点后1位
执行结果:
0.5 => 0
1.5 => 2
2.5 => 2
3.5 => 4
4.5 => 4
4.67 => 4.7
sum(list) 纯数字的列表元素求和
zip() 把两个或多个列表拼到一起,并返回对应索引元素拼成的元组。只取最短的列表匹配。
还有一部分面向对象的函数以后学习...