我尝试获取不超过10个用户输入。用户可以选择通过输入空字符串来停止提供输入]
container_size = []
for i in range(10):
while True:
container_size.append(float(input('What is the size of your container?: ')))
if input('What is the size of your container?: ') == '':
break
if i <= 1:
refund = 0.10
else:
refund = 0.25
print(refund)
如果未提供任何输入,尝试中断时我总是收到错误消息。我能做什么?我也得到了10多个输入。
我相信这就是您想要的:
container_size = []
for i in range(10):
while True:
inp = input('What is the size of your container?: ')
if inp == '':
break
try:
container_size.append(float(inp))
if i <= 1:
refund = 0.10
else:
refund = 0.25
print("refund:", refund)
except ValueError:
print("cant convert")
您两次调用input():一次用于添加到容器,第二次在if中。因此,对于每次迭代,您都要求2个输入。因此,您总共有20个输入而不是10个。将其放在变量中,并询问变量是否为空/将变量添加到容器中。
您的break
语句当前引用if语句,而不是while语句,因为它与最接近的if语句交互。您可以使用flag克服此问题,并在while语句的末尾对其进行检查。