gpt4 book ai didi

python - 您如何拒绝输入,重新询问并仅保留该值

转载 作者:太空宇宙 更新时间:2023-11-03 14:41:47 25 4
gpt4 key购买 nike

你好 Stack 社区,

我在询问用户输入时使用了 if 或语句,如果用户输入了我的 if 或语句之外的值,那么我会显示一条消息“请输入 1 到 500 之间的有效数字”,这会弹出对用户的另一个输入请求。

所以我已经完成了目标的 2/3。我拒绝了原始输入,我重新询问了它,但是在重新询问用户后我找不到只保留新值的方法。相反,我的程序保留了所需参数之外的原始用户输入,然后它在被重新询问后也保留了新输入并将它们组合成一个值。这是在 Python IDLE 3.6 上。

确切的问题:如何从用户输入中删除原始输入值,并在重新询问后只保留新值?

这是我的代码:

def main():

resultsA = int(input("Please enter how many seats you sold is section A:"))
if resultsA < 1 or resultsA > 300:
int(input("Please enter a valid number from 1 to 300:"))


resultsB = int(input("Please enter how many seats you sold is section B:"))
if resultsB < 1 or resultsB > 500:
int(input("Please enter a valid number from 1 to 500:"))


resultsC = int(input("Please enter how many seats you sold is section C:"))
if resultsC < 1 or resultsC > 200:
int(input("Please enter a valid number from 1 to 200:"))


finalResultA = 20*resultsA
finalResultsB = 15*resultsB
finalResultsC = 10*resultsC
trulyFinal = finalResultA + finalResultsB + finalResultsC

print ("Congratulations, here is your total revenue from tickets: $",trulyFinal)

这是 shell 中发生的事情的屏幕截图: enter image description here

最佳答案

您可以使用无限循环不断询问用户输入有效信息,直到用户输入一个有效输入为止。请注意,您还应该使用 try-except block 来确保用户输入有效整数:

while True:
try:
resultsA = int(input("lease enter how many seats you sold is section A:"))
if 1 <= resultsA <= 300:
break
raise RuntimeError()
except (ValueError, RuntimeError):
print("Please enter a valid number from 1 to 300.")

由于您要针对不同的座位区提出相同的问题,您可以将不同区段的定价存储在一个字典中,然后在计算总收入时遍历这些区段来提出问题:

pricing = {'A': 20, 'B': 15, 'C', 10}
availability = {'A': 300, 'B': 500, 'C', 200}
trulyFinal = 0
for section in pricing:
while True:
try:
seats = int(input("lease enter how many seats you sold is section %s:" % section))
if 1 <= seats <= availability[section]:
trulyFinal += pricing[section] * seats
break
raise RuntimeError()
except (ValueError, RuntimeError):
print("Please enter a valid number from 1 to %d." % availability[section])

print ("Congratulations, here is your total revenue from tickets: $", trulyFinal)

关于python - 您如何拒绝输入,重新询问并仅保留该值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52620304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com