python3--内置函数,python3--内置,python3--内
python3--内置函数,python3--内置,python3--内
python3--内置函数
内置函数:
截止到python 3.6.2 版本,现在python一共提供了68个内置函数;即python提供给你直接可以拿来使用的所有函数。
内置函数 | ||||
---|---|---|---|---|
abs() | dict() | help() | min() | setattr() |
all() | dir() | hex() | next() | slice() |
any() | divmod() | id() | object() | sorted() |
ascii() | enumerate() | input() | oct() | staticmethod() |
bin() | eval() | int() | open() | str() |
bool() | exec() | isinstance() | ord() | sum() |
bytearray() | filter() | issubclass() | pow() | super() |
bytes() | float() | iter() | print() | tuple() |
callable() | format() | len() | property() | type() |
chr() | frozenset() | list() | range() | vars() |
classmethod() | getattr() | locals() | repr() | zip() |
compile() | globals() | map() | reversed() | __import__() |
complex() | hasattr() | max() | round() | |
delattr() | hash() | memoryview() | set() |
上面便是内置函数列表,按首字母排序,难免看起来混乱无序,不便于记忆;
幸好课上萌萌哒景女神提供了总结归纳好的思维导图,把这些函数分成了6大类。
由于学习进度原因,此处只写标红的四大块(56个方法)~
作用域相关:
基于字典的形式获取全局变量和局部变量
globals()——获取全局变量的字典(以字典类型返回当前位置的全部全局变量。)
a=‘runoob‘print(globals()) # globals 函数返回一个全局变量的字典,包括所有导入的变量。{‘__builtins__‘: <module ‘__builtin__‘ (built-in)>, ‘__name__‘: ‘__main__‘, ‘__doc__‘: None, ‘a‘: ‘runoob‘, ‘__package__‘: None}globals()
locals()——获取执行本方法所在命名空间内的局部变量的字典(以字典类型返回当前位置的全部局部变量;对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。)
>>>def runoob(arg): # 两个局部变量:arg、z... z = 1... print (locals())... >>> runoob(4){‘z‘: 1, ‘arg‘: 4} # 返回一个名字/值对的字典locals()
其他:
字符串代码类型的执行:
eval( )函数用来执行一个字符串表达式,并返回表达式的值。
>>>x = 7>>> eval( ‘3 * x‘ )21>>> eval(‘pow(2,2)‘)4>>> eval(‘2 + 2‘)4>>> eval("n + 4")85eval()
exec() 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。(exec 返回值永远为 None)
>>>exec(‘print("Hello World")‘)Hello World# 单行语句字符串>>> exec("print (‘runoob.com‘)")runoob.com # 多行语句字符串>>> exec ("""for i in range(5):... print ("iter time: %d" % i)... """)iter time: 0iter time: 1iter time: 2iter time: 3iter time: 4exec()
x = 10expr = """z = 30sum = x + y + zprint(sum)"""def func(): y = 20 exec(expr) exec(expr, {‘x‘: 1, ‘y‘: 2}) exec(expr, {‘x‘: 1, ‘y‘: 2}, {‘y‘: 3, ‘z‘: 4})func()输出结果:603334exec()
code = ‘‘‘import os print(os.path.abspath(‘.‘))‘‘‘code = ‘‘‘print(123)a = 20print(a)‘‘‘a = 10exec(code,{‘print‘:print},)print(a)指定global参数
compile将字符串类型的代码编译。代码对象能够通过exec语句来执行或者eval()进行求值。
参数说明:
1.参数source:字符串或者AST(Abstract Syntax Trees)对象。即需要动态执行的代码段。
2.参数 filename:代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。当传入了source参数时,filename参数传入空字符即可。
3.参数model:指定编译代码的种类,可以指定为 ‘exec’,’eval’,’single’。当source中包含流程语句时,model应指定为‘exec’;当source中只包含一个简单的求值表达式,model应指定为‘eval’;当source中包含了交互式命令语句,model应指定为‘single‘。
>>> #流程语句使用exec>>> code1 = ‘for i in range(0,10): print (i)‘>>> compile1 = compile(code1,‘‘,‘exec‘)>>> exec (compile1)13579>>> #简单求值表达式用eval>>> code2 = ‘1 + 2 + 3 + 4‘>>> compile2 = compile(code2,‘‘,‘eval‘)>>> eval(compile2)>>> #交互语句用single>>> code3 = ‘name = input("please input your name:")‘>>> compile3 = compile(code3,‘‘,‘single‘)>>> name #执行前name变量不存在Traceback (most recent call last): File "<pyshell#29>", line 1, in <module> nameNameError: name ‘name‘ is not defined>>> exec(compile3) #执行时显示交互命令,提示输入please input your name:‘pythoner‘>>> name #执行后name变量有值"‘pythoner‘"
输入输出相关:
input()输入
s = input("请输入内容 : ") #输入的内容赋值给s变量print(s) #输入什么打印什么。数据类型是str
print()输出
def print(self, *args, sep=‘ ‘, end=‘\n‘, file=None): # known special case of print """ print(value, ..., sep=‘ ‘, end=‘\n‘, file=sys.stdout, flush=False) file: 默认是输出到屏幕,如果设置为文件句柄,输出到文件 sep: 打印多个值之间的分隔符,默认为空格 end: 每一次打印的结尾,默认为换行符 flush: 立即把内容输出到流文件,不作缓存 """print()源码剖析
import timefor i in range(0,101,2): time.sleep(0.1) char_num = i//2 #打印多少个‘*‘ per_str = ‘\r%s%% : %s\n‘ % (i, ‘*‘ * char_num) if i == 100 else ‘\r%s%% : %s‘%(i,‘*‘*char_num) print(per_str,end=‘‘, flush=True)# \r 可以把光标移动到行首但不换行打印进度条
数据类型相关:
type(x)返回变量x的数据类型
内存相关:
id(x) x是参数,返回一个变量的内存地址
hash(x) x是参数,返回一个可hash变量的哈希值,不可hash的变量被hash之后会报错。
t = (1,2,3)l = [1,2,3]print(hash(t)) #可hashprint(hash(l)) #会报错‘‘‘结果:TypeError: unhashable type: ‘list‘‘‘‘hash 实例
hash函数会根据一个内部的算法对当前可hash变量进行处理,返回一个int数字。
每一次执行程序,内容相同的变量hash值在这一次执行过程中不会发生改变。
文件操作相关:
open() 打开一个文件,返回一个文件操作符(文件句柄)
可以用encoding指定编码.
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。r+ 打开一个文件用于读写。文件指针将会放在文件的开头。rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。操作文件模式
模块操作相关:
__import__ 导入一个模块
import time
os = __import__(‘os‘)print(os.path.abspath(‘.‘))
帮助方法:
在控制台执行help()进入帮助模式。可以随意输入变量或者变量的类型。输入q退出
或者直接执行help(o),o是参数,查看和变量o有关的操作。
调用相关:
callable(n),n是参数,看这个变量是不是可调用。
如果n是一个函数名,就会返回True
def func():passprint(callable(func)) #参数是函数名,可调用,返回Trueprint(callable(123)) #参数是数字,不可调用,返回Falsecallable 实例
查看参数所属类型的所有内置方法:
dir() 默认查看全局空间内的属性,也接受一个参数,查看这个参数内的方法或变量
print(dir(list)) #查看列表的内置方法print(dir(int)) #查看整数的内置方法
和数字相关:
数字:
数据类型相关:bool,int,float,complex
进制转换相关:bin,oct,hex
数学运算相关:abs,divmod,min,max,sum,round,pow
和数据结构相关:
序列:
列表和元组相关的:list和tuple
字符串相关的:str,format,bytes,bytearry,memoryview,ord,chr,ascii,repr
ret = bytearray(‘alex‘,encoding=‘utf-8‘)print(id(ret))print(ret[0])ret[0] = 65print(ret)print(id(ret))bytearray
ret = memoryview(bytes(‘你好‘,encoding=‘utf-8‘))print(len(ret))print(bytes(ret[:3]).decode(‘utf-8‘))print(bytes(ret[3:]).decode(‘utf-8‘))输出结果:6你好Process finished with exit code 0memoryview
序列:
reversed
l = (1,2,23,213,5612,342,43)print(l)print(list(reversed(l)))
执行结果:
(1, 2, 23, 213, 5612, 342, 43)
[43, 342, 5612, 213, 23, 2, 1]
slice
l = (1,2,23,213,5612,342,43)sli = slice(1,5,2)print(l[sli])执行结果:(2, 213)Process finished with exit code 0
数据集合——字典和集合:dict,set,frozenset
数据集合:len,sorted,enumerate,all,any,zip,filter,map
filter和map:http://http://www.cnblogs.com/bigtreei/p/7819450.html
sorted方法:http://www.cnblogs.com/Eva-J/articles/7265992.html
官方参考文档:
https://docs.python.org/3/library/functions.html#object
python3--内置函数
评论关闭