【发布时间】:2020-04-20 15:05:23
【问题描述】:
我正在尝试做以下练习:
任务 4
创建一个空列表purchase_amounts 使用用户输入的项目价格填充列表继续添加到列表中,直到输入“完成”
可以使用 while True: with break
打印购买金额
这是我目前的代码:
#[ ] complete the Register Input task above
purchase_amounts=[]
purchase_amounts.append(input("Enter the prices: "))
while True:
if input("Enter the prices: ") != "done":
purchase_amounts.append(input("Enter the prices: "))
else:
break
print(purchase_amounts)
但它给了我这样一个非常奇怪的输出:
输入价格:2222222
输入价格:1
输入价格:2
输入价格:3
输入价格:完成
输入价格:完成
['2222222', '2', '完成']
有人知道为什么它会覆盖第二个、第四个和第五个输入并且它没有将值添加到列表中吗?非常感谢!
【问题讨论】:
-
你需要稍微重构一下。
input()返回用户输入的字符串。在 while 循环中,如果值不等于“done”,则丢弃该值,并再次提示用户。因此,将值存储在某处,然后与该(存储的)值进行比较。 -
这是因为,你调用了两次输入函数。将输入存储在局部变量中并比较局部变量。
标签: python python-3.x