Python復習題02
提示:此文檔為Python語言程序設計綜合復習題,包括基本數(shù)據(jù)類型、程序的控制結構、函數(shù)和代碼復用、組合數(shù)據(jù)類型。
1. 回文數(shù)判斷。設n是一任意自然數(shù),如果n的各位數(shù)字反向排列所得自然數(shù)與n相等,則n被稱為回文數(shù)。從鍵盤輸入一個數(shù)字,請編寫程序判斷這個數(shù)字是不是回文數(shù),若是返回True,否則返回False。
【輸入示例】12321
【輸出示例】True
m = input("請輸入數(shù)字:")
n = [] # 儲存m的數(shù)
for i in m:
n.append(i)
n = n[::-1]
j = ''
for i in n:
j = j + i
if m == j:
print('True')
else:
print('False')
·
2. 素數(shù)判斷。編寫一個函數(shù)isPrime(x),接受一個正整數(shù)作為參數(shù),并判斷該數(shù)是否為素數(shù)(只能被1和自身整除),若是返回True,否則返回False。
【輸入示例】3
【輸出示例】True
def isPrime(x):
j = 0
if x < 3:
print('True')
else:
for i in range(2, x):
m = x % i
if m == 0:
j = j
else:
j = j + 1
break
if j ==0:
print('False')
else:
print('True')
3. 統(tǒng)計字母出現(xiàn)次數(shù)。編寫一個函數(shù),接受一個字符串作為參數(shù),并統(tǒng)計每個字母出現(xiàn)的次數(shù),然后返回一個字典,字典的鍵為字母,值為出現(xiàn)的次數(shù)。
【輸入示例】'abb'
【輸出示例】{'a': 1, 'b': 2}
inp = input("請輸入:")
words = []
for i in inp:
words.append(i)
counts = {}
for word in words:
counts[word] = counts.get(word, 0) + 1
print(counts)
4. 判斷列表是否有重復元素。編寫一個函數(shù),接受一個列表作為參數(shù),并判斷該列表中是否有重復的元素,若有返回True,否則返回False。
【輸入示例】[1,2,3,4,5,3]
【輸出示例】True
def repeat(ls):
m = len(ls)
temp = set(ls)
n = len(ls)
if m == n:
print('True')
else:
print('False')
5. 計算列表中的平均值。給定一個包含數(shù)字的列表,請編寫程序來計算列表中所有數(shù)字的平均值。
【輸入示例】[1,2,3,4,5]
【輸出示例】3
ls = [1, 2, 3, 4, 5]
s = 0
for i in ls:
j = int(i)
s = s + j
p = s / len(ls)
print(p)
6. 反轉(zhuǎn)整數(shù)。編寫一個函數(shù),接受一個整數(shù)作為參數(shù),并返回該整數(shù)的反轉(zhuǎn)形式。
【輸入示例】123
【輸出示例】321
m = input("請輸入數(shù)字:")
n = [] # 儲存m的數(shù)
for i in m:
n.append(i)
n = n[::-1]
for i in n:
print(i,end='')
7. 統(tǒng)計字符串中的元音字母個數(shù)。從鍵盤輸入一串字符串,統(tǒng)計該字符串中元音字母(a、e、i、o、u)的個數(shù)。
【輸入示例】'abe'
【輸出示例】2
vowel = ['a', 'e', 'i', 'o', 'u']
inp = input("請輸入:")
s = 0
for i in inp:
if i in vowel:
s = s + 1
else:
continue
print(s)
8. 統(tǒng)計水仙花數(shù)?!八苫〝?shù)”是指一個三位數(shù)中各個數(shù)位上數(shù)字的立方和等于該數(shù)本身。例如153是一個水仙花數(shù),因為153=13+53+33。編寫程序,計算200到500之間的水仙花數(shù)共有多少個。
n = []
def ls(x):
global n
n = []
for i in x:
n.append(i)
if __name__ == '__main__':
m = 0
for i in range(200,501):
i = str(i)
ls(i)
s = 0
for j in n:
j = int(j)
s = pow(j, 3) + s
i = int(i)
if s == i:
m = m + 1
else:
continue
print(m)
9. 字符串分隔打印。獲得用戶輸入的一個字符串(包含空格),將該字符串按照空格分割,并逐行打印。
【輸入示例】'Python XYU 666'
【輸出示例】Python
XYU
666
inp = input("請輸入:")
for i in inp:
ls = inp.split()
for i in ls:
print(i)
10. ?球從100??度?由落下,每次落地后反跳回原?度的?半,再落下。
求它在第10次落地時,共經(jīng)過多少??第10次反彈多??
【輸出示例】?共經(jīng)過299.71?,第10次反彈的?度是0.10。
(提示:注意字符串的格式化輸出)
a = 100
z = 0
for i in range(0, 10):
x = 100 * pow(0.5, i)
b = 50 * pow(0.5, i)
c = x + b
z += c
y = 100 * pow(0.5, 10)
print("一共經(jīng)過{:0.2f}米,第10次反彈的高度是{:0.2f}。".format(z, y))
11. 給定兩個正整數(shù)a, b (1<=a <= b<=10^5), 請你數(shù)出在a到b之間,十個阿拉伯數(shù)字分別出現(xiàn)了多少次。比如,當a=11, b=20時,a和b之間的數(shù)有[11,12,13,14,15,16,17,18,19,20],那么0-9這10個數(shù)出現(xiàn)的次數(shù)分別是1,10,2,1,1,1,1,1,1,1。
現(xiàn)在給你a和b,請你輸出十個阿拉伯數(shù)字分別出現(xiàn)的次數(shù);
分十行輸出,第一行表示0出現(xiàn)的次數(shù),第二行表示1出現(xiàn)的次數(shù),....,最后一行表示9出現(xiàn)的次數(shù)。
【輸入示例】a =11,b =20
【輸出示例】1, 10, 2, 1, 1, 1, 1, 1, 1, 1(按行輸出)
a = 11
b = 20
c = []
d = []
e = []
for i in range(a, b+1):
c.append(i)
for i in c:
i = str(i)
for j in i:
d.append(j)
print(d)
for i in range(10):
s = 0
i = str(i)
s = 0
for j in d:
if j == i:
s = s + 1
e.append(s)
print(e)
12. 給你兩個整數(shù)a和b(-10000