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')
posted @ 2020-02-06 19:54  ch0bits  阅读(717)  评论(0)    收藏  举报