2017-02-14 8 views
1

У меня есть цикл, так что если пользователь вводит строку, он запрашивает у них целое число, и он отлично работает, за исключением вывода одной строки из более раннего кода. Не знаю, как избавиться от него.Ненужный вывод во время цикла

while True : #loops input 
    userAge = raw_input("please enter your age: ") 
    if (userAge > 18) : #outputs based on age input 
     print "Congrats, you're an adult." 
     continue 
    elif userAge <= 0 : 
     print "You got a computer in that womb?" 
     continue 
    elif userAge <= 5 : 
     print "You're a toddler, get off the computer!" 
     continue 
    elif userAge <= 10: 
     print "You're a child!" 
     continue 
    elif userAge <= 12: 
     print "You're a preteen, go listen to fall out boy." 
     continue 
    elif userAge > 12: 
     print "You're a teen!" 
     continue 
    try : 
     userAge = int(userAge) 
    except ValueError : 
     print ("Please enter an integer you dummy!") 
     continue 
    else : 
     break 

выход, когда кто-то кладет в строке выглядит следующим образом:

Congrats вы взрослый положить в целом числе вы манекен! введите возраст:

Я хочу, чтобы избавиться от поздравлений вы взрослый

ответ

0
while True : #loops input 
    userAge = raw_input("please enter your age: ") 
    try : 
     userAge = int(userAge) 
    except ValueError : 
     print ("Please enter an integer you dummy!") 
     continue 
    if (userAge > 18) : #outputs based on age input 
     print "Congrats, you're an adult." 
     continue 
    elif userAge <= 0 : 
     print "You got a computer in that womb?" 
     continue 
    elif userAge <= 5 : 
     print "You're a toddler, get off the computer!" 
     continue 
    elif userAge <= 10: 
     print "You're a child!" 
     continue 
    elif userAge <= 12: 
     print "You're a preteen, go listen to fall out boy." 
     continue 
    elif userAge > 12: 
     print "You're a teen!" 
     continue 
    else : 
     break 

Попробуйте что-то вроде этого!

Проблема заключается в том, что if оператор оценки строки в соответствии с их ASCII-значения, так что каждый символ будет справедливо для одного из if..elif заявлений

0

Вы должны положить заявление

try...except...else 

, который преобразует userAge srting в целое число до фактической проверки userAge в

if...elif 

заявление

0

Существует две функции для ввода пользовательского ввода в python, называемые input и raw_input. raw_input не оценивает данные и возвращает string. input будет оценивать все, что вы ввели, и результат оценки будет возвращен.

Десятичное значение символов '0' (48), '1' (49), '2' (50), ... все больше 18, поэтому первый if в вашем коде оценивается как true.

Так попробуйте:

userAge = input("please enter your age: ")