Python 内置函数
-
eval 剥去字符串的外衣,运算里面的代码 有返回值
s1 = '1+3' print(s1) #'1+3' s2 = '{"name":"alex"}' print(eval(s1)) #4 print(eval(s2)) #{"name":"alex"}
eval 比较危险 容易执行危险代码 ...
网络传输的str,input,sql注入时 不要使用 eval
-
exec 与eval几乎一样 ,代码流 (同eval 尽量不要使用)
msg = """ for i in range(10): print(i) """ exec(msg) #直接运行字符串内代码
-
hash 获取一个对象 的哈希值 (可哈希 对象:int,str ,bool ,tuple)
-
help 打印这个对象的使用说明
-
callable 判断 一个 对象 是否可调用 返回bool值
-
int 取整 转换为int 类型
-
complex 复数 转换为 complex 类型
-
bin 将十进制 转换为 二进制 并返回
-
oct 将十进制 转换成八进制 并返回
-
hex 将 十进制 转换为 十六进制 并返回
-
divmod #求出 商 余数
print(divmod(10,3)) # (3,1) 商 3 余 1
-
round 保留浮点数的小数位数
print(round(3.1415926535,2)) #3.14
-
pow 幂运算
pow(2,3) #2**3 pow(2,3,3) #2**3 %3
-
bytes 编码转换
s1 = '熊猫' b = s1.encode('utf-8') #功能相同 b = bytes(s1,encoding = 'utf-8') #功能相同
-
ord 输入字符 找该字符 编码的位置
ord('a') #ASCLL :97
-
chr 输入位置数字 找出其对应的字符
print(chr(97)) #a chr('中') #TypeError chr(20013) #Unicode '中'
-
repr 返回一个对象的string 形式 (”原形毕露i“)
s1 = '熊猫' print(s1) #熊猫 print(repr(s1)) #'熊猫' #%r 在格式化输出时 也可以表示
-
all 可迭代对象中 ,全都是True 才是 True
l1 = [1,2,'12',True,''] all(l1) #False
-
any 可迭代对象中 ,有一个是True 就返回 True
-
print
print(1,2,3,sep='|') #1|2|3 (设置分隔符) print(1,end='.') print(2) #1.2 (设置换行符)
-
list
l1 = [1,2,3,4] l2 = list('abcd') #l2 = [a,b,c,d]
-
dict
dic = dict([(1,'one'),(2,'two')]) #{1:'one',2:'two'} dic = dict(one=1,two=2) #{1:'one',2:'two'} dict.fromkeys dict.update
-
abs 绝对值
-
sum 求和
l1 = [i for i in range(10)] sum(l1,100) #表示起始值100 145
-
reversed 返回反转的迭代器 不改变原对象
li = [i for i in range(10)] obj = reversed(l1) #obj = iterator
-
zip 拉链方法
l1 = [1,2,3,4,5] tu1 = ('panda','popcart','lalala') s1 = 'abcd' obj = zip(l1,tu1,s1) #type(obj) zip object for i in obj: print i # (1,'panda','a') # (2,'popcart','b') # (3,'lalala','c')
-
min ,max
求 最小值 最大值
l1 = [1,2,-3,4,-5,-7,-6,7] min(l1,key) #求出列表中 所有绝对值的 最小值 : min(l1,key = lambda x : abs(x)) #求一个字典的 最大值,最小值 (按值取) dic = dict(a=1,b=5,c=3) # {'a': 1, 'b': 5, 'c': 3} print(max(dic,key=lambda d : dic[d])) # b
-
filter 列表推导式的筛选模式
l1 = [2,3,4,1,6,7,8] filter(lambda x:x >3,l1) #返回迭代器 #[4, 6, 7, 8]
-
map 列表推导式的循环模式
l1 = [1,4,9,16,25] print([i**2 for i in range(1,6)]) ret = map(lambda x:x**2,[1,2,3,4,5]) #返回迭代器 ->list转换后 [1,4,9,16,25]