一、作用域相关
1.globals:查看全局作用域里的内容
a = 10
def func():
a = 10
print(globals())
打印结果:
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000205433B9240>, '__spec__': None, '__annotations__': {}, '__builtins__': , '__file__': 'C:/Users/DELL/PycharmProjects/pythonProject1/c/test1.py', '__cached__': None, 'a': 10, 'func': }
2.locals():查看当前作用域中的内容
a = 10
def func():
b = 8
print(locals())
func()
打印结果:
{'b': 8}
二、迭代器,生成器相关
1.range(start, end, step) 区间:[start, end)
2.iter() 取出迭代器
3.next()取出下一个元素
lst = [1, 2, 3] it = iter(lst) print(next(it)) print(next(it)) print(next(it))
打印结果:
1 2 3
三、其他:
1.dir:查看数据类型能执行的操作
print(dir(list))
打印结果:
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__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']
2.callable(参数):判断参数能否被调用,在调用函数前,先用callable函数判断能否能否被调用,避免报错。
def func():
pass
#func函数能被调用
print(callable(func))
#数字无法直接调用
print(123)
打印结果:
True False
3.help:输出数据结构的源代码
print(help(str))
打印结果:
class str(object) | str(object='') -> str | str(bytes_or_buffer[, encoding[, errors]]) -> str | | Create a new string object from the given object. If encoding or | errors is specified, then the object must expose a data buffer | that will be decoded using the given encoding and error handler. | Otherwise, returns the result of object.__str__() (if defined) | or repr(object). | encoding defaults to sys.getdefaultencoding(). | errors defaults to 'strict'. | | Methods defined here: | | __add__(self, value, /) | Return self+value. | | __contains__(self, key, /) | Return key in self. | | __eq__(self, value, /) | Return self==value. | | __format__(...) | S.__format__(format_spec) -> str | | Return a formatted version of S as described by format_spec.
4.import(参数):动态导出参赛名称的模块
mo = input(">>>") #"os"
__import__(mo)
5.open: 打开文件。
具体操作:open文件操作
`
6.id(参数):查看参数的内存地址
x = 3 print(id(x))
打印输出:
1798746368
7.hash(参数):输出参数的hash值。可变的数据结构不可hash,例如列表。
print(hash("AAA"), hash("AAA"))
打印结果:
-6981976277823355042 -6981976277823355042
8.eval:可以把字符串当成代码执行,有返回值。
print(eval("1 + 1"))
输出:
2
9.exec(参数):执行参数里的代码,但是没有返回值
存在安全性问题。
s = "a = 100" exec(s) print(a)#a标红,报错,但是正常打印
打印:
100
10.compile() :把一段字符串代码加载,后面可以通过exec和eval执行
compile(”parament1“, ”parament2“,”parament3“)
parament1:需要执行的字符串
parament2:代码所在的文件
parament3:exec:不需要返回值;eval:需要返回值;single:需要输入
c = compile("n = int(input('>>>:'))","","single")
exec(c)
print(n)
打印输出:
>>>:55 55
四、基础数据类型:
1.float:小数类型
2.int:整数类型
3.complex:复数
4.bool:布尔数据类型
5.bin(x):将数字转为二进制,例如:0b1001
6.oct(x):将数字转为八进制,例如:0o1772
7.hex(x):将数字转为十六进制,例如:0x15ab
8.abs(x):将数字转为绝对值
9.divmod(x, y):得到除法的商和余数构成的元组
10.round(x):得到x变为整数后的四舍五入值
11.pow(x, y)和c++一样
12.sum(x):计算列表,元组等的和
13.max(x):计算列表,元组等的最大值
14.min(x):计算列表,元组等的最小值
15.dict():得到集合
16.frozenset():建立集合后,不能更改
17.enumerate:枚举列表等。
18.any:列表等里的元素做or运算。
lst = [0, "换行", True] print(any(lst))
打印:
True
19.all(x):列表里的元素做and运算。
lst = [0, "换行", True] print(all(lst))
打印:
False
20.zip(x1,x2,x3):把对于位置的元素拉链链接到一起
lst1 = [1, 2, 3] lst2 = [2, 4, 6] lst3 = [3, 6, 9] a = zip(lst1, lst2, lst3) #直接打印是a的地址,要找迭代器看具体的值 print(a) it = iter(a) print(next(it)) print(next(it)) print(next(it))
打印结果:
(1, 2, 3) (2, 4, 6) (3, 6, 9)
tip:
利用zip快速构建字典。
lst1 = [1, 2, 3] lst2 = [2, 4, 6] # 快速构建字典 d = dict(zip(lst1, lst2)) print(d)
打印得到:
{1: 2, 2: 4, 3: 6}
21.reversed(参数):将参数里的数反转,并生成一个迭代器,注意原来参数里的数没有变化
lst1 = [1, 2, 3]
r = reversed(lst1)
print(lst1)
it = iter(r)
while True:
try:
print(next(it))
except StopIteration:
break
[1, 2, 3] 3 2 1
22.切片slice:在切片中适用,方便一次更改多个列表等的切片方式。
k = "上单流浪法师瑞兹" m = "中单疾风剑豪" s = slice(0, 6, 2) print(k[s]) print(m[s])
打印:
上流法 中疾剑
23.ord©:返回字符c编码的值
chr(num):返回编码值为num的字符
可以帮助生成验证码
print(ord("中"))
print(chr(20013))
打印
20013 中
24.repr:一个字符串最应该表现的方式
print(str("你好,'我t来了"))
print(repr("你好,'我t来了"))
打印输出:
你好,'我 来了 "你好,'我t来了"
25.format(num, “08d”) :将num变为8位数的数字,前面的空余部分用 ‘0’ 填充。
format(num, “.8f”) 小数点后保留8位小数



