如何实现让用户输入任意数量销售数据并在一行打印所有输入?
解决销售数据输入与打印问题
我来帮你修正这个问题~你的现有代码有两个关键问题:一是每次输入新数据都会覆盖之前的num变量,导致最后没有保存任何有效销售数据;二是循环结束后打印的num其实是触发停止的-1,不是你想要的销售数据。
这里给你调整后的代码,完美实现你的需求:
def main(): sales = [] # 创建空列表存储所有销售数据 while True: try: num = int(input("Please enter sales figures: ")) if num == -1: break # 输入-1时停止循环 sales.append(num) # 将有效数据加入列表 except ValueError: print("请输入有效的整数哦!") # 处理非整数输入,提升程序健壮性 # 将列表中的整数转为字符串,用空格分隔后打印在同一行 print("The sales figures entered were:", " ".join(map(str, sales))) main()
关键说明:
- 用列表存储数据:
sales列表会保留每一次输入的有效销售数据,不会被新输入覆盖 - 更清晰的循环逻辑:
while True构建无限循环,遇到-1就通过break退出,比原代码的判断逻辑更直观 - 可选的错误处理:
try-except块可以防止用户输入非整数时程序崩溃,如果你不需要这个功能,可以去掉这段,只保留核心输入逻辑 - 同一行打印:通过
" ".join(map(str, sales))把列表里的数字转为字符串并拼接成一行,满足你的打印需求
内容的提问来源于stack exchange,提问作者Bobby Martins
相关产品推荐
相关产品推荐

