Python標(biāo)準(zhǔn)庫math中用來求冪運(yùn)算的函數(shù)是pow(x,y)
作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運(yùn)營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價(jià)值。
pow(x,y)函數(shù)和x**y是等效的,都是計(jì)算x的y次方
用法:
import math
print(math.pow(4,2))
前兩個(gè)都封裝成了函數(shù)。最后一個(gè)直接運(yùn)行的。沒有定義函數(shù)。
中間那個(gè)問題,是因?yàn)槟阃涀鲱愋娃D(zhuǎn)換,你試著運(yùn)行這個(gè)number=int(number)。應(yīng)該 就對(duì)了。
/*x^n的值必須小于32767,否則輸出的就是負(fù)數(shù)。因?yàn)?,int只有這么大,正常的pow函數(shù)應(yīng)該是float型或是double型,參數(shù)也應(yīng)是float或是double型。*/
#include?stdio.h
int?power(int?x,int?n)
{
if?(n1)
{
? ?return?x*power(x,n-1);
}
else
{
? ?if?(n0)
? ? ? ?return?x;
? ?else
? ? ? ? return?1;
}
}
void?main()
{
int?x,n;
printf("input?x,n:");
scanf("%d%d",x,n);
printf("%d",power(x,n));
getch();
clrscr();
}
這個(gè)if y 的意思就是如果y的值仍然大于0的話,X的y次冪就等于x*x的Y-1次冪。
舉例子說,要計(jì)算x三次方
x^3=x*x^2
=x*x*x^1
=x*x*x*x^0
=x*x*x*1
=x*x*x
python中,想要表示a的b次方時(shí),有兩種方法:
1,math.pow()這個(gè)內(nèi)置函數(shù)
2,**運(yùn)算符
這兩種方法效果是一樣的,但是當(dāng)
b為分?jǐn)?shù),a為負(fù)數(shù):當(dāng)冪運(yùn)算符的底數(shù)為負(fù)數(shù)、冪為分?jǐn)?shù)時(shí),Python會(huì)拋出ValueError: negative number cannot be raised to a fractional power異常,
這時(shí)有兩種方法可以解決此問題:
1,底數(shù)a正負(fù)均可不影響你的算法的話,加一個(gè)絕對(duì)值就行了即abs(a);
2,如果底數(shù)a必須是正、或必須是負(fù)的話,需要采用復(fù)數(shù)進(jìn)行運(yùn)算。因此凡是遇到冪為分?jǐn)?shù)的項(xiàng),都將底數(shù)用complex()轉(zhuǎn)換為復(fù)數(shù)。
推薦學(xué)習(xí)《python教程》。