为什么在Python2.7中会提示用户两次?
我有一个恼人的bug,用户会被询问两次他们的年龄,即使用户输入了一个有效的年龄。我将粘贴整个代码,但问题似乎在while循环中。我知道它循环了5次,但是如果用户第一次就正确了,它会继续问他们为什么在Python2.7中会提示用户两次?,python,python-2.7,Python,Python 2.7,我有一个恼人的bug,用户会被询问两次他们的年龄,即使用户输入了一个有效的年龄。我将粘贴整个代码,但问题似乎在while循环中。我知道它循环了5次,但是如果用户第一次就正确了,它会继续问他们 i = 1 for i in range(5): i +1 try: age = '' while age < 1 or age > 130: age = int(raw_input('Enter in your age..
i = 1
for i in range(5):
i +1
try:
age = ''
while age < 1 or age > 130:
age = int(raw_input('Enter in your age... '))
both = str(age)
if age == -1:
print 'Exiting'
time.sleep(.5)
print 'x----'
time.sleep(.5)
print 'xx---'
time.sleep(.5)
print 'xxx--'
time.sleep(.5)
print 'xxxx-'
time.sleep(.5)
print 'xxxxx'
print 'Exited'
LOL.exit()
if age < 1 or age > 130:
time.sleep(1)
print 'Enter in your actual age'
else:
break
except ValueError or NameError:
print 'Please use your actual age, not %s!' %both
time.sleep(1)
if i > 3:
print 'YOU\'RE LOCKED OUT!!'
LOL.exit()
i=1
对于范围(5)中的i:
i+1
尝试:
年龄=“”
当年龄<1岁或年龄>130岁时:
年龄=整数(原始输入('输入您的年龄…'))
两者=str(年龄)
如果年龄==-1:
打印“退出”
时间。睡眠(.5)
打印“x--”
时间。睡眠(.5)
打印'xx---'
时间。睡眠(.5)
打印“xxx--”
时间。睡眠(.5)
打印“xxxx-”
时间。睡眠(.5)
打印“xxxxx”
打印“退出”
LOL.exit()
如果年龄<1岁或年龄>130岁:
时间。睡眠(1)
打印“输入您的实际年龄”
其他:
打破
除ValueError或NameError外:
打印“请使用您的实际年龄,而不是%s!”%二者都
时间。睡眠(1)
如果i>3:
打印“你被锁在外面了!!”
LOL.exit()
您需要删除
for i in range(5):
据我所知,没有必要
在我看来,你的方法还有一些其他问题。看看这是否能让你领先
更新我的第一个建议有几个问题。这样比较好
import time
age, i = '', 0
while age < 1 or age > 130:
i += 1
if i > 3:
print 'YOUR LOCKED OUT!!'
LOL.exit()
if age == -1:
print 'Exiting'
for s in range(1,6):
time.sleep(.5)
print ('x' * s) + ('-' * (5 - s))
print 'Exited'
LOL.exit()
if i > 1:
time.sleep(1)
print 'Enter in your actual age'
age = int(raw_input('Enter in your age... '))
导入时间
年龄,i='',0
当年龄<1岁或年龄>130岁时:
i+=1
如果i>3:
打印“您的锁定!!”
LOL.exit()
如果年龄==-1:
打印“退出”
对于范围(1,6)内的s:
时间。睡眠(.5)
打印('x'*s)+('-'*(5-s))
打印“退出”
LOL.exit()
如果i>1:
时间。睡眠(1)
打印“输入您的实际年龄”
年龄=整数(原始输入('输入您的年龄…'))
请仅包含相关代码。这是太多的代码,无法查找问题。while循环对我来说很好。将年龄初始化为空字符串是一件奇怪的事情……由于您的for循环对于范围(5)
中的i,它会要求年龄五次。您将它包装在一个循环中,以便执行五次。我非常感谢!我总是想看看如何改进我的代码。谢谢@用户3709398不用担心。想想你在做什么。。。你想循环直到用户得到正确的答案,然后使用while(如果你想对它进行max-trytes,请使用if
语句。只需注意顺序-如果你尝试我的第一个版本和最新版本,你会发现这很重要。:@user3709398,并且在你反复看到相同的东西(或关闭)时请注意。我的print('x'*s)+('-'*(5-s))
并不是最优雅的打印方式,但我想让您思考一下如何在循环中完成。