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
错误:不能超过三次尝试
你们能帮忙吗?
您的问题是,在顶部执行而
循环后,计数器将大于2。也就是说,3。现在,您的
print
函数位于if计数器内
counter = 0
while miles < 0:
# ...
if counter > 2:
print('Error: cannot exceed three attempts')
break
print(miles, 'miles is', round(milesToKm,2), 'kilometers')
这只是管理两种退出条件的一个小混乱。在while语句中检查这两个选项,您就会没事了。我用序列(-1,-1,-1),(-1,-1,5)和(-1,5)测试了这一点。每次都很好。
counter = 0
miles = float(input('How many miles do you want converted into kilometers? '))
while miles < 0 and counter <= 2:
print('You cannot enter a negative value!')
miles = float(input('Enter the correct number of miles: '))
counter = counter + 1
if counter <= 2:
milesToKm = (miles*1.6)
print(miles, 'miles is', round(milesToKm,2), 'kilometers')
else:
print('Error: cannot exceed three attempts')
exit()
处理此问题的另一种方法是使用循环的另一子句。如果正常退出循环,则执行它的其他子句;如果脱离循环,则跳过其他子句。这使您可以使用for循环处理逻辑:
for counter in range(3):
miles = float(input('How many miles do you want converted into kilometers? '))
if miles >= 0:
break
print('You cannot enter a negative value!')
else:
print('Error: cannot exceed three attempts')
exit()
milesToKm = (miles*1.6)
print(miles, 'miles is', round(milesToKm,2), 'kilometers')
问题内容: 这里的Python新手非常抱歉,我确定这是一个愚蠢的问题,但是我似乎无法在要求我使用while循环检查有效用户输入的教程中解决以下挑战。 (使用Python2.7) 这是我的代码,但无法正常工作: 上面打印输出到控制台: 这显然是不正确的-循环应该在用户输入“ y”或“ n”时结束,但是我不确定如何执行此操作。我在这里做错了什么? 注意:挑战要求我同时使用运算符和 问题答案: 较短的解
这里的Python新手非常抱歉,我确信这是一个愚蠢的问题,但在一个教程中,我似乎无法解决以下挑战,该教程要求我使用while循环来检查有效的用户输入。 (使用Python2.7) 这是我的代码,但它工作不正常: 上述内容打印到控制台: 这显然是不对的- 注意:挑战要求我同时使用运算符和
我正在设置一个,它在用户输入整数之前一直执行。但是,按照我现在的方式,循环在输入整数后再次打印消息,然后程序正常执行。有人能建议一种方法来使输入整数后不再打印该消息吗?谢了!
首先,感谢你阅读我的帖子并帮助我。 我试图编程,我定义了一个随机数,程序猜测这个随机数,然后,根据我说猜测太高或太低,程序再次猜测。 再次感谢!
下面的代码循环了两次。第一个while循环要求用户输入(以做出选择)。我把选择默认值设置为“n”,使它变得更简单。 因此,它命中if语句并开始第2个while循环。现在它要求用户进行另一个选择。用户只能输入“a”,因为其他任何东西都会出现错误陷阱。用户输入“a”并得到添加一个数字的提示(变量num=0)。用户输入一个数字。 使用更多信息更新的代码 我已经尝试使用不同的变量进行选择。它不起作用。我想
我正在尝试编写一个程序,允许在无限循环中生成随机数。如果用户按下'c',它将脱离循环。但是循环只在我按下c时开始,它应该在之前开始,当我按下'c'时它应该停止。 另外,我想知道如何才能只使用while循环而不是do-while循环来完成这个程序。当我使用while时,我从开始,然后使用来自input的if语句中断循环,但这也不起作用。内部仍然有两个for循环。 多谢