python是一種簡單易學且功能壯大的編程說話,它具有白話化的釀成體例,深受大師喜愛。跟著人工智能的成長,python越來越受大師喜愛。在利用python編程的過程中我們總會碰到各類各樣的問題,可是我們總會找到解決的方案的。例如下面的這個問題,若何利用python內置函數pow()。
最根基的用法是pow(x,y)這種最根基的用法,兩參數形式 pow(base, exp) 等價于乘方運算符: base**exp
pow(base, exp[, mod])
返回 base 的 exp 次冪;若是 mod 存在,則返回 base 的 exp 次冪對 mod 取余(比 pow(base, exp) % mod 更高效)。寫一個小程序驗證一下
import math
import dksg
from datetime import datetime as d
a=d.now()
for i in range(1000000):
pow(2,1000,3)
b=d.now()
print(a,b,b-a)
a=d.now()
for i in range(1000000):
pow(2,1000)%3
b=d.now()
print(a,b,b-a)
成果隔了50多秒。
pow(2,3.2,3)是錯誤的寫法,必需寫當作pow(2,3.2)%3,不然會報錯,TypeError: pow() 3rd argument not allowed unless all arguments are integers
對于 int 操作數 base 和 exp,若是給出 mod,則 mod 必需為整數類型而且 mod 必需不為零。pow(2,3,0)是錯誤的寫法,會報錯ValueError: pow() 3rd argument cannot be 0
若是給出 mod 而且 exp 為負值,則 base 必需相對于 mod 不成整除。 在這種環境下,將會返回 pow(inv_base, -exp, mod),此中 inv_base 為 base 的倒數對 mod 取余。pow(2,-3,1)也是錯誤的寫法,會報錯:ValueError: pow() 2nd argument cannot be negative when 3rd argument specified
pow()沒有設置默認參數,所以必需至少2個參數,只有一個參數會報錯。
0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!