** РЕДАКТИРОВАТЬ: *** Это было решено! *

Я программирую программу, которая скажет вам, достаточно ли вы для голосования. И когда он спрашивает вас о вашем возрасте, я хочу, чтобы он сказал определенную вещь, если пользователь печатает буквы вместо числа, что-то вроде: «Пожалуйста, введите число, а не букву. Перезагрузите». Вот код, который у меня есть сейчас:

name = raw_input("What is your name?: ")
print("")
print("Hello, "+name+".\n")
print("Today we will tell you if you are old enough to vote.")
age = input("How old are you?: ")
if age >= 18:
    print("You are old enough to vote, "+name+".")
elif age < 18:
    print("Sorry, but you are not old enough to vote, "+name+".")
0
MrSprinkleToes 28 Май 2017 в 18:51

2 ответа

Лучший ответ

Вы можете попробовать что-то вроде этого:

name = raw_input("What is your name?: ")
print("")
print("Hello, "+name+".\n")
print("Today we will tell you if you are old enough to vote.")
while True:
    try:
        #get the input to be an integer.
        age = int(raw_input("How old are you?: "))
        #if it is you break out of the while
        break
    except ValueError:
        print("Please enter a number, not a letter. Restart.")
if age >= 18:
    print("You are old enough to vote, "+name+".")
elif age < 18:
    print("Sorry, but you are not old enough to vote, "+name+".")
-1
RPT 28 Май 2017 в 16:05
name = raw_input("What is your name?: ")
print("")
print("Hello, "+name+".\n")
print("Today we will tell you if you are old enough to vote.")
while True:
    age = raw_input("How old are you?: ")
    try:
        age = int(age)
    except ValueError:
        print("Please enter a number, not a letter. Restart.")
    else:
        break
if age >= 18:  
    print("You are old enough to vote, "+name+".")
elif age < 18:    # else:
    print("Sorry, but you are not old enough to vote, "+name+".")

В try-except-else мы пытаемся преобразовать возраст из строки в целое число. Если происходит ValueError, это означает, что входная строка не является допустимым целым числом. Если нет, то мы можем просто выпрыгнуть из цикла while и выполнить следующую задачу.

Примечание 1: лучше не использовать input() в python2. Обратитесь к этой.

Примечание 2: elif бесполезен. Просто используйте else.

0
frankyjuang 28 Май 2017 в 18:56