You need to enable JavaScript to run this app. Python如何判断输入成绩为空时终止程序并输出排序结果
优惠活动
大模型
产品
解决方案
定价
更多

Python如何判断输入成绩为空时终止程序并输出排序结果

成绩程序改造实现方案
  • 原有程序的设计是固定次数录入所有学生成绩,完成录入后对成绩做升序排序输出
  • 本次改造目标:当用户在输入成绩时,没有输入任何内容直接按回车提交,程序立刻终止录入流程,将已录入的成绩按升序排序后输出
  • 目前卡壳的点:不知道用什么判断逻辑识别空输入,触发提前结束、打印结果的流程
现有代码的待调整点
  • 循环外单独写的一行score=int(input("Please enter the student's score:"))是冗余代码,会在正式循环开始前多要求一次输入
  • 循环写死了执行7次(range(1,8)),没有预留提前退出的分支,没法响应空输入的终止要求
  • 循环内的逻辑顺序反了:先执行mes.sort()再往列表里append新成绩,第一次循环的排序操作完全没有效果
  • 直接对input的返回值强转int的写法有问题:input拿到的永远是字符串,用户直接按回车时返回的是空字符串"",这时候直接转int会触发类型报错,程序直接崩溃,根本走不到空值判断的环节
核心判断逻辑

最关键的注意事项:拿到input的返回值先不要转整数,先保留原始字符串状态做判断

  • input函数的返回值固定是字符串类型:如果用户直接按回车、没有输入任何内容,返回的就是长度为0的空字符串""
  • 只要写判断if 原始输入值 == "":,就能准确识别空输入的场景
  • 检测到空输入后直接用break跳出录入循环,再执行排序、打印结果的流程就可以
可直接运行的改造代码
# 初始化空列表存成绩
score_list = []
# 用无限循环做录入,碰到空输入才退出
while True:
    # 先拿到原始的字符串输入,不提前做类型转换
    raw_input = input("请输入学生成绩:")
    # 判断是空输入,触发跳出
    if raw_input == "":
        break
    # 非空输入再转成整数存入列表
    score = int(raw_input)
    score_list.append(score)
# 对已录的成绩做升序排序
score_list.sort()
print(f"从小到大排序的成绩为: {score_list}")
实际运行效果
请输入学生成绩:89
请输入学生成绩:38
请输入学生成绩:49
请输入学生成绩:77
请输入学生成绩:38
请输入学生成绩:39
请输入学生成绩:
从小到大排序的成绩为: [38, 38, 39, 49, 77, 89]

内容的提问来源于stack exchange,提问作者user14761693

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.14 02:45:05