關於python的十一道練習
1.編寫程序,輸入一個自然數字符串,然后輸出各位數字之和。例如,輸入字符串1234,輸出10.
1 def sums1(): #第一題 2 strs=input('請輸入一個自然數字符串:') 3 num=0 4 for i in range(0,len(strs)): 5 num=num+int(strs[i:i+1]) 6 print('該字符串各位數字之和為:',num)
2.編寫程序,輸入一個字符串,輸出翻轉(首尾交替)后的字符串。例如,輸入字符串12345,輸出54321.
1 def turn2(): #第二題 2 strs=input('請輸入一個字符串:') 3 strn=list(strs) 4 m=strn.copy() 5 n=len(strs)-1 6 for i in strn: 7 m[n]=i 8 n=n-1 9 strs=''.join(m) 10 print('該字符串的翻轉為:',strs)
- 該題要注意的是 ''.join() 為列表轉字符串。
3.編寫程序,輸入一個包含若干整數的列表,輸出列表中的最大值。例如,輸入[1,2,3,4,5,888],輸出888.
1 def max3(): #第三題 2 li = list(map(int,input('請輸入一串整數,用空格隔開:').split())) 3 maxn=li[0] 4 for i in li : 5 if maxn<i:maxn=i 6 print('最大值為:',maxn)
- 該題要注意的是因為輸入的是字符串,要將其轉化為列表,.split()是將輸入的字符串用空格分隔開轉為列表,map()函數將字符串列表中的每個字符串數字轉化為int整型數值 。
4.編寫程序,輸入一個包含若干整數的列表,把列表中所有整數轉換為字符串,然后輸出包含這些字符串的列表。例如,輸入[1,2,3,4,5,888],輸出['1','2','3','4','5','888']。
1 def lizstr4(): #第四題 2 li = list(map(int,input('請輸入一串整數,用空格隔開:').split())) 3 print('轉換為列表為:',[str(i) for i in li])
- 該題要注意的是 str(i) for i in li 為將列表 li 中的所有元素都轉換成字符串。
5.編寫程序,輸入一個包含若干任意數據的列表,輸出該列表中等價於True的元素組成的列表。例如,輸入[1,2,0,None,False,'a'],輸出[1,2,'a']。
1 def true5(): #第五題 2 li = list(input('請輸入一串字符串,用空格隔開:').split()) 3 a=[] 4 for i in li : 5 if i!=0 and i!='None' and i!='none' and i!='False' and i!='false': 6 a.append(i) 7 print('等價於True的元素為:',a)
6.編寫程序,輸入一個包含若干自然數的列表,輸出這些自然數的平均值。
1 def average6(): #第六題 2 li = list(map(int,input('請輸入一串自然數,用空格隔開:').split())) 3 sumn=0 4 for i in li: 5 sumn+=i 6 avg=sumn/len(li) 7 print('平均數為:%.3f'%avg)
7.編寫程序,輸入一個包含若干自然數的列表,輸出這些自然數降序排列的新列表。
1 def des7(): #第七題 2 li = list(map(int,input('請輸入一串自然數,用空格隔開:').split())) 3 for i in range(0,len(li)): 4 for j in range(i,len(li)): 5 if li[i] < li[j]: 6 temp=li[i] 7 li[i]=li[j] 8 li[j]=temp 9 print('降序排列為:',li)
8.編寫程序,輸入一個包含若干自然數的列表,輸出一個新列表,新列表中每個元素為原列表中每個自然數的位數。例如,輸入[1,888,99,23456],輸出為[1,3,2,5]。
1 def digit8(): #第八題 2 li = list(map(int,input('請輸入一串自然數,用空格隔開:').split())) 3 m=[] 4 n=0 5 for i in li : 6 m.append(len(str(i))) 7 n+=1 8 print('新列表為:',m)
9.編寫程序,輸入一個包含若干實數的列表,輸出其中絕對值最大的實數。例如,輸入[-8,64,3.5,-89],輸出-89。
1 def maxabs9(): #第九題 2 li = list(map(eval,input('請輸入一串實數,用空格隔開:').split())) 3 maxn=li[0] 4 for i in li: 5 if abs(maxn)<abs(i): 6 maxn=i 7 print('絕對值最大為:',maxn)
- 該題要注意的是 abs() 為系統求數的絕對值函數。
10.編寫程序,輸入一個包含若干整數的列表,輸出這些整數的乘積。例如,輸入[-2,3,4],輸出-24。
1 def product10(): #第十題 2 li = list(map(eval,input('請輸入一串整數,用空格隔開:').split())) 3 product=1 4 for i in li: 5 product=product*i 6 print('乘積為:',product)
11.編寫程序,輸入兩個包含着若干整數的等長列表,把這兩個列表看作兩個向量,輸出這兩個向量的內積。
1 def inner11(): #第十一題 2 li1 = list(map(eval,input('請輸入第一串實數,用空格隔開:').split())) 3 li2 = list(map(eval,input('請輸入第二串實數,用空格隔開:').split())) 4 m=[] 5 for i in range(0,len(li1)): 6 m.append(li1[i]*li2[i]) 7 print('內積為:',m)