You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python逐行输入转小写遇0终止程序代码报错排查求助

题目要求

编写程序逐行输入文本,将每行文本转换为小写后打印到屏幕,最后一行打印输入的总行数;当遇到内容仅为0的行时程序停止运行,要求使用无限循环搭配break语句实现。

问题描述

按照要求编写代码后,运行时出现「Input 9 is empty」报错,原代码如下:

a = 1
l = 0
while a != 0:
    a = input()
    a.lower()
    print(a)
    l+=1

题目给出的示例输入如下:

TbH
Rn
ngL
bRb
0
问题排查

原代码存在3个核心错误:

  • 循环实现不符合要求,且终止逻辑失效:题目明确要求使用无限循环搭配break实现停止逻辑,原代码使用a != 0作为循环判断条件,而input()返回值为字符串类型,字符串和整数0做比较永远不会得到相等结果,循环不会在输入为'0'时停止,持续读取到空输入时就会触发报错。
  • 小写转换逻辑无效:Python字符串为不可变类型,a.lower()会返回转小写后的新字符串,不会修改原变量a的内容,直接打印a无法得到转小写后的结果。
  • 计数与输出逻辑错误:原代码会把终止标识行(内容为0的行)计入总行数,也没有在循环结束后打印统计的总行数,不符合题目输出要求。
正确实现方案

按照题目要求的无限循环+break逻辑编写代码,修正转换、计数逻辑:

line_count = 0
while True:
    content = input()
    # 遇到仅为0的行直接终止循环
    if content == '0':
        break
    # 转小写后打印
    print(content.lower())
    line_count += 1
# 循环结束后打印总行数
print(line_count)

对应给定的示例输入,运行后输出结果如下:

tbh
rn
ngl
brb
4

完全匹配题目要求,不会触发空输入报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 02:45:48