我希望这更加清楚:
numbers = [2, 3, 2]
total = 0
while numbers:
total += numbers.pop()
这将返回数字的总值。
现在,我必须以这种方式(第二个代码)购买总金额____金额(第一个代码):
purchase_amount=[]
item=[]
while item != 'done':
item=input("Enter the price, or type 'done' to finnesh ", )
if item != 'done':
if item.isdigit():
purchase_amount.append(item)
else:
print('please type only numbers')
print(purchase_amount)
numbers = [purchase_amount]
total = 0
while numbers:
total += numbers.pop()
print(numbers)
尽管每次都无法通过,但我无法从第一个代码的输入中获取数字以在此处成为浮点数并在一个数字中加法运算。
答案 0 :(得分:0)
您的代码有些错误。主要问题之一是input
返回一个字符串,而不是浮点数。
您需要转换用户的输入值。这样做的标准方法就是这样。
item = input("Enter the price, or type 'done'")
if item == 'done':
... # Likely break from your loop
try:
item = float(item)
except ValueError:
print('Invalid input')
第二个关键问题是numbers
是列表列表,您应该改用purchase_amount
。
尽管这里没有必要从列表中弹出,因为您可以简单地循环浏览它,或者甚至更好地使用sum
。
这是您代码的固定版本。
purchase_amount = []
while True:
item = input("Enter the price, or type 'done'")
if item == 'done':
break
try:
purchase_amount.append(float(item))
except ValueError:
print('Invalid input')
print(purchase_amount)
total = sum(purchase_amount)
print(total)