欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python学习笔记:python3.5.2内置方法汇总

程序员文章站 2022-03-25 22:52:26
# 常用重点方法将标红1、abs()求绝对值 print(abs(-1)) 2、all()可迭代对象非0或者为空返回True,其他情况返回False print(all([-1, 2, 3, 4])) 3、any()可迭代对象中非0或者非空返回True,其他情况返回False print(any([ ......
# 常用重点方法将标红



1、abs()求绝对值
print(abs(-1))

2、all()可迭代对象非0或者为空返回true,其他情况返回false
print(all([-1, 2, 3, 4]))

3、any()可迭代对象中非0或者非空返回true,其他情况返回false
print(any([0]))

4、ascii()返回一个字符串的可打印格式 (使用场景未知)
print(ascii("你好"))

5、bin()十进制转二进制
print(bin(1))

6、bool()判断真假,非0或非空为true,0为false
print(bool([0]))

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()返回一个编码的对应的字符
print(chr(97))

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()字典
print(dict())
print(())

14、dir()查看对象方法
print(dir([]))

15、divmod()返回余数和商
print(divmod(5, 2))

16、enumerate()转换一个可迭代对象为一个元组列表,每个元组元素都有两个值,一个是数字索引,一个是原迭代对象的值
list1 = ["1", "2", "3"]
enu = enumerate(list1, 1)  # 1是定义开始索引
print(list(enu))

17、将字符串格式的代码动态执行,前面也介绍过了
print(eval("1+3+4"))

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、转浮点数
print(float(1))

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()以字典的形式,返回本程序中所有的变量名和值
print(globals())


24、hasattr() 面向对象的时候再说

25、hash() 将字符串转成一个固定的哈希码,两个相同对象的hash值相同,这样就可以进行比较
# 不仅可以用来比较,还可以将多个哈希值排序以后用二分法来快速查找。
# 假如一共10个元素,我要找hash值为3的元素,先做二分定位到5,然后
# 比较大小,后决定是在前面找还是后面找
print(hash("alex"))
print(hash("jack"))


26、hlep() 查看帮助
help(abs)


27、hex() 一个数字转16进制
print(hex(500))


28、id() 返回内存地址
print(id(abs))

29、input() 等待用户从控制台输入
input("请输入你的名字:")

30、int() 转整型 
print(int(1.2))

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() 返回对象长度
print(len("123"))

35、list() 讲一个可迭代对象转列表对象
print(list("123"))


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进制 
print(oct(11))

41、open() 打开文件的操作,在前面已经介绍过了 

42、 ord() 返回一个字符的unicode编码
print(ord("你"))

43、pow(x,y) 返回一个x的y次方的结果
print(pow(2, 3))

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() 查看对象的数据类型
print(type("123"))

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))