# 常用重點方法將標紅
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))
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/160523.html
標籤:Python
