从 第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')
标签:练习题,Python,len,切片,range,num,PTA,print,input
来源: https://www.cnblogs.com/echoDetected/p/12270099.html