值得苦練的100道Python經(jīng)典練手題,(附詳細(xì)答案)
嗨嘍大家好卷子又來(lái)了,100道Python經(jīng)典練手題奉上
花了一周的時(shí)間,整理了100道Python的練習(xí)題,如果你是一位初學(xué)者,那么這一份練習(xí)題將會(huì)給你帶來(lái)極大的幫助,如果你能夠完全獨(dú)立的完成這份練習(xí)題,你已經(jīng)入門的Python了,練習(xí)題涵蓋Python基礎(chǔ)的大部分內(nèi)容:
問(wèn)題:
編寫一個(gè)程序,查找所有此類數(shù)字,它們可以被7整除,但不能是5的倍數(shù)(在2000和3200之間(均包括在內(nèi)))。獲得的數(shù)字應(yīng)以逗號(hào)分隔的順序打印在一行上。
提示:
考慮使用范圍(#begin,#end)方法。
我的解決方案:Python 3
使用for循環(huán)

使用生成器和列表理解

問(wèn)題2
問(wèn)題:
編寫一個(gè)程序,可以計(jì)算給定數(shù)字的階乘,結(jié)果應(yīng)以逗號(hào)分隔的順序打印在一行上,假設(shè)向程序提供了以下輸入:8然后,輸出應(yīng)為:40320
提示:
如果將輸入數(shù)據(jù)提供給問(wèn)題,則應(yīng)假定它是控制臺(tái)輸入。
我的解決方案:Python 3
使用While循環(huán)
n = int(input()) #input() function takes input as string type
#int() converts it to integer type
fact = 1
i = 1
while i <= n:
fact = fact * i;
i = i + 1
print(fact)
使用For循環(huán)
n = int(input()) #input() function takes input as string type
#int() converts it to integer type
fact = 1
for i in range(1,n+1):
fact = fact * i
print(fact)
使用Lambda函數(shù)
n = int(input())
def shortFact(x): return 1 if x <= 1 else x*shortFact(x-1)
print(shortFact(n))

問(wèn)題3
問(wèn)題:
使用給定的整數(shù)n,編寫程序以生成包含(i,ixi)的字典,該字典為1到n之間的整數(shù)(都包括在內(nèi))。然后程序應(yīng)打印字典。假設(shè)向程序提供了以下輸入:8\
然后,輸出應(yīng)為:
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64}
提示:
如果將輸入數(shù)據(jù)提供給問(wèn)題,則應(yīng)假定它是控制臺(tái)輸入??紤]使用dict()
我的解決方案:Python 3:
使用for循環(huán)

使用字典理解





問(wèn)題
編寫一個(gè)程序,該程序接受以逗號(hào)分隔的4位二進(jìn)制數(shù)字序列作為輸入,然后檢查它們是否可被5整除。被5整除的數(shù)字將以逗號(hào)分隔的順序打印。
例子:
0100,0011,1010,1001
然后輸出應(yīng)為:
1010
注意:假設(shè)數(shù)據(jù)是通過(guò)控制臺(tái)輸入的。
提示:
如果將輸入數(shù)據(jù)提供給問(wèn)題,則應(yīng)假定它是控制臺(tái)輸入。

或者

或者

問(wèn)題12
問(wèn)題:
編寫一個(gè)程序,查找所有介于1000和3000之間的數(shù)字(都包括在內(nèi)),以使數(shù)字的每個(gè)數(shù)字均為偶數(shù)。獲得的數(shù)字應(yīng)以逗號(hào)分隔的順序打印在一行上。
提示:
如果將輸入數(shù)據(jù)提供給問(wèn)題,則應(yīng)假定它是控制臺(tái)輸入。
我的解決方案:Python 3

