我有一个烦人的错误,即使用户输入了有效年龄,用户也会被问及两次他们的年龄。我将粘贴整个代码,但问题似乎是在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... '))
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()
答案 0 :(得分:1)
您需要删除
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... '))