python基礎程式設計 10 生成水仙花數

2021-08-17 14:27:16 字數 1387 閱讀 5075

什麼是水仙花數?水仙花數是指乙個 n 位正整數 ( n≥3 ),它的每個位上的數字的 n 次冪之和等於它本身。(例如:1^3 + 5^3+ 3^3 = 153)。

python練習題問題如下:

要求:列印輸出所有的"水仙花數"。

python解題思路分析:

可以利用for迴圈控制流語句來完成操作。從100-9999個數,每個數分解出個位、十位和百位。

方案一:

from numpy import *

for n in range(100,10000):

#將整形數轉換成字串

numberstr=str(n)

length=len(numberstr)

a=zeros(length)

#將字串中的每一位數取出,賦值給陣列

for i in range(length):

a[i]=int(numberstr[i])

#陣列a**value相當於對陣列中的每個數**value操作

if n==sum(a**length):

print (n)

153

370371

4071634

8208

9474

方案二:

from numpy import *

for n in range(100,10000):

#將整形數轉換成字串

numberstr=str(n)

length=len(numberstr)

if length==3:

#/100得到的結果為高位,%100得到的結果為低位

baiwei=int(n/100)

#此處加入int()函式,保證333/100=3而不是3.33

'''在python中33%10=3,333/100=3.33'''

shiwei=int(n/10)%10

gewei=n%10

if n == baiwei ** 3 + shiwei ** 3 + gewei ** 3:

print(n)

elif length==4:

qianwei=int(n/1000)

baiwei=int(n/100)%10

shiwei=int(n%100/10)

gewei=n%10

if n == qianwei ** 4+ baiwei ** 4 + shiwei ** 4+gewei**4:

print(n)

153

370371

4071634

8208

9474

Python基礎 day10 生成器

示例一 a x for x in range 30 這行 就是列表生成器,執行順序就是先執行後面的for迴圈,然後執行前面的x print a 執行結果 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27...

Python3生成密碼

使用python3實現簡單的密碼生成功能,隨機且隨意。這裡只是乙個簡單的例子,有必要的話可以深入研究一下。time 2019 9 12 18 24 author 統哥哥 file password generato.py software pycharm import string import r...

11 4 生成樹 基礎概念介紹

圖的基礎知識 設g是簡單圖。g的生成樹是包含g的每個頂點的g的子圖。比如對於下面的左圖,右圖就是其生成樹中的一種 所以也可以說 簡單圖是連通的,當且僅當它有生成樹。這個概念可以模擬到哈賽圖,或者關係中的傳遞性質。之前還有乙個廣度優先搜尋的內容,用來找最短路徑的。這裡深度優先搜尋則是在乙個簡單圖中構建...