如何根据用户输入的整数值增加总成本?

2024-10-04 01:36:39 发布

您现在位置:Python中文网/ 问答频道 /正文

该项目要求我们将每个番茄酱包用户想要的总成本增加0.25。我遇到的主要问题是试图使每个数据包的成本增加0.25。例如,对于4个数据包,总成本将增加1.00。此外,可以帮助我也使它的地方,如果他们输入任何东西以外的整数,它将停止代码

我的这部分代码如下

print("How many ketchup packets would you like? The Cost is 0.25 every packet.")

ketchupPack = input("How many packets do you want? Please enter a positive integer if possible.")
ketchupPack=int(ketchupPack)

if(ketchupPack>=1):
print("Thanks for entering the amount of Ketchup you would like!")
totalCost + 0.25
print("The total cost of your meal so far is $" + str(round(totalCost,2)))

else:

print(totalCost)

Tags: the代码youifis数据包manylike
1条回答
网友
1楼 · 发布于 2024-10-04 01:36:39

您的代码有几个问题

首先,你的缩进是错误的;ifelse块中的代码必须缩进。如果没有,将抛出一个SyntaxError

其次,totalCost + 0.25不做你想做的事;它是一个表达式,不是语句,并且不会更改变量的值(有关详细信息,请参见here)。要实际更改其值,需要使用totalCost = totalCost + 0.25,也可以缩写为totalCost += 0.25

有了这样的变化,不管买了多少番茄酱,你仍然只在totalCost上增加了0.25。您需要将数据包的数量乘以0.25才能得到正确的值

至于处理ketchupPack的非整数输入,可以使用a ^{} statement。这些语句允许您尝试运行代码,并且在抛出异常的情况下,运行不同的代码来解释异常

有了这些更改,您的代码应该如下所示:

print("How many ketchup packets would you like? The Cost is 0.25 every packet.")

ketchupPack = input("How many packets do you want? Please enter a positive integer if possible.")
try:
    ketchupPack = int(ketchupPack)
except ValueError:
    print("Invalid input: defaulting to 1000000 ketchup packs.")
    ketchupPack = 1000000

totalCost = 0

if(ketchupPack>=1):
    print("Thanks for entering the amount of Ketchup you would like!")
    totalCost += 0.25 * ketchupPack
    print("The total cost of your meal so far is $" + str(round(totalCost,2)))
else:
    print(totalCost)

现在,如果转换为整数失败,它将打印"Invalid input: defaulting to 1000000 ketchup packs.",并将ketchupPacks设置为1000000,因为每个人都喜欢番茄酱

另一个选项是创建一个循环并继续请求输入,直到输入为有效的整数值,然后从循环中断,如下所示:

print("How many ketchup packets would you like? The Cost is 0.25 every packet.")

while True:
    try:
        ketchupPack = input("How many packets do you want? Please enter a positive integer if possible.")
        ketchupPack = int(ketchupPack)
        break
    except ValueError:
        print("Invalid input: please enter a positive integer value.")

这将持续获取用户输入并尝试将其转换为整数。如果转换成功,程序将退出循环。否则,将运行except语句,通知用户其输入无效。循环将继续迭代,直到输入有效值

相关问题 更多 >