Python100道經典提升篇練習題來了(附帶答案)

學習Python一段時間,不知道怎麼可以檢測出自己的水平是否對所學知識完全掌握,這裡整理了100道練習題

內容偏基礎,是很好的入門提高python程式設計能力的刷題寶典,分享給大家。

Python100道經典提升篇練習題來了(附帶答案)

第1題

編寫一個程式,找出所有可被7整除但不是5的倍數的數字,2000年至3200年(均包括在內)。獲得的數字應以逗號分隔的順序列印在一行上。

提示:range(begin, end)

l = []for i in range(2000, 3201): if (i % 7 == 0) and (i % 5 != 0): l。append(str(i))sep = “,”l = sep。join(l)print(l)

說明:string。join(seq),表示以string分割seq,且返回一個新字串。

第2題

題目:寫一個程式,可以計算給定數字的階乘。結果應以逗號分隔的順序列印在一行上。假設向程式提供了以下輸入:8,輸出:40320

提示:應該假設控制檯輸入資料

# 遞迴方案def fact(x): if x == 0: return 1 return x * fact(x - 1)print(‘請輸入一個數字:’)x=int(input()) #必須是整數print (fact(x))

第3題

對於給定的整數n,編寫一個程式生成一個包含(i,i*i)的字典,該字典是介於1和n之間的整數(兩者都包括在內)。然後程式應該列印字典。假設以下輸入被提供給程式:8,那麼輸出應該是:{1:1,2:4,3:9,4:16,5:25,6:36,7:49,8:64}

print(“請輸入一個數字:”)n = int(input())dic = { }for i in range(1,n+1): dic[i]=i**2print(dic)

第4題

編寫一個程式,從控制檯接受逗號分隔的數字序列,並生成包含每個數字的列表和元組。假設以下輸入被提供給程式:34,67,55,33,12,98,那麼輸出應該是:[‘34’,‘67’,‘55’,‘33’,‘12’,‘98’](‘34’,‘67’,‘55’,‘33’,‘12’,‘98’)

print(“請輸入以逗號分割的數字序列:”)values=input()l=values。split(“,”)t=tuple(l)print(l)print(t)

說明:string。split(str=“”, num=string。count(str)),表示以str為分隔符切片string,如果 num 有指定值,則僅分隔 num+1 個子字串。

第5題

定義一個至少有兩個方法的類:getString:從控制檯輸入獲取字串。printString:以大寫形式列印字串。還請包括簡單的測試函式來測試類方法。

class InputOutString(object): def __init__(self): self。s = “” def getString(self): self。s = input() def printString(self): print(self。s。upper())strObj = InputOutString()strObj。getString()strObj。printString()

說明:

函式

含義

string。lower()

轉換 string 中所有

大寫字元為小寫。

string。upper()

轉換 string 中的小寫字母為大寫

string。islower()

如果 string 中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元

都是小寫

,則返回 True,否則返回 False

string。isupper()

如果 string 中包含至少一個區分大小寫的字元,並且所有這些(區分大小寫的)字元

都是大寫

,則返回 True,否則返回 False

第6題

給定C = 50,H = 30,D是待輸入的以逗號分隔的序列,列印 Q = [ ( 2 ∗ C ∗ D ) / H ] Q=\sqrt{[(2 * C * D)/H]} [ ( 2 ∗ C ∗ D ) / H ] 的值。假設輸入:100,150,180 然後輸出18,22,24。

import mathC = 50H = 30in_str = input()seq = “,”D = in_str。split(seq) #分割,返回listQ = []for i in D: Q。append(str(int(math。sqrt(2 * C * int(i) / H))))print(seq。join(Q))# 使用seq隔開

第7題

編寫一個程式,以2位數字X和Y作為輸入,生成一個二維陣列。陣列的第i行和第j列中的元素值應該是i*j。其中i的範圍為0,1,…,X-1;j的範圍為0,1,…,Y-1。

X = int(input())Y = int(input())row = []ans = []for i in range(0,X): for j in range(0,Y): row。append(i * j) else: ans。append(row)print(ans)

第8題

編寫一個程式,接受逗號分隔的單詞序列作為輸入,並在按字母順序排序後按逗號分隔的順序列印單詞。假設向程式提供了以下輸入:without,hello,bag,world,然後輸出:bag,hello,without,world

items=[x for x in input()。split(‘,’)]items。sort()print(‘,’。join(items))

第85題

列印所有句子,句子的主語為[“I”, “You”] ,謂語為 [“Play”, “Love”] 賓語為 [“Hockey”,“Football”]。

subjects=[“I”, “You”]verbs=[“Play”, “Love”]objects=[“Hockey”,“Football”]for s in subjects: for v in verbs: for o in objects: print(s + ‘ ’ + v + ‘ ’ + o)

第100題

寫一個程式,解決一個經典的數學題:在農場中只有雞和兔子,其中有35個頭和94條腿,計算農場有多少隻雞和多少隻兔子。

def solve(numheads,numlegs): ns=‘No solutions!’ for i in range(numheads+1): j=numheads-i if 2*i+4*j==numlegs: return i,j return ns,nsnumheads=35numlegs=94solutions=solve(numheads,numlegs)print(solutions)

好了,篇幅限制。裡面的其他內容,題目等就不一一介紹了

想要100道完整練習題的小夥伴

關注+點贊

私信小編“666”就可以領取了