1. 程式人生 > 實用技巧 >內建方法與模組

內建方法與模組

一. 內建函式

1.abs 絕對值函式

res = abs(-1)
print(res)
View Code

2. round 四捨五入(奇數進偶數捨棄)

res = round(3.69)
res = round(3.5)
res = round(4.5)
res = round(4.51)
print(res)
View Code

3. sum 計算一個序列的和

res = round(3.69)
res = round(3.5)
res = round(4.5)
res = round(4.51)
print(res)

# sum    計算一個序列得和
lst =[1,2,3,4]
res 
= sum(lst) print(res) lst = [100,200,20,-3] # max 獲取一個序列裡邊的最大值 res = max(lst) # min 獲取一個序列裡邊的最小值 res = min(lst) print(res) # 其他方法 lst = sorted(lst) maxval = lst[-1] minval = lst[0] print(maxval,minval)
View Code

4. max與min

"""return 最終返回的資料和傳入到自定義函式中的資料是一致的"""
# 練習1
container = [ ("何子豪",23),("李雅琪
",19),("王雨涵",18)] def func(n): # print(n) # 返回的是年齡,按照年齡找到最大值 return n[-1] res = max(container,key=func) res = min(container,key=func) print("<====================>") print(res) # 練習2 print("<====================>") container = {"何子豪":100,"李雅琪":200,"王雨涵":300} def func(n): print
(container[n]) # 返回的是年齡,按照年齡找到最大值最小值 return container[n] res = max(container,key=func) res = min(container,key=func) print(res)
View Code

5. pow 計算某個數值的x次方

res = pow(2,3)
# 前2個引數的結果和第三個引數取餘
res = pow(2,3,5)
print(res)

7.bin 將10進位制資料轉化為二進位制

res = bin(255)
print(res)

8.oct 將10進位制資料轉化為八進位制

res = oct(8)
print(res)

9. hex 將10進位制資料轉化為16進位制

res = hex(255)
print(res)

10 .chr 將ascll編碼轉換為字元

res = chr(97)
print(res)

11 ord 將字元轉換為ascll編碼

res = ord("a")
print(res)

12eval 將字串當作python程式碼執行 (慎用)

strvar = "print(123434343434)"
strvar = "a=100"
# print(strvar)
# eval(strvar) error

# exec   將字串當作python程式碼執行(功能更強大) (慎用)
strvar = "a=100"
strvar = """
for i in range(50):
    print(i)
"""
exec(strvar)

13 repr 不轉義字元輸出字串[等價於元字串]

pathvar = "D:\notepadd++\t"
print(repr(pathvar))
View Code

14hash 生成雜湊值

res1 = hash("a")
res2 = hash("a")
print(res1,res2)

# setvar = {"a","b","c"}
# setvar = {1,2,3}
# print(setvar)

with open("筆記1.py",mode="r+",encoding="utf-8") as fp1, open("筆記2.py",mode="r+",encoding="utf-8") as fp2:
    res1 = hash(fp1.read())
    res2 = hash(fp2.read())
    if res1 == res2:
        print("檔案內容一致")
    else:
        print("檔案內容不一致")
View Code

二 .數學模組

要先引入 import math

1ceil() 向上取整操作 (對比內建round)

res = math.ceil(3.1)
res = math.ceil(-3.5)
print(res)
View Code

2 .floor() 向下取整操作 (對比內建round)

res = math.floor(4.199)
res = math.floor(-4.199)
print(res)
View Code

3.pow() 計算一個數值的N次方(結果為浮點數) (對比內建pow)

res = math.pow(2,3)
# math中的pow方法沒有三個引數,只有2個;
# res = math.pow(2,3,2) error
print(res)
View Code

4.sqrt() 開平方運算(結果浮點數)

res = math.sqrt(9)
print(res) # 3.0

5.fabs() 計算一個數值的絕對值 (結果浮點數) (對比內建abs)

res = math.fabs(-999)
print(res)
View Code

6.modf() 將一個數值拆分為整數和小數兩部分組成元組

res = math.modf(3.567)
print(res)
View Code

7 .copysign() 將引數第二個數值的正負號拷貝給第一個 (返回一個小數)

res = math.copysign(-18,-19)
print(res)
View Code

8 .fsum() 將一個容器資料中的資料進行求和運算 (結果浮點數)(對比內建sum)

lst = [1,2,3,4]
print(math.fsum(lst))
View Code

9. 圓周率常數 pi

res = math.pi
print(res)
View Code

三. 隨機模組 random

先引入import random

1 random() 獲取隨機0-1之間的小數(左閉右開) 0 <= x < 1

res = random.random()
print(res)
View Code

2.randrange() 隨機獲取指定範圍內的整數(包含開始值,不包含結束值,間隔值)

res = random.randrange(5)
print(res)

# 二個引數
res = random.randrange(1,7)
print(res)

# 三個引數
res = random.randrange(1,10,3) # 1 4 7 
print(res)
View Code

3.uniform() 獲取指定範圍內的隨機小數(左閉右開) 2 <= x < 4

"""   
a = 4 , b = 2
return a + (b-a) * self.random()  
return 4 + (-2) * [0,1)
如果是0的情況: 4
如果是1的情況: 2
2 < x <= 4
"""
res = random.uniform(2,4) # 2 <= x < 4
res = random.uniform(4,2) # 2 < x <= 4
print(res)
View Code

4. choice() 隨機獲取序列中的值(多選一)

lst = ["耿擇時","孫翔宇","家營和","張銀"]
res = random.choice(lst)
print(res)

def mychoice(lst):
    num = random.randrange(0,len(lst)) # 0,4
    return lst[num]

print(mychoice(lst))


# 優化程式碼
mychoice = lambda lst : lst[  random.randrange(0,len(lst))  ]
print(   mychoice(lst)  )
View Code

5 .sample() 隨機獲取序列中的值(多選多) [返回列表]

lst = ["耿擇時","孫翔宇","家營和","張銀"]
res = random.sample(lst,2)
print(res) # 返回列表
View Code

6.shuffle() 隨機打亂序列中的值(直接打亂原序列)

lst = [1,2,3,4,45,5,6]
random.shuffle(lst)
print(lst)
View Code

7 . 驗證碼功能

def yanzhengma():
    strvar = ''
    for i in range(4):
        num = str(random.randrange(10))
        s_c= chr(random.randrange(97,123))
        b_c= chr(random.randrange(65,91))
        lst = [num,s_c,b_c]
        strvar += random.choice(lst)

    return strvar
res = yanzhengma()
print(res)