-
數學類函式
-
abs()求絕對值
n = -12 print(abs(n))
-
sum() 求和 字串型別的元素不行
list1 = [11,22,33,44,55] res1 = sum(list1) print(res1)
- divmod() 傳入兩個數值,前一個除以後一個,得到兩個值:一個商,一個是餘數
s, y = divmod(16, 5) print(s) print(y)
- round() 四捨五入
n = 12.765 print(round(n,2)) # 12.77
-
pow 求冪次方
print(pow(2,3))
-
-
聚合類函式
- max() 求最大值
list1 = [123,53,225,1123,52,5,3,14] res1 = max(list1) print(res1)
-
mix()最小值
list1 = [123,53,225,1123,52,5,3,14] res1 = min(list1) print(res1)
-
all 判斷一個列表中是否出現一個False
# 只要存在一個元素轉bool型別結果是False,all()的結果就是False list1 = [12,45,124,'','hello',12.34] print(all(list1))
- any 判斷一個列表中是否出現一個True
# 只要存在一個元素轉bool型別結果是True,all()的結果就是True list1 = [12,45,124,'','hello',12.34] print(any(list1))
-
和進位制相關的函式
- 二進位制
- bin() 將十進位制的值轉二進位制
print(bin(136)) # 0b10001000
-
int() 將某一種進位制轉10進位制
print(int('0b10001000',2))
-
八進位制
oct() 將十進位制轉八進位制
print(oct(136)) # 0o210
-
十進位制
整數預設都是十進位制
-
十六進位制
hex() 將十進位制轉16進位制
print(hex())
-
字元類函式
-
ord() 將一個字元轉成ASCII碼數值
'0' - 48
'A' - 65
'a' - 97
print(ord('0'))
print(ord('A'))
print(ord('a'))
-
chr() 將數值轉成對應的ASCII碼字元
print(chr(97))
-
型別轉換相關函式
-
int()
-
str()
-
bool()
-
list()
-
dict()
-
tuple()
-
set()
-
bytes()
# s1 = '中國' # b1 = s1.encode('UTF-8') # print(b1, type(b1)) b2 = bytes('中國','UTF-8') print(b2)
-
-
獲取輸出類函式
-
input()
-
print()
-
len()
-
open()
-
獲取索引和元素
list1 = [1,2,3,4] for i,j in enumerate(list1): print(i,j)
-
id() 獲取物件的地址值
-
callable() 判斷一個變數是否是一個函式
list1 = [1,2,3,4] def fun1(): pass print(callable(fun1))
-
sorted() 排序
list1 = [34,12,5,12,344,53] print(f"list1:{list1}") list2 = sorted(list1) print(f"list1:{list2}") # list1:[5, 12, 12, 34, 53, 344]
-
自定義排序
list1 = ['小虎:1007', '黃滬生:1009', '查鎔賢:1001', '黃濤:1004', '方直:1002'] def fun1(e): return int(e.split(':')[1]) list2 = sorted(list1, key=fun1) print(f"list1:{list2}")
-
zip() 將兩個序列中的元素一一對應
list1 = [1001, 1002, 1003, 1004, 1005] list2 = ['小虎', '黃滬生', '查鎔賢', '黃濤', '方直'] for i,j in zip(list1,list2): print(f"學號:{i}, 姓名:{j}")
-
函式生成式
python中提供了一個關鍵字可以讓我們在函式中使用 yield
def fun1():
yield 1
yield 2
yield 3
yield 4
yield 5
res1 = fun1()
print("hello world")
print(res1.__next__())
# 若干行程式碼後
print(res1.__next__())
有yield關鍵字的函式,結果是可以使用for迴圈的
# def fun1():
# print("hello 1")
# yield 1
# print("hello 2")
# yield 2
# print("hello 3")
# yield 3
# print("hello 4")
# yield 4
# print("hello 5")
# yield 5
# res1 = fun1()
# for i in res1:
# print(i)
# print("-----------")
def fun1():
for i in range(1,11):
yield i
res1 = fun1()
for i2 in res1:
print(i2)
print("-----------")
模組
簡單理解為就是一個.py字尾的一個檔案
- 內建模組
- 第三方模組
- 自定義模組
模組匯入的方式
- import 直接將一個模組匯入進來
import day06.utils.login_tools as t # 匯入login_tools模組並起了一個別名叫做t
-
from xxx import xxx 從一個模組中,匯入具體的工具
from lxml import etree
from day06.utils.login_tools import rand_yzm # 從模組login_tools中匯入某一個函式 from day06.utils.login_tools import rand_yzm,send_email # 一次從模組中匯入多個 from day06.utils.login_tools import * # 匯入模組中所有的內容 from day06.utils.login_tools import rand_yzm as t1 # 匯入模組中的函式並重新命名
- 注意: 切記,自己定義的模組名不要和內建或第三方的模組名重名!!!!!
內建函式random模組學習
-
理論上,python模組中,任意一個地方都可以進行匯入
-
但是規範上,我們開發潛規則上,將匯入的部分放在python模組檔案最開始的位置編寫
-
randint() 隨機生成一個範圍內的整數
n = random.randint(1000,2000) print(n)
-
uniform() 隨機生成一個範圍內的小數
n = round(random.uniform(0, 1),2)#用round四捨五入
print(n)
- choice() 隨機抽取列表中的一個元素
list1=['上','傷']
res1 = random.choice(list1)
print(res1)
print(list1
-
sample() 隨機抽取列表中若干個元素
list1 = ['張三','李四','王五','趙六','王麻子','小李子'] # res1 = random.choice(list1) # print(res1) # print(list1) n = random.sample(list1,2) print(n, type(n))
練習:使用random模組以及之前學習的知識,編寫一個抽獎程式。
list1 = ['小虎', '張成陽', '黃濤', '方直', '楊浩東', '黃滬生', '查鎔賢'] jiang_xiang = [ ('一等獎', 1, 'mate70 pro'), ('二等獎', 1, '小米手環'), ('三等獎', 2, '按摩儀'), ('四等獎', 2, '京東購物卡') ] def chou_jiang(l1): for i, num, goods in jiang_xiang: print(f"正在抽取{i}".center(50, '-')) name_list = random.sample(l1,num) # 將中獎名單從原名單中刪除 for n in name_list: if n in l1: list1.remove(n) info = f"恭喜{','.join(name_list)} 中得{goods}!!!!" yield info res1 = chou_jiang(list1) input("開始抽一等獎....按下回車開始!") print(res1.__next__()) input("開始抽二等獎....按下回車開始!") print(res1.__next__()) input("開始抽三等獎....按下回車開始!") print(res1.__next__()) input("開始抽四等獎....按下回車開始!") print(res1.__next__())