一、作用域相关
locals:在局部作用域调用输出局部作用域中全部的名字,在全局作用域中调用则输出全局作用域中全部的名字。
globals:输出全局作用域中全部的名字
1 def func():View Code
2 a=1
3 b=2
4 print(locals())
5 return a,b
6 func()
7 print(globals())
8 --------------------------------------------------------------------------------------
9 {'b': 2, 'a': 1}
10 {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x02886350>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'G:/学习/Python项目/first/August/day16/t16.py', '__cached__': None, 'func': <function func at 0x029BA198>}
二、str类型代码执行
eval:执行字符串中的代码并返回结果
exec:执行字符串中的结果没有返回值
1 s='1+2+3'View Code
2 print(eval(s))
3 print(exec(s))
4 --------------------------------------------------------------------------------------
5 6
6 None
compile:将字符串编译成代码并将结果返回,再使用eval、exec执行。需要三个参数,第一个参数是需要编译的字符串代码,第二个参数用空字符串即可,第三个参数是编译模式(eval、exec、single)
1 s='1+2+3'View Code
2 x1=compile(s,'','eval')
3 print(eval(x1))
4 --------------------------------------------------------------------------------------
5 6
6
7
8
9 name=''
10 i='name=input(">>:")'
11 x2=compile(i,'','single')
12 exec(x2)
13 print(name)
14 --------------------------------------------------------------------------------------
15 >>:alex
16 alex
三、其他
1)输入输出
input:接收外部输入
print:输出信息。参数有四个,第一个参数是打印的信息,第二个参数是一个print输出多个值时每个值之间的分隔符默认时空格,第三个参数是print结尾输出默认是换行符,第四个参数是指定输出的目标可以是文件或者标准输出
1 #分隔符sep指定为, 结尾输出end指定为'' 输出到指定文件View Code
2 f=open('error','w',encoding='utf-8')
3 print(1,2,3,sep=',',end='',file=f)
4 print(1,2,3,sep=',',end='',file=f)
5 f.close()
2)数据类型相关
type:判断变量的类型。
3)内存相关
hash:获取对象的hash值,在程序运行期间该值不会改变,只有不可变数据类型可以求hash值。
id:获取对象类似内存地址的一个值。
4)文件操作相关
open:用于打开文件。参数有三个,文件的路径,打开的模式,文件的编码格式
5)模块相关
__import__:用于导入模块,等价于使用import
6)帮助
help:用于查看对象有哪些方法及使用方法。
7)调用相关
callable:用于判断对象是否可以被调用
8)查看内置属性
dir:用于查看对象有哪些方法和属性
四、数据类型相关
4.1、和数字相关
1)数据类型
bool:获取对象的布尔值
int:将字符串形式的数字和浮点型转为整型
float:将整型转为浮点型
complex:复数相关
2)进制转换
bin:十进制转二进制
oct:十进制转八进制
hex:十进制转十六进制
3)数学运算
abs:求绝对值
divmod:求两个数的商和余数
1 print(divmod(2,3))View Code
2 --------------------------------------------------------------------------------------
3 (0, 2)
min:求最小值
max:求最大值
sum:求和
1 print(sum({1,2,3,4,5,6})) #sum函数内的对象必须是可以迭代的比如列表、元祖、集合View Code
2 -----------------------------------------------------------------------------------
3 21
round:小数精确。参数有两个,第一个参数是一个小数,第二个参数是保留的小数点位数
1 print(round(3.1415926,2))View Code
2 --------------------------------------------------------------------------------------
3 3.14
pow:幂运算,或者幂运算之后再求余数
1 print(pow(6,2))#6**2 =》6*6View Code
2 print(pow(6,2,3))#6**2%3 =》 6*6%3
3 --------------------------------------------------------------------------------------
4 36
5 0
4.2、和数据结构相关
1)数据集合
dict:用于生成字典
set:用于生成集合
frozenset:用于生成不可变的集合
2)序列
list:用于生成列表
tuple:用于生成元祖
reversed:用于将列表或元祖的元素头尾互换并生成新的列表或元祖返回,原列表或元祖不变
slice:用于切片。有三个参数,第一个参数是起始索引,第二个参数是结束索引,第三个参数是步长
1 l=(1,2,3)View Code
2 x=slice(1,3,1) #slice(起始索引,结束索引,步长)
3 print(l[x])
4 --------------------------------------------------------------------------------------
5 (2, 3)
str:用于生成字符串
format:一般用于格式化输出
bytes:生成bytes类型,有两个参数,第一个参数是字符串,第二个参数是编码格式
1 s='你好'View Code
2 s1=bytes(s,encoding='utf-8')
3 print(s1)
4 --------------------------------------------------------------------------------------
5 b'\xe4\xbd\xa0\xe5\xa5\xbd'
bytearray:生成byte数组,可以修改其中每个元素的值
1 s='你好'View Code
2 s1=bytearray(s,encoding='utf-8')
3 print(s1)
4 s1[0]=230
5 print(s1)
6 print(s1.decode('utf-8'))
7 --------------------------------------------------------------------------------------
8 bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd')
9 bytearray(b'\xe6\xbd\xa0\xe5\xa5\xbd')
10 潠好
memoryview: 函数返回给定参数的内存查看对象(Momory view)。所谓内存查看对象,是指对支持缓冲区协议的数据进行包装,在不需要复制对象基础上允许Python代码访问。python中支持bytes类型
1 s='你好'.encode('utf-8')View Code
2 print(memoryview(s)[1])
3 --------------------------------------------------------------------------------------
4 189
ord:输出字符对应的Unicode数字
chr:输出数字对应的Unicode字符
ascii:等效于repr,输出字符串时保留引号
repr:等效于ascii
1 print(ascii(87))View Code
2 print(ascii('87'))
3 print(repr(87))
4 print(repr('87'))
5 --------------------------------------------------------------------------------------
6 87
7 '87'
8 87
9 '87'
3)数据类型通用内置函数
len:求对象元素个数
enumerate:给序列元素添加序号,序号起始值可以设定。参数有两个,第一个参数为可迭代序列,第二个参数为序号起始值
1 l=[1,2,3,4]View Code
2 for k,v in enumerate(l,1): #起始值为1,默认为0
3 print(k,v)
4 --------------------------------------------------------------------------------------
5 1 1
6 2 2
7 3 3
8 4 4
all:判断对象的布尔值是否都为True,都为True则结果为True,否则结果为False
any:判断对象中是否有布尔值为True的元素,有就结果为True,没有则结果为False
zip:将两个可迭代对象中相同索引值的元素两两组合为一个元祖,多出来的元素被舍弃,最后返回zip对象,可以用除str外任何可迭代对象工厂函数转换。
1 l1='abc'View Code
2 l2=(4,5,6,7)
3 print(list(zip(l1,l2)))
4 --------------------------------------------------------------------------------------
5 [('a', 4), ('b', 5), ('c', 6)]
filter:用于将传入的序列中满足传入函数中的条件的值返回,return的值是什么都不影响结果只要有返回值,可以用出dict和str外的可迭代对象工厂函数转换
1 def f(s):View Code
2 if s>2:
3 return s #返回值不是s也可以达到过滤的作用,只要有返回值就行
4 l2=(4,5,6,7)
5 print(set(filter(f,l2)))
6 --------------------------------------------------------------------------------------
7 {4, 5, 6, 7}
map:用于将传入的序列中的每个元素都作为被传入函数的参数然后执行被传入函数的函数体并返回指定结果,可以用出dict和str外的可迭代对象工厂函数转换
1 def f(s):View Code
2 if s>2:
3 return s
4
5 l2=(4,5,6,7)
6 print(set(map(f,l2)))
7 --------------------------------------------------------------------------------------
8 {4, 5, 6, 7}
9
10
11
12 def f(s):
13 if s>2:
14 return 2
15
16 l2=(4,5,6,7)
17 print(set(map(f,l2)))
18 --------------------------------------------------------------------------------------
19 {2}
sorted:用于将序列对象的元素排序产生新的序列对象并返回
五、生成器与迭代器相关
range:用于产生一个指定范围的整数列表
next:用于迭代器与生成器的取值
1 l=[1,2,3]View Code
2 new_l=iter(l)
3 print(next(new_l))
4 --------------------------------------------------------------------------------------
5 1
iter:用于将可迭代对象转换成迭代器
1 from collections import Iterable
2 from collections import Iterator
3 l=[1,2,3]
4 new_l=iter(l)
5 print(isinstance(l,Iterable)) #判断是否可迭代
6 print(isinstance(l,Iterator)) #判断是否是迭代器
7 print(isinstance(new_l,Iterable))
8 print(isinstance(new_l,Iterator))
9 --------------------------------------------------------------------------------------
10 True
11 False
12 True
13 True