值得苦練的100道Python經(jīng)典練手題,(附詳細(xì)答案)
嗨嘍大家好卷子又來了,100道Python經(jīng)典練手題奉上
花了一周的時(shí)間,整理了100道Python的練習(xí)題,如果你是一位初學(xué)者,那么這一份練習(xí)題將會(huì)給你帶來極大的幫助,如果你能夠完全獨(dú)立的完成這份練習(xí)題,你已經(jīng)入門的Python了,練習(xí)題涵蓋Python基礎(chǔ)的大部分內(nèi)容:
問題1
問題:
編寫一個(gè)程序,查找所有此類數(shù)字,它們可以被7整除,但不能是5的倍數(shù)(在2000和3200之間(均包括在內(nèi)))。獲得的數(shù)字應(yīng)以逗號(hào)分隔的順序打印在一行上。
提示:
考慮使用范圍(#begin,#end)方法。
我的解決方案:Python 3
使用for循環(huán)
l=[]for i in range(2000, 3201): ? ?if (i%7==0) and (i%5!=0): ? ? ? ?l.append(str(i))print ','.join(l)
使用生成器和列表理解
print(*(i for i in range(2000, 3201) if i%7 == 0 and i%5 != 0), sep=",")
問題2
問題:
編寫一個(gè)程序,可以計(jì)算給定數(shù)字的階乘,結(jié)果應(yīng)以逗號(hào)分隔的順序打印在一行上,假設(shè)向程序提供了以下輸入:8然后,輸出應(yīng)為:40320
提示:
如果將輸入數(shù)據(jù)提供給問題,則應(yīng)假定它是控制臺(tái)輸入。
我的解決方案:Python 3
使用While循環(huán)n = int(input()) #input() function takes input as string type#int() converts it to integer typefact = 1i = 1while i <= n:fact = fact * i;i = i + 1print(fact)
使用For循環(huán)n = int(input()) #input() function takes input as string type#int() converts it to integer typefact = 1for i in range(1,n+1):fact = fact * iprint(fact)
使用Lambda函數(shù)n = int(input())def shortFact(x): return 1 if x <= 1 else x*shortFact(x-1)print(shortFact(n))
while True:try: ? ?num = int(input("Enter a number: ")) ? ?breakexceptValueError as err: ? ?print(err)org = numfact = 1while num: ? ?fact = num* fact ? ?num = num - 1print(f'the factorial of {org} is {fact}')
from functools import reducedef fun(acc, item): ? ?return acc*itemnum =int(input())print(reduce(fun,range(1, num+1), 1))
完整練習(xí)題資料,可關(guān)注公眾號(hào);編程小師妹? ?
問題3
問題:
使用給定的整數(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ù)提供給問題,則應(yīng)假定它是控制臺(tái)輸入??紤]使用dict()
我的解決方案:Python 3:
使用for循環(huán)
n = int(input())ans = {}for i in range (1,n+1): ? ?ans[i] = i * iprint(ans)
使用字典理解
n = int(input())ans={i : i*i for i in range(1,n+1)}print(ans)# 演進(jìn)try: ? ?num = int(input("Enter a number: "))except ValueError as err: ? ?print(err)dictio = dict()for item in range(num+1): ? ?if item == 0: ? ? ? ?continue ? ?else: dictio[item] = item * itemprint(dictio)
num = int(input("Number: "))print(dict(enumerate([i*i for i in range(1,num+1)], 1)))
這些是第一天解決的問題。對(duì)于基本的初學(xué)者學(xué)習(xí)者來說,上述問題非常容易。我在解決方案中展示了一些簡單的編碼方法。讓我們看看第二天如何面對(duì)和應(yīng)對(duì)新問題。

完整版值得苦練的100道Python經(jīng)典練手題PDF已經(jīng)打包好了,樓下留言:11? 獲取