前兩個都封裝成了函數(shù)。最后一個直接運行的。沒有定義函數(shù)。
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計,清河網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:清河等地區(qū)。清河做網(wǎng)站價格咨詢:18982081108
中間那個問題,是因為你忘記做類型轉(zhuǎn)換,你試著運行這個number=int(number)。應(yīng)該 就對了。
python中,想要表示a的b次方時,有兩種方法:
1,math.pow()這個內(nèi)置函數(shù)
2,**運算符
這兩種方法效果是一樣的,但是當(dāng)
b為分數(shù),a為負數(shù):當(dāng)冪運算符的底數(shù)為負數(shù)、冪為分數(shù)時,Python會拋出ValueError: negative number cannot be raised to a fractional power異常,
這時有兩種方法可以解決此問題:
1,底數(shù)a正負均可不影響你的算法的話,加一個絕對值就行了即abs(a);
2,如果底數(shù)a必須是正、或必須是負的話,需要采用復(fù)數(shù)進行運算。因此凡是遇到冪為分數(shù)的項,都將底數(shù)用complex()轉(zhuǎn)換為復(fù)數(shù)。
推薦學(xué)習(xí)《python教程》。
Python標(biāo)準庫math中用來求冪運算的函數(shù)是pow(x,y)
pow(x,y)函數(shù)和x**y是等效的,都是計算x的y次方
用法:
import math
print(math.pow(4,2))
Python中冪運算可以使用**表示,Python中三次方可以表示為x**3,即為x的3次方。
**是Python中算術(shù)運算符表示冪運算,Python中算術(shù)運算符還有加、減、乘、除、取模、取整除。
Python自定義函數(shù)在運行時,最初只是存在內(nèi)存中,只有調(diào)用時才會觸發(fā)運行。
#?-*-?coding:utf-8?-*-
import?math
'''
自冪數(shù)是指一個?n?位數(shù),它的每個位上的數(shù)字的?n?次冪之和等于它本身。
如:當(dāng)n為3時,有1^3?+?5^3?+?3^3?=?153,153即是n為3時的一個自冪數(shù)
'''
n=int(input("請輸入自冪數(shù)位數(shù):\n"))?
if?n==1:
print?"獨身數(shù):"
print?"0\t"
elif?n==2:
print?"兩位自冪數(shù):"
print?"沒有自冪數(shù)!"
elif?n==3:
print?"水仙花數(shù):"
elif?n==4:
print?"玫瑰花數(shù):"
elif?n==5:
print?"五角星數(shù):"
elif?n==6:
print?"六合數(shù):"
elif?n==7:
print?"北斗七星數(shù):"
elif?n==8:
print?"八仙數(shù):"
elif?n==9:
print?"九九重陽數(shù):"
elif?n==10:
print?"十全十美數(shù):"
else:
print?"其它自冪數(shù):"
#定義一數(shù)字,從10^(n-1)開始自加,到10^n結(jié)束
for?i?in?range(int(math.pow(10,n-1)),int(math.pow(10,n))):
num?=?0
for?j?in?str(i):
num?+=?int(math.pow(int(j),?n))
if?i?==?num:
print?i
運行結(jié)果:
請輸入您所要查的自冪數(shù)位數(shù):
3
水仙花數(shù):
153
370
371
407