为什么它会在Python 2.7中提示用户两次?

时间:2014-07-02 03:01:12

标签: python python-2.7

我有一个烦人的错误,即使用户输入了有效年龄,用户也会被问及两次他们的年龄。我将粘贴整个代码,但问题似乎是在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()

1 个答案:

答案 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... '))