PTA的Python練習題(四)


從 第3章-1 3-1.大於身高的平均值 開始

1.

引入列表的概念

 

a=list(map(int,input().split()))
b=sum(a)
c=len(a)
d=b/c
for i in a:
    if(i>=d):
        print('%.0f'%(i),end=' ')

 

2.

題目本身有些復雜,參考了網上的代碼:

x = [7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
y = ['1','0','X','9','8','7','6','5','4','3','2']
n = int(input())
m = 0
for i in range(n):
    num = str(input())
    if len(num)>18:
        print(num)
        m = 1
    else:
        a = num[:17]
        c = True
        b = 0
        for j in range(len(a)):
            try:
                b+=int(a[j])*x[j]
            except:
                c = False
                print(num)
                m = 1
                break
        if c:
            b = b%11
            if y[b]!=num[-1]:
                print(num)
                m = 1
if m==0:
    print('All passed')

 

3.

用切片法:只需a[::-1]就可以了,其中第一個: 表示的是切片的區間,如果沒有設定數值,默認是全部區間;第二個:表示的是切片的步數和方向,默認為切片方向為從前向后,默認步數為1.上面的-1,代表的就是從后向前,一次往前切一次,也就是剛好倒置列表。

下標表示方法:a.index(),不過相同元素的下標是相同的就沒法使用了

這里要用長度減i再減1,來計算下標

a=str(input())
m,n=input().split()
c=a[::-1]
for i in range(0,len(c)):
    if(c[i]==n):
      print('{:d} {:s}'.format(len(c)-i-1,n))
for i in range(0,len(c)):
    if(c[i]==m):
      print('{:d} {:s}'.format(len(c)-i-1,m))

 

4.

有了上面一題的啟發,這道題變得簡單多了:

a=input()
b=str(input())
c=b[::-1]
d=len(c)
flag=0
for i in range(0,len(b)):
    if(c[i]==a):
      print('index = {}'.format(d-i-1))
      flag=1
      break
if(flag==0):
      print('Not Found')


免責聲明!

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



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