Python编程作业求助:while循环构建咖啡价格列表代码故障排查
问题分析与代码修正
嘿,我帮你看看代码里的问题哈,几个小细节没处理对,导致功能不正常:
- 循环初始条件错误:你一开始把
coffee设为0,而while coffee > 0的条件会直接跳过循环,根本不会进入输入环节,自然也收集不到任何价格。 - 价格添加逻辑颠倒:你现在把负数加到了列表里,但任务要求是把正数价格追加进去,负数只是用来终止循环的,不能加到列表中。
- 缺少统计元素数量的步骤:任务明确要求完成后统计列表元素数量,你的代码里没实现这部分。
这里是修正后的代码,完全符合任务要求:
# 初始化空的咖啡价格列表 coffee_price_list = [] # 创建无限循环,直到输入负数才退出 while True: # 获取用户输入并转换为整数类型 coffee = int(input("Enter price of coffee or a negative value to stop: ")) # 如果输入负数,直接终止循环 if coffee < 0: break # 输入正数时,将价格追加到列表中 coffee_price_list.append(coffee) # 统计并打印列表元素数量 print(f"总共收集了 {len(coffee_price_list)} 个咖啡价格") # 逐行打印每个价格 print("所有咖啡价格如下:") for price in coffee_price_list: print(price)
我再给你拆解下修正的关键点:
- 用
while True创建无限循环,确保程序一开始就能进入输入流程,不用依赖初始变量值。 - 调整判断逻辑:输入负数时直接用
break跳出循环,只有正数才会被添加到列表里,完全符合任务要求。 - 增加了
len(coffee_price_list)来统计元素数量,并通过打印语句展示出来,满足任务的统计要求。
内容的提问来源于stack exchange,提问作者Christopher Fernandes
相关产品推荐
相关产品推荐

