① 萌新剛學python,求水仙花數,請問哪裡寫錯了嗎
題主你好,
你的代碼問題有兩處,
1.在最後一句:
num += 1
這一句的縮進應該和if相同, 因為如果將 num += 1放到if下, 則只有if條件滿足了, num才能加上1, 如果if條件不滿足,則就成了死循環了.
舉例, 就拿第1個數,100,來說吧, 因為100不等於1^3+0^3+0^3,所以100這個數在執行if語句時, 條件是不成立的, 因為if下的print()語句和num+=1都不會執行, 這樣下一次循環時,num還是100, 而不是我們期望的101, 所以要把num += 1的縮進和if相同, 也就是無論if條件是否滿足,我們都要給num加上1.
2.倒數第2句的print(list(num)), 要改成print(num)
代碼及測試截圖如下:
圖中我已將和題主原代碼不同的地方框選出來了,供參考.
-----
希望可以幫到題主, 歡迎追問.
② python使用函數實現水仙花數
求1000以內的水仙花數(3位數)
foriinrange(100,1000):
a=i//100
b=(i-a*100)//10
c=(i-a*100-b*10)
ifi==pow(a,3)+pow(b,3)+pow(c,3):
print(i)
希望可以幫到你
③ python水仙花數的編程是什麼
如下即是:
def demo():temp = [],for i in range(100, 1000): a = i // 100 # 百位, b = i // 10 % 10 # 十位,c = i % 10 # 個位, if a ** 3 + b ** 3 + c ** 3 == i,temp.append(str(i)),return,join(temp),print("1000以內的水仙花數有:{}".format(demo()))。
編程是編定程序的中文簡稱,就是讓計算機代碼解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。
為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
編程:設計具備邏輯流動作用的一種「可控體系」,註:編程不一定是針對計算機程序而言的,針對具備邏輯計算力的體系,都可以算編程。
④ python輸入一個數,判斷是不是水仙花數
num = int(input("請輸入一個三位數子:"))
gw = num%10 #取個位數
sw = num%100//10#取百位數
bw = num//100 #取百位數
total = gw ** 3 + sw ** 3 + bw ** 3
#print(total)
if num == total:
print("該數字是一個水仙花數")
else:
print("不是水仙花數")
⑤ Python編寫一個函數,用來進行水仙花數的檢測,並調用該函數找出1000以內的所有水仙花數
答: 對於這題,首先要明白水仙花數的概念,它首先是一個三位數,其次個位、十位和百位的三次冪相加之和等於它本身。因此根據這個思路編寫以下代碼。
⑥ Python輸入一個三位數,判斷其是否為水仙花數,所謂水仙花數是指該數的各位的立方和恰好等於該數
###水仙花數適用於任何位數的整數
whileTrue:
a=int(input("輸入一個整數:"))
bb=0
b=a
whileb!=0:
bb+=(b%10)**3##取余數求三次方
b=b//10##取相除後的整數部分
ifbb==a:##判斷兩者是否相等
print("輸入為水仙花數:",a)
else:
print("輸入不是水仙花數")
⑦ 關於「水仙花數」python代碼(初學者)
因為1//10是false,不會
⑧ 判斷是否是水仙花數在Python里怎樣輸入代碼
n=int(input())
for i in range(n+1):
a=i//100
b=(i-a)//10
c=(i-a-b)//1
if a**3+b**3+c**3==n:
print("有水仙花數")
break
else:
print("沒有水仙花數")