Python学习日记(十一) 内置函数
什么是内置函数?
就是python中已经写好了的函数,可以直接使用
内置函数图表:
以3.6.2为例
内置函数分类:
一、反射相关
二、基础数据类型相关
1.和数字相关
(1)数据类型
a.bool()
把一个值转换成布尔值
li = ['',[],1,12,0] for i in li: print(bool(i)) # false # false # true # true # false
b.int()
把一个值转换成整型
num = input('please input a number:') print(10 + int(num)) # please input a number:20 # 30
c.float()
把一个整数或数字字符串转换成带小数点的数
print(float('123.5'),type(float('123.5'))) #123.5 <class 'float'> print(float(-50.2),type(float(-50.2))) #-50.2 <class 'float'>
d.complex()
返回一个复数
a = 1 + 2j b = 2 print(complex(a)) #(1+2j) print(complex(b)) #(2+0j) print(complex(2,3)) #(2+3j)
(2)进制转换
a.bin()
将一个数以二进制字符串的方式表示
print(bin(2)) #0b10 print(bin(10)) #0b1010
b.oct()
把一个数转换成八进制的字符串
print(oct(20),type(oct(20))) #0o24 <class 'str'> print(oct(8),type(oct(8))) #0o10 <class 'str'>
c.hex()
把一个数字转换成十六进制的字符串
print(hex(10),type(hex(10))) #0xa <class 'str'> print(hex(28),type(hex(28))) #0x1c <class 'str'>
(3)数学运算
a.abs()
对一个数的值取绝对值,结果不改变原值
a = -5 print(abs(a)) #5
b.divmod()
返回一个以商和余数组成的元祖
print(divmod(10,5),type(divmod(10,5))) #(2, 0) <class 'tuple'> print(divmod(4,9)) #(0, 4)
c.round()
将浮点值四舍五入
import math pi = math.pi print(round(pi,4)) #3.1416
d.pow()
一般情况下给函数两个数可以计算次方,若给定三个数则在幂运算后再取余
print(pow(2,3)) #8 print(pow(2,0.5)) #1.4142135623730951 print(pow(3,2,2)) #1
e.sum()
print(sum([2,2,3,5,6,2,4])) #24 print(sum([2,2,3,5,6,2,4],10)) #34 这里只是先让10进行sum的运算
f.min()
print(min(-1,-2,2,3)) #-2 print(min(-1,-2,2,3,key=abs)) #-1 print(min('aab','aaab','bc',key=len)) #bc
g.max()
print(max(-4,-2,2,3)) #3 print(max(-4,-2,2,3,key=abs)) #-4 print(max('aab','aaab','bc',key=len)) #aaab
2.和数据结构相关
(1)
三、作用域相关
1.locals()
找到当前作用域下所有的变量对应关系,并以字典返回
2.globals()
找到全局作用域下所有的变量对应关系,并以字典返回
a = 1 b = 'hello' def func(): c = 3 print(locals()) #{'c': 3} print(globals()) #{'__name__': '__main__', '__loader__': <_frozen_importlib_external.sourcefileloader object at 0x002a5910>, # 'func': <function func at 0x00527cd8>, '__file__': 'c:/users/administrator/pycharmprojects/pyl/生成器/1.py', # '__spec__': none, '__cached__': none, 'a': 1, '__builtins__': <module 'builtins' (built-in)>, 'b': 'hello', # '__doc__': none, '__package__': none} func()
四、面向对象相关
五、迭代器/生成器相关
1.range()
用于创建一个整数列表,常用在for循环中
li = list(range(0,11,2)) print(li) #[0, 2, 4, 6, 8, 10]
2.__next__()
一个next对应一个值返回,如果这个迭代器已经没有值可以返回了那么就将报错
li = ['a',1,2] iterator = li.__iter__() print(iterator.__next__()) #a print(iterator.__next__()) #1
3.__iter__()
当一个具有可迭代数据使用__iter__()它会返回一个迭代器的内存地址
li = ['a',1,2] iterator = li.__iter__() print(iterator) #<list_iterator object at 0x0000000002202f60>
六、其他
1.输入输出
(1)input()
content = input('请输入一个数:') print(content) # 请输入一个数:5 # 5
(2)print()
特殊字符分隔
print('a','b','c',sep = '&&',end = '') #a&&b&&c
将用户输入的数据直接写入文件
f = open('file',mode='w',encoding='utf-8') content = input() print(content,sep=',',end='',file = f,flush=true) #file默认是输出到屏幕,如果设置文件句柄则输出到文件 #flush立即将内容输出到文件流,不留缓存 f.close()
2.内存相关
(1)hsah()
这里hash()中用到的参数必须是不可变数据类型,hash()完后结果会返回一串数字
print(hash(133)) #133 print(hash('aaaaa')) #-868214941 print(hash('aaaax')) #519685031 print(hash((1,2,3))) #-378539185
最直接的例子就是字典键的值,字典中的key是唯一的并且只能对应一个hash值
(2)id()
返回一个变量的内存地址
a = 5 b = 'hello' c = [1,2] print(id(a)) #490310160 print(id(b)) #4872512 print(id(c)) #6656288
3.字符串类型代码的执行
(1)eval()
可以执行字符串类型的代码,有返回值,适用于简单计算
建议一般情况下不要使用eval()除非自己很明确要执行什么
print(eval('123')) #123 print(eval('1 + 2 + 3 + 4')) #10
(2)exec()
可以执行字符串类型的代码,无返回值,适用于简单流程控制
print(exec('123')) #none print(exec('1 + 2 + 3 + 4 + 5')) #none code = '''for i in [1,5,10]: print(i*2)''' exec(code) # 2 # 10 # 20
(3)complie()
compile(source, filename, mode, flags=0, dont_inherit=false, optimize=-1) source:字符串或者ast filename:代码文件的名称,如果不是从文件中读取代码则传递一些可辨认的值。当传入source参数时,filename参数传空即可 model:编译代码的种类 eval属于计算类、exec属于流程类、single属于交互类
计算类:
code = '2*5/10 + 6' ret = compile(code,'','eval') print(eval(ret)) #7.0
流程类:
code = '''print([i*i for i in range(10) if i > 5])''' ret = compile(code,'','exec') exec(ret) #[36, 49, 64, 81]
交互类:
code = "name = input('please input your name:')" ret = compile(code,'','single') exec(ret) print(name)
4.文件操作相关
(1)open()
打开一个文件的相关操作
5.模块相关
(1)__import__()
# import time time = __import__('time') print(time.time())
6.帮助
(1)help()
能够查看一个变量或类型的方法
help(bool) # help on class bool in module builtins: # # class bool(int) # | bool(x) -> bool # | # | returns true when the argument x is true, false otherwise. # | the builtins true and false are the only two instances of the class bool. # | the class bool is a subclass of the class int, and cannot be subclassed. # | # | method resolution order: # | bool # | int # | object # | # | methods defined here: # | # | __and__(self, value, /) # | return self&value. # | # | __new__(*args, **kwargs) from builtins.type # | create and return a new object. see help(type) for accurate signature. # | # | __or__(self, value, /) # | return self|value. # | # | __rand__(self, value, /) # | return value&self. # | # | __repr__(self, /) # | return repr(self). # | # | __ror__(self, value, /) # | return value|self. # | # | __rxor__(self, value, /) # | return value^self. # | # | __str__(self, /) # | return str(self). # | # | __xor__(self, value, /) # | return self^value. # | # | ---------------------------------------------------------------------- # | methods inherited from int: # | # | __abs__(self, /) # | abs(self) # | # | __add__(self, value, /) # | return self+value. # | # | __bool__(self, /) # | self != 0 # | # | __ceil__(...) # | ceiling of an integral returns itself. # | # | __divmod__(self, value, /) # | return divmod(self, value). # | # | __eq__(self, value, /) # | return self==value. # | # | __float__(self, /) # | float(self) # | # | __floor__(...) # | flooring an integral returns itself. # | # | __floordiv__(self, value, /) # | return self//value. # | # | __format__(...) # | default object formatter # | # | __ge__(self, value, /) # | return self>=value. # | # | __getattribute__(self, name, /) # | return getattr(self, name). # | # | __getnewargs__(...) # | # | __gt__(self, value, /) # | return self>value. # | # | __hash__(self, /) # | return hash(self). # | # | __index__(self, /) # | return self converted to an integer, if self is suitable for use as an index into a list. # | # | __int__(self, /) # | int(self) # | # | __invert__(self, /) # | ~self # | # | __le__(self, value, /) # | return self<=value. # | # | __lshift__(self, value, /) # | return self<<value. # | # | __lt__(self, value, /) # | return self<value. # | # | __mod__(self, value, /) # | return self%value. # | # | __mul__(self, value, /) # | return self*value. # | # | __ne__(self, value, /) # | return self!=value. # | # | __neg__(self, /) # | -self # | # | __pos__(self, /) # | +self # | # | __pow__(self, value, mod=none, /) # | return pow(self, value, mod). # | # | __radd__(self, value, /) # | return value+self. # | # | __rdivmod__(self, value, /) # | return divmod(value, self). # | # | __rfloordiv__(self, value, /) # | return value//self. # | # | __rlshift__(self, value, /) # | return value<<self. # | # | __rmod__(self, value, /) # | return value%self. # | # | __rmul__(self, value, /) # | return value*self. # | # | __round__(...) # | rounding an integral returns itself. # | rounding with an ndigits argument also returns an integer. # | # | __rpow__(self, value, mod=none, /) # | return pow(value, self, mod). # | # | __rrshift__(self, value, /) # | return value>>self. # | # | __rshift__(self, value, /) # | return self>>value. # | # | __rsub__(self, value, /) # | return value-self. # | # | __rtruediv__(self, value, /) # | return value/self. # | # | __sizeof__(...) # | returns size in memory, in bytes # | # | __sub__(self, value, /) # | return self-value. # | # | __truediv__(self, value, /) # | return self/value. # | # | __trunc__(...) # | truncating an integral returns itself. # | # | bit_length(...) # | int.bit_length() -> int # | # | number of bits necessary to represent self in binary. # | >>> bin(37) # | '0b100101' # | >>> (37).bit_length() # | 6 # | # | conjugate(...) # | returns self, the complex conjugate of any int. # | # | from_bytes(...) from builtins.type # | int.from_bytes(bytes, byteorder, *, signed=false) -> int # | # | return the integer represented by the given array of bytes. # | # | the bytes argument must be a bytes-like object (e.g. bytes or bytearray). # | # | the byteorder argument determines the byte order used to represent the # | integer. if byteorder is 'big', the most significant byte is at the # | beginning of the byte array. if byteorder is 'little', the most # | significant byte is at the end of the byte array. to request the native # | byte order of the host system, use `sys.byteorder' as the byte order value. # | # | the signed keyword-only argument indicates whether two's complement is # | used to represent the integer. # | # | to_bytes(...) # | int.to_bytes(length, byteorder, *, signed=false) -> bytes # | # | return an array of bytes representing an integer. # | # | the integer is represented using length bytes. an overflowerror is # | raised if the integer is not representable with the given number of # | bytes. # | # | the byteorder argument determines the byte order used to represent the # | integer. if byteorder is 'big', the most significant byte is at the # | beginning of the byte array. if byteorder is 'little', the most # | significant byte is at the end of the byte array. to request the native # | byte order of the host system, use `sys.byteorder' as the byte order value. # | # | the signed keyword-only argument determines whether two's complement is # | used to represent the integer. if signed is false and a negative integer # | is given, an overflowerror is raised. # | # | ---------------------------------------------------------------------- # | data descriptors inherited from int: # | # | denominator # | the denominator of a rational number in lowest terms # | # | imag # | the imaginary part of a complex number # | # | numerator # | the numerator of a rational number in lowest terms # | # | real # | the real part of a complex number
7.调用相关
(1)callable()
判断参数是否是一个可调用的函数名,若是则true,不是则false
a = 1 print(callable(a)) #false def func(): return 5 print(callable(func)) #true print(callable(func())) #false
8.查看内置属性
(1)dir()
查看一个参数或变量的属性
print(dir([])) #['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
上一篇: Java求一个数组中的最大值和最小值
下一篇: 线上问题排查的四类方法