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

如何在输入空行时停止向列表添加值并解决float转换报错

错误原因
  • 循环条件逻辑错误:你定义的i是整数计数变量,用i != ""作为循环终止条件永远成立,循环无法主动停止
  • 空输入未做前置判断:按下回车键输入空行时,input()会返回空字符串'',直接传入float()执行类型转换必然触发类型错误
修正方案

先读取输入内容判断是否为空,空则跳出循环,非空再转换为浮点数存入列表,不需要额外的计数变量控制循环,修正后代码如下:

def main():
    signal = []
    print("Enter the data points of the signal. Stop with empty line.\n")
    while True:
        input_str = input()
        # 输入为空直接终止循环
        if input_str == "":
            break
        # 非空输入再做类型转换
        value = float(input_str)
        signal.append(value)
    print(signal)

main()

如果需要进一步兼容非数字的非法输入场景,可以加上异常捕获逻辑,避免输入非数字内容时程序崩溃:

def main():
    signal = []
    print("Enter the data points of the signal. Stop with empty line.\n")
    while True:
        input_str = input()
        if input_str == "":
            break
        try:
            value = float(input_str)
            signal.append(value)
        except ValueError:
            print("Invalid input, please enter a number or empty line to stop.")
    print(signal)

main()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:54:03