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")85
eval()

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: 4
exec()技术分享
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()输出结果:603334
exec()技术分享
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))   #参数是数字,不可调用,返回False
callable 实例

查看参数所属类型的所有内置方法:

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 0
memoryview

序列:

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--内置函数

评论关闭