2012-12-23 108 views
-2

我需要这个来请求一个年龄,但是如果年龄在11岁以下或100岁以上,拒绝它并且也拒绝除整数之外的任何东西。如果输入一个数字超出规定范围的,或者不是一个整数我也需要环回,并要求再次要求年龄的功能

def PlayerAgeFunction(): 
    VALID = True 
    while VALID == True: 
     PlayerAge = int(raw_input('ENTER YOUR AGE: ')) 
     if PlayerAge == type(int): 
      VALID = False 
    elif PlayerAge != type(int): 
     print 'THAT IS NOT A NUMBER.' 
    return PlayerAge 

我看着这里的答案之前,但我发现并没有帮助。 请有人帮忙,谢谢。

+0

什么不行? –

+0

@Lattyware:不输入整数,一个.. –

+4

你应该真正阅读http://www.python.org/dev/peps/pep-0008/关于你的Python代码应该如何。 – ThiefMaster

回答

2
def prompt_age(min=11, max=100): 
    while True: 
     try: 
      age = int(raw_input('ENTER YOUR AGE: ')) 
     except ValueError: 
      print 'Please enter a valid number' 
      continue 
     if not min <= age <= max: 
      print 'You are too young/old' 
      continue 
     return age 
+0

OP要求它循环,直到年龄在范围内,所以你真的希望'while while(min <= age <= max):'。 –

+0

没错,只是忘了'继续'。我认为这更清洁。不需要在循环外使用该变量。 – ThiefMaster

+0

非常感谢:) –