2012-12-23 2 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 not (min <= age <= max): '. –

+0

Правда, просто забыл «продолжить». Я думаю, что это чище. Нет необходимости использовать переменную вне цикла. – ThiefMaster

+0

Спасибо большое :) –

Смежные вопросы