python 內置函數(含實例)詳細!

自己碼的,不喜勿噴。歡迎大佬前來批評指導!!
該部分主要是對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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章