2012-12-23 105 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

非常感謝:) –