嗨,同学,要成为粉丝才可见奥,关注我把哈哈哈哈或,奥利给 ~
7-1.大于身高的平均值 (10分)
中小学生每个学期都要体检,要量身高,因为身高可以反映孩子的生长状况。现在,一个班的身高已经量好了,请输出其中超过平均身高的那些身高。程序的输入为一行数据,其中以空格分隔,每个数据都是一个正整数。程序要输出那些超过输入的正整数的平均数的输入值,每个数后面有一个空格,输出的顺序和输入的相同。
lst = list(map(int,input().split()))
sum=0
for i in range(0,len(lst)):
sum=sum+lst[i]
aver=sum/len(lst)
for i in range(0,len(lst)):
if(lst[i]>aver):
print('{:d} '.format(lst[i]),end="")
7-2 输出字母在字符串中位置索引 (20分)
输入一个字符串,再输入两个字符,求这两个字符在字符串中的索引。
s=input()
m,n=input().split()
for i in range(len(s)-1,-1,-1):
if s[i]==m:
print("%d %s"%(i,m))
if s[i]==n:
print("%d %s"%(i,n))
7-3 查找指定字符 (15分)
本题要求编写程序,从给定字符串中查找某指定的字符。
a=input()
b=input()
for i in range(-1,-(len(b)+1),-1):
if b[i]==a:
print("index = {:d}".format(len(b)+i))
break
else:
print("Not Found")
'''
a=input()
b=input()
if a in b:
print('index =', b.rindex(a))
else:
print('Not Found')
'''
'''
a=input()
s=input()
s1=list(s)
if len(a)==1 and 0<len(s)<=80:
if a in s1:
print("index =",s.rindex(a))
else:
print("Not Found")
'''
7-4 字符转换 (15分)
本题要求提取一个字符串中的所有数字字符('0'……'9'),将其转换为一个整数输出。
'''
a = input()
res = ""
for i in a:
if i.isdigit():
res += i
print(int(res))
'''
a=input()
c=""
for i in a:
if i in ['1','2','3','4','5','6','7','8','9','0']:
c += i
print(int(c))
7-5 求整数序列中出现次数最多的数 (15分)
本题要求统计一个整型序列中出现次数最多的整数及其出现次数。
'''
# my answer
l=[]
a=input().split()
for i in a:
l.append(int(i))
l2=[]
for i in l:
count=0
for j in l:
if i==j:
count=count+1
l2.append(count)
max=l2[0]
for i in range(len(l2)):
if l2[i]>=max:
t=i
max=l2[i]
print("{} {}".format(l[t],max))
'''
'''
# student 1
a=input().split()
b=len(a)
c = a[0]
for i in range(0,b):
if a.count(c) <= a.count(a[i]):
c=a[i]
print(int(c), a.count(c))
'''
'''
# student 2
n = list(input().split())
b = n.count(n[0])
i = n[0]
for a in n:
if n.count(a) >= b:
b = n.count(a)
i = a
print(i, b)
'''
'''
# student 3
lst = list(map(int,input().split()))
m=lst.count(lst[0])
for i in (1,len(lst)-1):
a=lst.count(lst[i])
if a >= m:
m = a
b = lst[i]
print('{} {}'.format(b,m))
'''
'''
a = input().split()
b = a.count(a[0])
c = a[0]
l = len(a)
for i in range(0,l):
if a.count(a[i]) >= b:
b = a.count(a[i])
c = a[i]
print(c,b)
'''
a=input().split()
idx = a[0]
b=a.count(a[0]) #count max
for i in range(1,len(a)):
if a.count(a[i])>= b:
b=a.count(a[i])
idx = a[i]
print("{} {}".format(idx,b))
7-6 求最大值及其下标 (20分)
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。
n=int(input())
lst = list(map(int,input().split()))
max=lst[0]
maxi=0
for i in range(1,n):
if(lst[i]>max):
maxi=i
max=lst[i]
# print('{:d} {:d}'.format(lst[maxi],maxi))
print(lst[maxi], maxi)
7-7 字符串逆序 (15分)
输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
a = input()
print(a[::-1])
7-8 统计大写辅音字母 (15分)
英文辅音字母是除A
、E
、I
、O
、U
以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。
s=input()
count=0
for i in range(0,len(s)):
if "A"<=s[i]<="Z" and s[i]!="A" and s[i]!="E" and s[i]!="I" and s[i]!="O" and s[i]!="U":
count=count+1
print(count)
7-9 字符串排序 (20分)
本题要求编写程序,读入5个字符串,按由小到大的顺序输出。
# print("After sorted:", *sorted(list(input().split())), sep="\n")
lst = list(map(str,input().split()))
lst.sort()
print("After sorted:")
for i in range(0,len(lst)):
print(lst[i])
7-10 求整数的位数及各位数字之和 (15分)
对于给定的正整数N,求它的位数及其各位数字之和。
a = input()
sum=0
for i in range(len(a)):
sum=sum+int(a[i])
print('{:d} {:d}'.format(len(a),sum))
7-11 字符串替换 (15分)
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 | 对应字母 |
---|---|
A | Z |
B | Y |
C | X |
D | W |
… | … |
X | C |
Y | B |
Z | A |
'''
a = input()
b = []
for n in a :
if"A" <= n <= "Z" :
b.append(chr(155-ord(n)))
else:
b.append(n)
print("".join(b))
'''
import string
pt=string.ascii_uppercase
ct=pt[::-1]
table=str.maketrans(pt,ct)
ins=input()
outs=ins.translate(table)
print(outs)
7-12 字符串字母大小写转换 (15分)
本题要求编写程序,对一个以“#”结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出。
s = input()
s = s[:s.find("#")]
ss = ''
for c in s:
if c.islower():
ss += c.upper()
elif c.isupper():
ss += c.lower()
else:
ss += c
print(ss)
7-13 统计一行文本的单词个数 (15分)
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
cnt=0
for i in input().split():
cnt=cnt+1
print(cnt)
7-14 删除重复字符 (20分)
本题要求编写程序,将给定字符串去掉重复的字符后,按照字符ASCII码顺序从小到大排序后输出。
'''
s=input()
s=set(s)
s=list(s)
list.sort(s)
a="".join(s)
print(a)
'''
'''
s=list(input())
lst = []
for i in s:
if i not in lst:
lst.append(i)
lst.sort()
for item in lst:
print(item,end = "")
'''
a=input()
b=[]
for i in a:
if i not in b:
b.append(i)
print("".join(sorted(b)))
7-15 删除字符 (30分)
输入一个字符串 str,再输入要删除字符 c,大小写不区分,将字符串 str 中出现的所有字符 c 删除。
'''
s1 = input().strip()
s2 = input().strip()
s1 = s1.replace(s2.upper(), '').replace(s2.lower(), '')
print("result: {}".format(s1))
'''
'''
b=input().strip()
c=input().strip()
c1=c.lower()
c2=c.upper()
d=''
for i in b:
if i != c1 and i != c2:
d=d+i
print("result: {}".format(d))
'''
'''
b = str(input()).strip()
c = str(input())
a = c.strip()
a1 = a.lower()
a2 = a.upper()
x = ''
for i in b:
if i != a1 and i != a2:
x = x + i
print('result:', x)
'''
a=str(input()).strip()
b=input()
b=b.replace(' ','')
b1 = b.upper()
b2 = b.lower()
n=''
for i in range(0,len(a)):
if a[i]==b1 or a[i]==b2:
n=n
else:
n=n+a[i]
print('result:',n)
7-16 输出10个不重复的英文字母 (50分)
随机输入一个字符串,把最左边的10个不重复的英文字母(不区分大小写)挑选出来。 如没有10个英文字母,显示信息“not found”
string = ''.join(input().split())
container = set()
indexList = list()
for i in range(0, len(string)):
old = len(container)
if str.isalpha(string[i]):
container.add(string[i].lower())
new = len(container)
if old != new:
indexList.append(i)
if len(container) == 10:
print(*list(map(lambda a: string[a], indexList)), sep="")
exit()
print("not found")
7-17 找最长的字符串 (15分)
本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。
a= int(input())
i = 0
b = []
e = []
for i in range(a):
d = input()
b.insert(i,len(d))
e.insert(i,d)
i+=1
index1 = 0
max_ = len(str(b[index1]))
for i in b:
if i>=index1:
index1 = b.index(i)
max_ = i
print("The longest is: {}".format(e[index1]))
7-18 逆序的三位数 (10分)
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
a=input()
if len(a)==3:
a=int(a)
while a%10==0:
a=a//10
print(str(a)[-1::-1])
7-19 判断回文字符串 (15分)
输入一个字符串,判断该字符串是否为回文。回文就是字符串中心对称,从左向右读和从右向左读的内容是一样的
'''
s=input()
flag=False
for i in range(len(s)//2):
if s[i] != s[len(s)-1-i]:
flag=True
if flag == True:
print(s)
print("No")
else:
print(s)
print("Yes")
'''
'''
b=input()
a=list(b)
flag = True
for i in range(0,int(len(a)/2)):
if a[i] != a[len(a) - i - 1]:
flag = False
print(b)
if flag:
print("Yes")
else:
print("No")
'''
s = input()
f = True
for i in range(len(s)//2 + 1):
if s[i] == s[len(s)-i-1]:
f = True
else:
f = False
if f == True:
print(s)
print("Yes")
else:
print(s)
print("No")
7-20 输出大写英文字母 (15分)
本题要求编写程序,顺序输出给定字符串中所出现过的大写英文字母,每个字母只输出一遍;若无大写英文字母则输出“Not Found”。
'''
s=input()
data=[]
for i in range(len(s)):
if s[i].isupper() and s[i] not in data:
data.append(s[i])
if i==len(s)-1 and len(data) == 0:
print("Not Found")
for i in data:
print("%s"%i,end="")
'''
# 注意全是空格输入的特殊情况的判断
a=input()
b=[]
for i in a:
if "".join(b).find(i)==-1 and i.isupper():
b.append(i)
if len(b) == 0:
print("Not Found")
else:
print("".join(b))
*7-21 判断两个字符串是否为变位词 (40分)
如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词。比如,”heart”与”earth”互为变位 词,”Mary”与”arMy”也互为变位词。
s=list(input())
m=list(input())
count=0
for i in range(len(s)):
if s.count(s[i])==m.count(s[i]):
count+=1
if count == len(s):
print("yes")
else:
print("no")
*7-22 查验身份证 (15分)
一个合法的身份证号码由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:0 1 2 3 4 5 6 7 8 9 10
M:1 0 X 9 8 7 6 5 4 3 2
现在给定一些身份证号码,请你验证校验码的有效性,并输出有问题的号码。
# student 1
'''
def judge(mlist, jlist, flist):
sum = 0
x = 0
lnum = mlist[-1]
mlist = mlist[:17]
for i in mlist:
if i >= '0' and i <= '9':
sum += int(i) * flist[x]
x += 1
else:
return False
re = sum % 11
if jlist[re] == lnum:
return True
else:
return False
num = int(input())
cnt = 0
jlist = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
flist = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
for i in range(num):
mlist = input()
if judge(mlist, jlist, flist) == False:
print(mlist)
else:
cnt = cnt + 1
if cnt == num:
print("All passed")
'''
# my code
n = int(input())
h = []
T = True
weight=['7','9','10','5','8','4','2','1','6','3','7','9','10','5','8','4','2','0']
dict={'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):
h.append(input())
for i in h:
t = True
for j in range(17):
if not(i[j].isdigit()):
t = False; break
if not t:
T = False; print(i)
continue
s=0
for u in range(17):
s = (s+int(i[u])*int(weight[u])) % 11
v = dict[str(s)]
if v != i[17]:
T = False; print(i)
if T:
print('All passed')
# student 3
'''
num=int(input())
sfz=[]
m=0
j=0
sc=[]
for i in range(0,num) :#输入身份证
sfz.append(input())
sfz2=sfz[:]#复制备用
for i in range(0,num) :
while j<=16 :
if 48>ord(str(sfz[i][j])) or ord(str(sfz[i][j]))>57 : #用ord函数排除掉前17位有非数字的存在
sc.append(sfz[i])
break
j=j+1
j=0
for i in sc:
sfz.remove(i)#把前17位不是数字的身份证号去掉
for i in range(0,len(sfz)) :#一长串验证M和Z的关系
for m in range(0,17) :
z = int\
((7 * (int(sfz[i][0])) + 9 * (int(sfz[i][1])) + 10 * (int(sfz[i][2])) + 5 * (int(sfz[i][3])) \
+ 8 * (int(sfz[i][4])) + 4 * (int(sfz[i][5])) + 2 * (int(sfz[i][6])) + 1 * (int(sfz[i][7])) \
+ 6 * (int(sfz[i][8])) + 3 * (int(sfz[i][9])) + 7 * (int(sfz[i][10])) + 9 * (int(sfz[i][11])) \
+ 10 * (int(sfz[i][12])) + 5 * (int(sfz[i][13])) + 8 * (int(sfz[i][14])) + 4 * (int(sfz[i][15]))\
+ 2 * (int(sfz[i][16]))) % 11)
if z == 2 and sfz[i][17] != 'X' :
# print(str(sfz[i]))
sc.append(sfz[i])
break
elif (z != 2 and str((12 - z) % 11) != sfz[i][17]) :
sc.append(sfz[i])
break
if sc==[] :#考虑全部正确的情况
print('All passed')
sfz3=sfz2[:]#这个时候想办法把最后结果要输出的错误的身份证号排序,采用删除掉原序列里正确的身份证号的方法
for i in sc :
sfz2.remove(i)
for i in sfz2:
sfz3.remove(i)
for i in sfz3 :
print(i)
'''
# student 4
'''
c = int(input())
list2 = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']
list1 = []
d = ['1', '0', '9', '8', '7', '6', '5', '4', '3', '2']
weight = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
k = 0
flag = True
for i in range(1, c + 1):
n = list(input())
for r in n[:17]:
if r not in d:
flag = False
break
if flag:
s = 0
for i in range(0, 17):
s = s + weight[i] * int(n[i])
h = s % 11
m = list2[h]
if m != n[17]:
list1.append(''.join(n))
else:
k = k + 1
else:
list1.append(''.join(n))
if len(list1) == 0:
print('All passed')
else:
for p in list1:
print(p)
'''