Python練習筆記 水仙花數

2021-08-31 03:35:46 字數 4167 閱讀 2573

解題思路&**段

函式小結

春天是鮮花的季節,水仙花就是其中最迷人的代表,數學上有個水仙花數,他是這樣定義的: 「水仙花數」是指乙個三位數,它的各位數字的立方和等於其本身,比如:153=1^3 + 5^3 + 3^3。 現在要求輸出所有在m和n範圍內的水仙花數。

輸入資料有多組,每組佔一行,包括兩個整數m和n(100 ≤ m ≤ n ≤ 999)。

對於每個測試例項,要求輸出所有在給定範圍內的水仙花數,就是說,輸出的水仙花數必須大於等於m,並且小於等於n,如果有多個,則要求從小到大排列在一行內輸出,之間用乙個空格隔開;

如果給定的範圍內不存在水仙花數,則輸出no;

每個測試例項的輸出佔一行。

輸入

100 120

300 380

輸出no

370 371

該方法事先計算好水仙花數,存放到daffodil_number列表中,然後遍歷判斷[m,n]區域內是否有水仙花數。該解題思路將計算水仙花數轉換為查詢,當然遍歷計算也不錯,只不過跟這種方法比起來增大了計算量,花費更多的時間。

python3

# 按"空格"拆分,並對映給m,n

m,n =

map(

int,

input()

.split())

# 水仙花數,事先計算好放到解表中

daffodil_number =

[153

,370

,371

,407

]# 初始化乙個新的列表results,存放水仙花數

results =

# 遍歷水仙花數是否在[m,n]區間內

for temp in daffodil_number:

if temp in

range

(m,n)

:#將找到的水仙花數存放到列表中

#如果[m,n]區間沒有水仙花數輸出「no」,否則按格式輸出對應的水仙花數

iflen

(results)==0

:print

("no"

)else

:print

(" "

.join(

str(result)

for result in results)

)

語法:

map(function, iterable, …)

描述:

map() 會根據提供的函式對指定序列做對映。

第乙個引數 function 以引數序列中的每乙個元素呼叫 function 函式,返回包含每次 function 函式返回值的新列表。

引數說明:

function – 函式

iterable – 乙個或多個序列

返回值:

python 3返回迭代器。

**注意:**python3中想要輸出map()結果,需要轉化為list()。

例1:利用map()函式求列表平方:

def

fun(x)

:return x*x

print

(list

(map

(fun,[1

,2,3

,4,5

,6,7

,8,9

])))

輸出結果:

[1, 4, 9, 16, 25, 36, 49, 64, 81]

語法:

str.split(str="", num=string.count(str))

描述:

split()通過指定分隔符對字串進行切片,如果引數num 有指定值,則僅分隔 num 個子字串

引數說明:

str – 分隔符,預設為所有的空字元,包括空格、換行(\n)、製表符(\t)等。

num – 分割次數。

返回值:

返回分割後的字串列表。

例2:分割字串:

str

="this is string example....wow!!!"

print

(str

.split(

))

輸出結果:

[『this』, 『is』, 『string』, 『example…wow!!!』]

語法:

描述:
引數說明:

obj – 新增到列表末尾的物件。

返回值:

該方法無返回值,但是會修改原來的列表。

例3:新增列表:

, list1)輸出結果:

語法:

』sep』.join(seq)

引數說明:

sep:分隔符。可以為空

seq:要連線的元素序列、字串、元組、字典

上面的語法即:以sep作為分隔符,將seq所有的元素合併成乙個新的字串

返回值:

返回乙個以分隔符sep連線各個元素後生成的字串

例4:新增列表:

str

="this is string example....wow!!!"

print

('-'

.join(

str.split())

)

輸出結果:

this-is-string-example…wow!!!

語法:

class str(object=』』)

描述:

str() 函式將物件轉化為string格式。

引數說明:

object – 物件。

返回值:

返回乙個物件的string格式。

例5:新增列表:

x=

987456123

y =str

(x)print

(type

(x))

print

(type

(y))

輸出結果:

python練習 1 水仙花數 1

也被稱為超完全數字不變數 pluperfect digital invariant,ppdi 自戀數 自冪數 阿姆斯壯數或阿姆斯特朗數 armstrong number 水仙花數是指乙個 n 位數 n 3 它的每個位上的數字的 n 次冪之和等於它本身 例如 1 3 5 3 3 3 153 嚴格意義上...

python的水仙花數

列印出所有的 水仙花數 所謂 水仙花數 是指乙個三位數,其各位數字立方和等於該數本身。例如 153是乙個 水仙花數 因為153 1的三次方 5的三次方 3的三次方。這題也是送分題,只要能把任意三位數的百位 十位 個位拆解出來就好辦了。思路 將任意3位數除以100再向下取整,即可得到百位數。將這個3位...

python編寫水仙花數

列出所有的水仙花數 coding utf 8 列出水仙花數 for num in range 100,1000 ge num num 10 bai num num 100 shi num num bai num 100 ge num 10 if ge num 3 shi num 3 bai num ...