一、常用内置函数
-
abs(x) 返回绝对值,参数为int float,非字符只能num
-
all(iterable) 如果迭代对象里面的所有值都为真就返回True。all([1, 2, -7]) ---->True all(1, 0, 3]) ----->False
-
any(iterable) 和上相反有一个为真就返回 True
-
bin(digital) 把十进制数转为2进制
bin(1)
-->'0b1'bin(4)
-->'0b00'bin(255)
--> '0b11111111' -
a= byte('abcde', encoding='utf-8')
>>> a = bytes('abcde', encoding='utf-8')
>>> print(a.capitalize(), '-------', a)
b'Abcde' ------- b'abcde' #可以看到字符串a作为不可变类型,是无法改变的
- bytearray('abcde', encoding= "utf-8") 返回字符串每个字符ASCII值组成的一个列表,用处:作者本人在写登录程序时,用户名非法字符用过,将用户名bytearry()然后循环对比如果有ASCII值在32-47之间,当中就含有非法字符。返回False
>>> b_list = bytearray('abcde', encoding="utf-8")
>>> for item in b_list:
... print(item)
97
98
99
100
101
>>> b_list[1] = 55
>>> b_list
bytearray(b'a7cde') #可以看到,当我们把列表中的第1个元素ASCII值修改为55后字符串改变了
-
callable(v) 判断是否可调用,是返回True。这个还算好用,比如我们自己写装饰器时,判断下传过来是否是可调用的函数,如果不是那就不操作
callable([1])
-->False -
chr(数字)把数字对应的ASCII表中的代表返回
chr(97)
-->'a'chr(87)
-->'W' -
ord(字母) 把字符对应的ASCII值返回,只能一个字母,bytearray返回字符串的ASCII成迭代器(可理解为列表)
-
compile() 底层用来把字符串文件编译成可执行文件的函数。第一个参数字符串,第二个不用管,第三个可以为'exec','eval'
>>> code = "for i in range(3): print(i)"
>>> c = compile(code, ' ', 'exec')
>>> exec(c)
0
1
2
- eval(字符串) exec() 参数为可执行字符串,返回执行结果,同compile,eval只能执行一行简单的代码,而exec只要格式正确都行
>>> eval('1 + 2 + 6')
9
>>> code = '''def fun(a):
print(a)
fun("luxi")'''
>>> exec(code) #exec格式正确正常使用
luxi
>>> eval(code) #eval 作者也不知道,反正同一串代码,exec能执行,eval不行,eval在执行一行简单代码上没问题
File "<string>", line 1
def fun(a):
^
SyntaxError: invalid syntax
-
dir(dict) 查看变量,函数类所拥有的方法
[...'__hash__', '__init__', '__iter__',...'get', 'items', 'keys', 'pop'..'update', 'values']
-
divmod(5, 2) 返回商和余数 --->(2, 1)
-
filter(function, iterable) 按照function的规则过滤出来想要的结果
for i in filter(lambda x:x>5, [2, 3, 5, 7, 9]):
print(i)
----->7 9
filter会得到一个filter的迭代对象 -
globals() 返回程序命名空间中的所有key-value
-
locals() 返回函数的局部作用域(命名空间)的所有key-value
以上两个关于函数作用域问题在以下文章有写
[https://www.cnblogs.com/shiqi17/p/9331002.html]