counter = 0
miles = float(input('How many miles do you want converted into kilometers? '))
while miles < 0:
print('You cannot enter a negative value!')
miles = float(input('Enter the correct number of miles: '))
counter = counter + 1
if counter > 2:
break
if counter <= 2:
milesToKm = (miles*1.6)
print(miles, 'miles is', round(milesToKm,2), 'kilometers')
else:
print('Error: cannot exceed three attempts')
exit()
大家好。这是我学习代码的第五周。我应该创建一个程序,让用户三次尝试输入一个有效值。如果第三次尝试的值无效(负数),则它将提示错误消息并终止。在
问题是我可以输入两个无效值后跟一个有效值,但它仍然会给出错误消息并终止。程序应计算第三个有效值并进行数学运算,然后打印转换。在
例如:
你想把多少英里换算成公里?-1
不能输入负值!在
输入正确的英里数:-1
不能输入负值!在
输入正确的英里数:5
错误:不能超过三次尝试
你们能帮忙吗?在
这只是管理这两种退出条件的一个小混乱。在while语句中检查这两个选项,您就没事了。我用序列(-1,-1,-1),(-1,-1,5)和(-1,5)进行了测试。每次都很好。在
另一种处理方法是使用循环的else子句。如果正常退出循环,它的else子句将被执行;如果中断循环,则会跳过else。这允许您使用for循环处理逻辑:
^{pr2}$您的问题是,在完成顶部的
while
循环之后,计数器将大于2。也就是说,3。现在,print
函数位于if counter <= 2
语句中。3不小于或等于2。这是你的问题。在相关问题 更多 >
编程相关推荐