首頁 > 軟體

Python標準庫之Math,Random模組使用詳解

2022-05-19 13:00:45

數學模組

import math

ceil -- 上取整

對一個數向上取整(進一法),取相鄰最近的兩個整數的最大值。

import math
res = math.ceil(4.1)
print(res)  # 5

floor -- 下取整

對一個數向下取整(退一法),取相鄰最近的兩個整數的最小值。

import math
res = math.floor(-3.9)
print(res)  # -4

四捨五入

將常用的內建函數 -- round。

pow -- 冪運算

計算一個數位的N次方。

import math

""" 呼叫的數學模組中的方法和內建的主要區別就是內建返回整數,數學模組返回小數 """

# 數學模組
res = math.pow(2, 3)
print(res)  # 8.0

# 內建函數
res = pow(2, 3)
print(res)  # 8

# 更簡單的方法就是使用 ** 進行冪運算
res = 2 ** 3
print(res)  # 8

sqrt -- 開平方運算

import math
res = math.sqrt(9)  # 結果為浮點型
print(res)  # 3.0

fabs -- 絕對值

import math

""" 呼叫的數學模組中的方法和內建的主要區別就是內建返回整數,數學模組返回小數 """

# 數學模組
res = math.fabs(-12341234123)
print(res)  # 12341234123.0

# 內建函數
res = abs(-12341234123)
print(res)  #12341234123

modf -- 拆分整數小數

將一個數值拆分為小數和整數兩個部分,組成元組,值為浮點型。

import math
res = math.modf(100.666)
print(res)  # (0.6659999999999968, 100.0)

copysign -- 正負拷貝

將第二個引數的正負狀態拷貝給第一引數。(返回浮點型)

import math
res = math.copysign(100, -200)
print(res)  # -100.0

fsum -- 序列和

將一個容器中的元素進行求和運算(結果為浮點數)

import math
lst = [1, 2, 3]
res = math.fsum(lst)
print(res)  # 6.0

pi -- 圓周率常數

import math
res = math.pi
print(res)  # 3.141592653589793

factorial -- 因數

import math

# 求5的因數
factor = math.factorial(5)
print(factor)  # 120

隨機模組

import random

random -- 獲取 0~~1 之間的小數

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

import random
res = random.random()
print(res)  # 0.15195915170299268

randrange -- 獲取指定範圍內的整數

語法:rangrange(start, end[, step])

randint -- 獲取指定範圍整數

語法:randint(a, b)

相比 randrange 靈活性低,但是結束值可用

uniform -- 獲取指定範圍內隨機小數(左閉右開)

import random

# uniform 獲取指定範圍內的隨機小數(左閉右開)
res = random.uniform(1, 3)
print(res)  # 2.81589512983781

# 因為內建機制的原因(uniform 可以將數值顛倒,並達到相同的效果)
res = random.uniform(3, 1)
print(res)  # 1.4023313207919326

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

import random

# 可以嘗試使用 randrange 實現

lst = ['A', 'B', 'C', 'D', 'E']
res = random.choice(lst)
print(res)  # E

sample -- 隨機獲取序列中的值(多選多,返回列表)

語法:sample(poplation, num)

import random

lst = ['A', 'B', 'C', 'D', 'E', 'F']

res = random.sample(lst, 1)
print(res)  # ['F']

res = random.sample(lst, 2)
print(res)  # ['C', 'A']

shuffle -- 隨機打亂序列中的值(原地址操作)

import random

lst = ['A', 'B', 'C', 'D', 'E', 'F']

random.shuffle(lst)
print(lst)  # ['F', 'D', 'C', 'B', 'E', 'A']

實現隨機驗證碼

import random


def getVer():
    ver_code = ''
    # 隨機抽取四個字元
    for i in range(4):
        s_char = chr(random.randrange(97, 123))
        b_char = chr(random.randrange(65, 91))
        num = str(random.randrange(10))
        lst = [s_char, b_char, num]
        ver_code += random.choice(lst)
    return ver_code


ver = getVer()
print(ver)  # b4Vq

以上就是Python標準庫之Math,Random模組使用詳解的詳細內容,更多關於Python Math Random模組的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com