浙⼤PTA《Python程序设计》第三章
第三章
3-1 ⼤于⾝⾼的平均值
中⼩学⽣每个学期都要体检,要量⾝⾼,因为⾝⾼可以反映孩⼦的⽣长状况。现在,⼀个班的⾝⾼已经量好了,请输出其中超过平均⾝⾼的那些⾝⾼。程序的输⼊为⼀⾏数据,其中以空格分隔,每个数据都是⼀个正整数。程序要输出那些超过输⼊的正整数的平均数的输⼊值,每个数后⾯有⼀个空格,输出的顺序和输⼊的相同。
输⼊格式:
在⼀⾏输⼊中⼀个班的⾝⾼值,以空格分隔。
输出格式:
在⼀⾏输出超过输⼊的平均数的输⼊值,以空格分隔。
输⼊样例:
在这⾥给出⼀组输⼊。例如:
143174119127117164110128
输出样例:
在这⾥给出相应的输出。例如:
143174164
【题解】
list=list(map(int,input().split()))
sum=0
for i in range(0,len(list)):
sum+=list[i]
aver =sum/len(list)
for i in range(0,len(list)):
if(list[i]>aver):
print(list[i],end=" ")
3-2 查验⾝份证
⼀个合法的⾝份证号码由17位地区、⽇期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
⾸先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:
Z:012345678910
M:10 X 98765432
现在给定⼀些⾝份证号码,请你验证校验码的有效性,并输出有问题的号码。
输⼊格式:
输⼊第⼀⾏给出正整数N(≤100)是输⼊的⾝份证号码的个数。随后N⾏,每⾏给出1个18位⾝份证号码。
输出格式:
按照输⼊的顺序每⾏输出1个有问题的⾝份证号码。这⾥并不检验前17位是否合理,只检查前17位是否全为数字且最后1位校验码计算准确。如果所有号码都正常,则输出All passed。
输⼊样例1:
在这⾥给出⼀组输⼊。例如:
4
320124************
12010X198901011234
110108************
370704************
输出样例1:
在这⾥给出相应的输出。例如:
12010X198901011234
110108************
370704************
输⼊样例2:
在这⾥给出⼀组输⼊。例如:
2
320124************
110108************
输出样例2:
在这⾥给出相应的输出。例如:
All passed
【题解】
n =int(input())
w =[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2]
s =0
dic ={0:'1',1:'0',2:'X',3:'9',4:'8',5:'7',6:'6',7:'5',8:'4',9:'3',10:'2'}
for i in range(n):
r =[]
m =input()
if not m[0:17].isdigit():
print(m)
s +=1
else:
for k in range(17):
r.append(w[k]*int(m[k]))
if dic[sum(r)%11]!= m[17]:
print(m)
s +=1
if s ==0:
print('All passed')
3-3 输出字母在字符串中位置索引
输⼊⼀个字符串,再输⼊两个字符,求这两个字符在字符串中的索引。
输⼊格式:
第⼀⾏输⼊字符串
第⼆⾏输⼊两个字符,⽤空格分开。
输出格式:
从右向左输出字符和索引,即下标最⼤的字符最先输出。每⾏⼀个。
输⼊样例:
在这⾥给出⼀组输⼊。例如:
pmispsissippi
s p
在这⾥给出相应的输出。例如:
11 p
10 p
8 s
7 s
5 s
4 p
3 s
0 p
【题解】
s =input()
m, n=input().split()
s=s[::-1]
for i in range(0,len(s)):
if(n==s[i]):
print("{:d} {:s}".format(len(s)-i-1,n))
for i in range(0,len(s)):
if(m == s[i]):
print("{:d} {:s}".format(len(s)- i -1, m))
3-4 查指定字符
本题要求编写程序,从给定字符串中查某指定的字符。
输⼊格式:
输⼊的第⼀⾏是⼀个待查的字符。第⼆⾏是⼀个以回车结束的⾮空字符串(不超过80个字符)。
输出格式:
如果到,在⼀⾏内按照格式“index = 下标”输出该字符在字符串中所对应的最⼤下标(下标从0开始);否则输出"Not Found"。
输⼊样例1:
在这⾥给出⼀组输⼊。例如:
m
programming
输出样例1:
在这⾥给出相应的输出。例如:
index =7
输⼊样例2:
在这⾥给出⼀组输⼊。例如:
a
1234
输出样例2:
在这⾥给出相应的输出。例如:
Not Found
【题解】
s =input()
list=list(s)
flag=0
for i,j in enumerate(list):
if(j==f):
index=ilambda编程
flag=1
if(flag==1):
print("index={}".format(index))
else:
print("Not Found")
3-5 字符转换
本题要求提取⼀个字符串中的所有数字字符(‘0’……‘9’),将其转换为⼀个整数输出。
输⼊格式:
输⼊在⼀⾏中给出⼀个不超过80个字符且以回车结束的字符串。
输出格式:
在⼀⾏中输出转换后的整数。题⽬保证输出不超过长整型范围。
输⼊样例:
在这⾥给出⼀组输⼊。例如:
free82jeep5
输出样例:
在这⾥给出相应的输出。例如:
825
【题解】
s =input()
a =[]
for i in s:
if i.isdigit():
a.append(i)
print(int("".join(i)))
3-6 求整数序列中出现次数最多的数
本题要求统计⼀个整型序列中出现次数最多的整数及其出现次数。
输⼊格式:
输⼊在⼀⾏中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。
输出格式:
在⼀⾏中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题⽬保证这样的数字是唯⼀的。
输⼊样例:
在这⾥给出⼀组输⼊。例如:
1032-15343032
输出样例:
在这⾥给出相应的输出。例如:
34
【题解】
# ⽤数字和频数创建⼀个字典
l=list(map(int,input().split()))
# 将输⼊的数读⼊序列(第⼀个为整数个数)
t=l[1:l[0]+1]
# 通过切⽚摘出整数列表
for word in t:
count[word]=(word,0)+1
# 遍历列表计数
items=list(count.items())
# 将字典转换为列表
items.sort(key=lambda x:x[1],reverse=True)
# 按照频数排序输出
word,count=items[0]
print("{:d} {:d}".format(word,count))
3-7 求最⼤值及其下标
本题要求编写程序,出给定的n个数中的最⼤值及其对应的最⼩下标(下标从0开始)。
输⼊格式:
输⼊在第⼀⾏中给出⼀个正整数n(1<n≤10)。第⼆⾏输⼊n个整数,⽤空格分开。
输出格式:
在⼀⾏中输出最⼤值及最⼤值的最⼩下标,中间⽤⼀个空格分开。
输⼊样例:
在这⾥给出⼀组输⼊。例如:
6
28101910
输出样例:
在这⾥给出相应的输出。例如:
102
【题解】
n=int(input())
lst =list(map(int,input().split()))
a=max(lst)
b=0
for i,j in enumerate(lst):
if j==a:
b=i
break
print("{} {}".format(a,b))
3-8 字符串逆序
输⼊⼀个字符串,对该字符串进⾏逆序,输出逆序后的字符串。
输⼊格式:
输⼊在⼀⾏中给出⼀个不超过80个字符长度的、以回车结束的⾮空字符串。
输出格式:
在⼀⾏中输出逆序后的字符串。
输⼊样例:
在这⾥给出⼀组输⼊。例如:
Hello World!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。