自己碼的,不喜勿噴。歡迎大佬前來批評指導!!
該部分主要是對python 內置函數進行介紹與練習,每個函數包含了1~2個小案例,幫助理解,該部分內容涉及到的函數主要包括:輸入輸出、數據結構的強制轉換、數學相關(比如:絕對值、求和、取餘等等)、進制轉換、編碼相關等等。
內置函數
函數包括自定義函數和內置函數
1 輸入輸出相關
● input()
● print()
2 強制轉換相關
● dict()
● list()
● int()
● tuple()
● str()
● bool()
● set()
3 數學相關
1.abs() 絕對值
# abs() 絕對值
v = abs(-1)
print(v) # 1
2.float() 轉換成浮點型
# float() 轉換成浮點型
v = 55
v1 = float(v)
print(v1) # 55.0
3.max() 找到最大值
# max() 找到最大值
v = [1,2,331,55]
result = max(v)
print(result) # 331
4.min() 找到最小值
# min() 找到最小值
v = [1,2,331,55]
result = min(v)
print(result) # 1
5.sum() 求和
# sum() 求和
v = [1,2,331,55]
result = sum(v)
print(result) # 389
6.divmod() 兩數相除的商和餘數
# divmod() 兩數相除的商和餘數
result = divmod(1001,5)
print(result) # (200, 1)
a,b = divmod(1001,5)
print(a,b) # 200 1
7.pow() 指數
# pow() 指數 ,類似於2**3
v = pow(2,3)
print(v) # 8
8.round() 保留幾位小數,含四捨五入
# round()保留幾位小數,含四捨五入
v = round(1.5468711,2)
print(v) # 1.55
練習題 請通過分頁對數據進行展示
要求:
每頁顯示10條數據
讓用戶輸入要查看的頁面:頁碼
USER_LIST = []
for i in range(1,836): # 顯示1到835條信息
temp = {'name':'李傑-%s'%i,'email':'123%[email protected]'%i}
USER_LIST.append(temp)
# 數據總條數
total_count = len(USER_LIST)
# 每頁顯示10條數據
per_page_count = 10
# 總頁碼數
max_page_num,a = divmod(total_count,per_page_count)
if a > 0:
max_page_num += 1
"""
第一頁:USER_LIST = [0:10]
第二頁:USER_LIST = [10:20]
第三頁:USER_LIST = [20:30]
第四頁:USER_LIST = [30:40]
"""
while True:
pager = input('請輸入頁碼:')
pager = int(pager)
if pager < 1 or pager > max_page_num:
print('頁碼不合法,必須是1~%s'%max_page_num)
else:
start = (pager-1) * per_page_count
end = pager * per_page_count
data = USER_LIST[start : end]
for item in data:
print(item)
4 進制轉換相關
1.bin() 將十進制轉化成二進制
# bin 將十進制轉換成二進制
num = 15
v1 = bin(num)
print(v1) # 0b1111
2.oct() 將十進制轉化成八進制
# oct 將十進制轉換成八進制
num = 7 # 8
v1 = oct(num)
print(v1) # 0o7 0o10
3.hex() 將十進制轉化成十六進制
# hex ,將十進制轉換成十六進制
num = 9 # 10/11/15/16
v1 = hex(num)
print(v1) # 0x9 0xa 0xb 0xf 0x10
4.int() 其他進制轉換成十進制
① 二進制轉化成十進制
# 二進制轉化成十進制
v1 = '0b1011'
result = int(v1,base=2) # 將二進制轉化成十進制
print(result) # 11
② 八進制轉化成十進制
# 八進制轉化成十進制
v1 = '0o1011'
result = int(v1,base=8)
print(result) # 521
③ 十六進制轉化成十進制
# 十六進制轉化成十進制
v1 = '0x1011'
result = int(v1,base=16)
print(result) # 4113
練習題1 將 ip = ‘192.168.12.79’,中的十進制轉換成二進制,並通過‘,’連接起來,生成一個新的字符串。
ip = '192.168.12.79'
ip_list = ip.split('.')
v = []
for item in ip_list:
item = int(item)
v1 = bin(item)
v.append(v1)
ip_new = ','.join(v)
print(ip_new) # 0b11000000,0b10101000,0b1100,0b1001111
練習題2 將 ip = '192.168.12.79’中的十進制轉換成二進制,
拼接成如下形式:11000000101010000000110001001111 (注:每個字節保留八位,不足八位前面補零,並去掉0b
ip = '192.168.12.79'
ip_list = ip.split('.')
v = []
for item in ip_list:
item = int(item)
v1 = bin(item)
v2 = v1.lstrip('0b') # 1100
v2_len = len(v2)
if v2_len == 8:
v.append(v2)
else:
count = 8-v2_len
v3 = ('0' * count)+v2
v.append(v3)
ip_new = ''.join(v)
print(ip_new) # 11000000101010000000110001001111
5 編碼相關
1.chr() 將十進制數字轉換成Unicode 編碼中對應的字符串
# 1.chr,將十進制數字轉換成unicode編碼中的對應字符串
v = chr(99)
print(v) # c
2.ord() 根據字符在Unicode 編碼中找到其對應的十進制
v = ord('中')
print(v) # 20013
# 練習
v = '中國'
for item in v:
data = ord(item)
print(data)
print(bin(data))
# 20013
# 0b100111000101101
# 22269
# 0b101011011111101
3.應用。隨機驗證碼的生成
# random.randint(a,b):用於生成一個指定範圍內的整數。其中參數a是下限,參數b是上限,生成的隨機數n:a<=n<=b
# 隨機生成6位的驗證碼
import random
data = []
for i in range(6):
v = random.randint(65,90)
v_chr = chr(v)
data.append(v_chr)
print(data)
result = ''.join(data)
print(result)
# 隨機生成任意位的驗證碼
import random # 導入一個模塊
data = []
def get_random_code(length):
for i in range(length):
v = random.randint(65,90) # 去模塊裏找一個生成隨機整數的函數來用
data.append(chr(v))
return ''.join(data)
code = get_random_code(7)
print(code)
6 其他
● len()
● open()
● id()
● range()
● type()