如何以浮动形式弹出列表的项目

时间:2018-08-14 11:38:22

标签: python python-3.x

我希望这更加清楚:

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)

尽管每次都无法通过,但我无法从第一个代码的输入中获取数字以在此处成为浮点数并在一个数字中加法运算。

1 个答案:

答案 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)