函数基础:内置函数
内置函数:
abs() # 取绝对值 dict() # 把一个数据转成字典 min() # 取最小值 max() # 取最大值 bool() # 判断括号里面的是不是True。bool(0)和bool(False)是False,bool([ ]) #布尔一个空列表或者空字符串也是False。# 空字符串自带bool值,为:False # None也自带bool值为False all() # 判断括号里面的iterables所有元素的bool()是不是True(如果这个iterables里面含有0,那all(iterables)肯定是False)。如果这个iterables是空的,all(iterables)也返回True。 any() # 判断括号里面的iterables的元素中,只要有一个元素的bool()是True, any(iterables)就返回True dir() # 打印程序里面所有的变量 slice(开始,结束,步长) #设置切片规则 divmod(x,y) # 返回一个元祖,元祖的形式是(x//y ,x%y) id() # 判断内存地址 sorted(iterable,*,key=None,reverse=False) # 进行排序(reverse=False是从小到大排序,reverse=True是从大到小) enumerate() #枚举 bin() # 转成2进制
eval() 和 exec():
eval() # 将字符串str当成有效的表达式来求值并返回计算结果(只能处理单行代码)。 exec() # 功能和eval()一样,他们的区别在: 1. exec()可以对多行代码有效;2. eval()有返回值,但exec()没有返回值。
eval() 可以参考链接: http://blog.csdn.net/SeeTheWorld518/article/details/47983511
如:
情况1: a = '1+2+3' res1 = eval(a) # eval()有返回值,前面可以把返回值赋给变量 print('res:',res1) # 输出结果: # res: 6 情况2: a = '1+2+3' res2 = exec(a) # 没有返回值, print('res:',res2)# 输出结果: # res: None # 由于exec()没有返回值,赋给了变量也只能输出None
其它:
ord() # 返回在ASCII码中的位置 如:ord('a') 为97 chr() # 跟ord()正好相反 如: chr(97) 为'a' int() # 把其他类型数据转换成整数 str() # 把其他类型数据转换成字符串 float() # 转换成浮点型 sum(iterable) #求和 bytearray() # 可以将字符串转换成字节数组(通过这种方式可以修改原字符串)。
bytearray() 如: (用处不多)
s = '中文' s1 = bytearray(s,'utf-8') #转换字符串的时候必须指明encoding,函数将字符串使用str.encode方法转换成字节数组 print(s1) # 输出结果: # bytearray(b'\xe4\xb8\xad\xe6\x96\x87')
bytearray() 其他用法用法可参考: https://www.cnblogs.com/sesshoumaru/p/5979159.html
map() & filter() & reduce()
map():
map(function,iterables) # 将iterables中的每个元素进行前面的function
示例如下:
print(list(map(lambda x:x*x, [1,2,3,4,5]))) # map完后要把它list一下,要不然打印的是map的内存地址 # 输出结果: # [1, 4, 9, 16, 25]
filter():
filter(function,iterables) # 从iterables中过滤出能使前面函数为True的值。
示例如下:
print(list(filter(lambda x:x>3, [1,2,3,4,5]))) # filter完之后要list一下 # 输出结果: # [4, 5]
reduce() (2.7Python)
# Python3中的reduce移到了functools里面, 用法: reduce(function, sequence, initial=None) # --> value, # python3官方解释: Apply a function of two arguments cumulatively to the items of a sequence,from left to right, so as to reduce the sequence to a single value. For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates ((((1+2)+3)+4)+5). If initial is present, it is placed before the items of the sequence in the calculation, and serves as a default when the sequence is empty.
示例如下(python3中的):
import functools print(functools.reduce(lambda x,y:x*y, [1,2,3,4])) #输出结果: #24 import functools print(functools.reduce(lambda x,y:x*y, [1,2,3,4],10)) #输出结果: #240 import functools print(functools.reduce(lambda x,y:x*y, [ ],5)) #输出结果: # 5
pow(x,y)
pow(x,y) # x的y次方
print()
print(value,......,sep = ' 空格 ',end= '\n', file = None) # print的括号里面默认有一个end='\n' (换行符),如果你不想print完之后换行,可以在end='x'里面换成你想以什么结束打印的符号,什么都不写也可以 ;还默认有一个空格,这个空格里面的内容也可以修改(sep是separate的缩写)。
如:
print('hahaha','哈哈哈', sep='-->', end='|') # 打印结果: # hahaha-->哈哈哈|
print也可以把内容直接打印在文件中。如:
msg = '又回到最初的起点,加油' f = open('print测试','w') print(msg,'记忆中你青涩的脸',sep='|',end='',file=f) # 里面的内容都打印在了文件中 # print结果: # msg和“记忆中你青涩的脸” 都写在了文件‘print测试’里面了。
其它
tuple() #变成元祖 callable() #判断是否可调用 (列表、字符串等的结果是False,函数的输出结果是True。所以可以用这个判断一个变量是不是函数) frozenset() #使一个集合不可修改 vars() # 打印当前所有的变量名和其对应的值,dir()只能打印变量名 locals() # 通常在函数内部运行,打印函数内部所有的局部变量 # 返回一个字典 globals() # 打印全局变量,不管globals()是在函数内还是函数外运行 # 返回一个字典 zip(list1,list2) # 可以使两个列表中的值一一对应起来放入一个小元祖内; # 返回一个 zip 对象,可 list() 可dict() round(数字,n) # round是约等于(五舍六入),保留小数点后n位; hash() # 把要哈希的内容变成一个数字 set() # 变成集合
Code your future.