關於python的十一道練習


關於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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM