第十届蓝桥杯青少年python第3题

第十届蓝桥杯青少年python第三题
第三题(难度系数 3,满分 50 分)
编程实现:
让用户在一次输入时输入 N 个数字(2<=N<=15,即每次输入的数字数量不同),数字之间以“,”作为分隔。
然后组合显示:
(1)用户输入的数字个数;
(2)用户输入的最小的数字;
(3)将用户输入的数字按从大到小进行排列输出,数字之间以“,”作为分隔;
(4)如果用户输入的数字小于等于 26,则找到相对应的 26 个大写英文字母(1 对应“A”,26 对应“Z”),
并拼接在一起打印显示,如果输入的数字在 1~26 之外则不显示相应字母。(例:程序输入 214,则显示输出“[bad]”)。

输入:
N 个数字,2<=N<=15
输出:
输入的数字个数
输入的最小数字
输入的数字从大到小排列
输入的数字所对应的字母

样例输入:
9,12,15,22,5,21,214
样例输出:
7
5
214,22,21,15,12,9,5
ILOVEU[bad]

本人解答如下:
s=input()
a=[]
for i in s.split(‘,’):
a.append(int(i))

print(len(a))

b=a[:]
b.sort()
c=b[:]
c.reverse()

i=c.pop(0)
while c!=[]:
print(str(i),end=‘,’)
i=c.pop(0)
print(str(i),end=‘\n’)

for i in a:
if (i>=1)&(i<=26):
print(chr(64+i),end=‘’)
else:
print(‘[bad]’,end=‘’)
第十届蓝桥杯青少年python第3题_第1张图片
总结:
输入是字符串,把字符串处理成分开的串,用的是字符串的.split(‘分隔符’) 的方法
然后把处理得到的数字存入一个数组(即列表)
注意列表的复制,a=[],b=a复制不过来,必须用b=a[ : ]进行复制;
a.sort()和a.reverse()改变的都是直接改变原来的列表,如果后面还需要用到前面的列表,就要先留存一份。
print()默认是以换行符结尾的,如果各个结果之间不想换行,可以用print(输出内容,end=‘以什么结尾’)来规定以什么结尾。

ord(‘某字符’)将得到该字符的ASCII码值,例如ord(‘A’)等于65
chr(某数字)讲得到该序号表示的字符,例如n=65, chr(n)将得到A

你可能感兴趣的:(蓝桥杯,职场和发展)