蓝桥题库每日一练 · 2026.08.19
8月19日 用户一次性输入 N 个数字(2≤N≤15),数字…
用户一次性输入 N 个数字(2≤N≤15),数字之间用逗号分隔。然后依次输出:(1) 输入的数字;(2) 数字的个数;(3) 最小的数字;(4) 把这些数字从大到小排列输出;(5) 若某个数字在 1~26 之间,就换成对应的大写字母(1 对应 A,26 对应 Z),拼接显示,范围之外的数字用 * 代替。
样例
输入 9,12,15,22,5,21,214输出 7 / 5 / 214,22,21,15,12,9,5 / ILOVEU*评分标准
- 每完成一项输出得 30 分,五项共 150 分
参考解法
这题像一条流水线,一次把数字加工成 5 样东西。先把输入变成「一排数」:input() 读进来是一整串字,用 split(',') 按逗号切开,再逐个转成整数,装进一个列表——列表就是 Python 里「一排带号的格子」,跟 8 月 9 日 Scratch 的列表是一回事。
然后一样样办:
· 个数:len(列表) 就是格子数;
· 最小:min(列表) 直接挑出最小的;
· 从大到小:sorted(列表, reverse=True) 排一遍;
· 换字母:这里要补一个小知识——电脑给每个字母都编了号,A 是第 1 个、B 第 2 个……那「第 x 个大写字母」怎么求?用 chr(ord('A') + x - 1):ord('A') 拿到 A 的编号,加上 x−1 就跳到第 x 个,chr 再变回字母。只有 1~26 才有对应字母,其它一律写 *。
s = input()
nums = [int(x) for x in s.split(',')]……此答案或解析由 AI 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。