# 常用重点方法将标红
1、abs()求绝对值
2、all()可迭代对象非0或者为空返回True,其他情况返回False
print(all([-1, 2, 3, 4]))
3、any()可迭代对象中非0或者非空返回True,其他情况返回False
4、ascii()返回一个字符串的可打印格式 (使用场景未知)
5、bin()十进制转二进制
6、bool()判断真假,非0或非空为True,0为False
7、bytearray()转字节数组(使用场景未知)
b = bytearray("abcd", encoding="utf-8")
print(b[1])
b[1] = 50 # 字符串是不能修改的,通过这种转字节数组的方式可以修改
print(b)
8、callable()判断是否可以调用,即后面可以加()即可以调用。
print(callable([]))
print(callable(abs))
9、chr()返回一个编码的对应的字符
10、exec()用在代码编译执行,可以直接执行字符串格式的代码。
code1 = "for i in range(10):print(i)"
compile(code1, "err.log", "exec")
exec(code1) # 其实exec直接也可以执行,不需要compile
code2 = "1+2+3*6" # 也可以这样写,直接执行代码,但复杂的就不执行了,比如for之类的只能用exec()
print(eval(code2))
11、complex()输出复数
print(complex(11))
print(complex(100))
12、delattr()面向对象要用到的,等面向对象的时候详细讲
13、dict()字典
14、dir()查看对象方法
15、divmod()返回余数和商
16、enumerate()转换一个可迭代对象为一个元组列表,每个元组元素都有两个值,一个是数字索引,一个是原迭代对象的值
list1 = ["1", "2", "3"]
enu = enumerate(list1, 1) # 1是定义开始索引
print(list(enu))
17、将字符串格式的代码动态执行,前面也介绍过了
18、filter过滤,如果一个函数整个程序就用一次,那么就没有必要定义了,可以用匿名方式
print((lambda n: 10 if n < 4 else n)(3)) # lambda只能写三元运算,不能加if和for之类的复杂运算
res = filter(lambda n: n > 5, range(10)) # 将大于5的过滤出来
for i in res:
print("..", i)
res = map(lambda n: n * n, range(10)) # 将每一个值按照lambda定义的方式处理,然后返回
for i in res:
print(">>", i)
list2 = [ii * ii for ii in range(10)] # 上面也可以这样写,这是一个列表表达式
for i in list2:
print(i)
import functools
res = functools.reduce(lambda x, y: x * y, range(1, 10)) # 计算阶乘
print(res)
19、转浮点数
20、format()转换格式
username = "tangwei"
password = "123"
age = "18"
info = """
-------{_name}的信息-------
姓名:{_name}
密码:{_password}
年龄:{_age}
""".format(_name=username,
_password=password,
_age=age
)
print(info)
info = """
-------{0}的信息-------
姓名:{0}
密码:{1}
年龄:{2}
""".format(username,
password,
age
)
print(info)
21、frozenset转成不可变的集合
# 之前集合这样写,是可以变的,
print(set([1, 2, 3, 4, 5, 6, 1, 2, 3]).pop()) # 有pop方法
print(frozenset([1, 2, 3, 4, 5, 6, 1, 2, 3])) # 这样就没有pop方法了。
22、gettater() 面向对象的时候再说
23、globals()以字典的形式,返回本程序中所有的变量名和值
24、hasattr() 面向对象的时候再说
25、hash() 将字符串转成一个固定的哈希码,两个相同对象的hash值相同,这样就可以进行比较
# 不仅可以用来比较,还可以将多个哈希值排序以后用二分法来快速查找。
# 假如一共10个元素,我要找hash值为3的元素,先做二分定位到5,然后
# 比较大小,后决定是在前面找还是后面找
print(hash("alex"))
print(hash("jack"))
26、hlep() 查看帮助
27、hex() 一个数字转16进制
28、id() 返回内存地址
29、input() 等待用户从控制台输入
30、int() 转整型
31、isinstance() 判断一个对象是否是某个类型
from collections import Iterator
print(isinstance([], Iterator))
print(isinstance((), Iterator))
print(isinstance({}, Iterator))
print(isinstance("abc", Iterator))
print(isinstance((x for x in range(10)), Iterator)) # 生成器是迭代器
print(isinstance(10, Iterator)) # 数字不是迭代器对象
32、issubclass() 判断是不是子类,讲面向对象再详细讲
33、iter() 返回一个迭代器对象,这在前面的迭代器那一节有详细讲过
print(iter([1, 2, 3, 4, 5]).__next__())
34、len() 返回对象长度
35、list() 讲一个可迭代对象转列表对象
36、locals() 也是打印全部变量,不过这可以打印局部变量,而globals()是打印全局的
def test():
test_a = "111"
# 可以在局部打印局部变量
print("里面打印局部变量", locals().get("test_a"))
# 找不到该变量
print("里面打印全局变量", globals().get("test_a"))
test()
# 找不到该变量
print("外面打印局部变量", locals().get("test_a"))
# 找不到该变量
print("外面打印全局变量", globals().get("test_a"))
37、max() 返回列表中的最大值
print(max([1, 2, 3, 4, 6, 7])) # 一个列表返回里面最大的值
print(max(1, 2, 3, 4, 5, 6, 7, 8)) # 多个位置参数比较值
print(max([3, 4], [1, 2])) # 多个列表,返回相对最大的那个列表
38、min() 返回列表中的最小值
print(min([1, 2, 3, 4, 6, 7])) # 一个列表返回里面最小的值
print(min(1, 2, 3, 4, 5, 6, 7, 8)) # 多个位置参数比较值
print(min([3, 4], [1, 2])) # 多个列表,返回相对最小的那个列表
39、next() 相当于迭代器中的__next__() 让迭代器生成一个值
iter_obj = iter([1, 2, 3, 4])
print(iter_obj.__next__())
print(next(iter_obj)) # 作用同上
40、oct() 转8进制
41、open() 打开文件的操作,在前面已经介绍过了
42、 ord() 返回一个字符的Unicode编码
43、pow(x,y) 返回一个x的y次方的结果
44、print() 像一个终端输出
# 输出到一个文件
f_w = open("test.txt", mode="w",encoding="utf-8")
for i in range(10):
print("tangwei",i, file=f_w, flush=True)
f_w.close()
# 输出到控制台
print("tangwei")
45、repr() 用字符串表示一个对象
list1 = [11,22,33,44]
print(eval(repr(list1)) == list1) # 返回的列表字符串用eval执行以后跟原先的对象相同
46、reversed() 反转以后变成一个迭代器,跟列表中的反转是一样的
print(reversed("12345").__next__())
print(reversed([1,2,5,6]).__next__())
47、round() 截断数字
print(round(1.2221)) # 取整
print(round(2.541112,2)) # 保留2位小数
48、setattr() 面向对象的时候详细讲
49、sorted() 排序返回一个列表 #######
# 字典是无序的,但是可以用sorted排序
dict1 = {1:"1",10:"22",55:"1",3:"23",2:"23",0:"23",101:"23"}
print("无排序",dict1)
print("按key来排序",sorted(dict1))
print("按value来排序",sorted(dict1.values()))
print("按key来排序,同时也显示value",sorted(dict1.items()))
print("按value来排序,同时也显示key",sorted(dict1.items(),key=lambda x:x[1])) # x[1]就是取字典中每一个元素的值
50、staticmethod() 静态方法,后面详细说
51、str() 转字符串
list1 = [1,2,3,4,5]
str1 = str(list1)
print(str1.replace("1","100")) # 将列表转成字符串,然后使用字符串的方法replace替换里面的字符1为100
52、sum() 求和,只能传数字型可迭代对象
print(sum([1,2,3,4,5,6]))
53、supper() 类的父类对象,后面详细说
54、tuple() 转元组,元组数据不可以修改,只能读
print(tuple([1,2,3,4,5,6]))
55、type() 查看对象的数据类型
56、vars() 返回对象的所有属性名字典,跟locals()方法作用类似
def test1():
a=111
print(vars()) #读方法局部的属性
test1()
print(vars())
57、zip() 合并两个列表
a =[1,2,3,4,5,6,7,8]
b =["11","22","33","44","55"]
# 按最少数量的那个序列来,多的会被丢弃
for i in zip(a,b):
print(i)
58、__import__() 引入字符串形式的包
time = __import__("time")
print(dir(time))