Новое для Python (и для StackOverflow). Попытка выяснить, как заставить это выполнить правильно. Хотя сама программа выполняется отлично, я бы хотел, чтобы у нее не было дополнительного шага. Я имею в виду, что если он не выполняет первый оператор, я хотел бы завершить и распечатать сообщение, связанное с инструкцией else.
def main():
# init
messageOne = 'You are too young to vote.'
messageTwo = 'You can vote.'
messageThree = 'You need to register before you can vote.'
# input
age = int(input('Please enter your age: '))
registration = input('Are you registered to vote(Y/N)?: ')
# calculate / display
if age >= 18:
if registration.upper() == "Y":
print(messageTwo)
else:
print(messageThree)
else:
print(messageOne)
main()
Программа написана хорошо. Единственное, что я хотел бы изменить, это поставить registration = input('Are you registered to vote(Y/N)?: ')
после проверки, если age >= 18
(поэтому пользователю не будет задано вопрос о том, зарегистрированы ли они, если они зарегистрированы моложе 18 лет). Я ничего не изменил бы.
def main():
# init
messageOne = 'You are too young to vote.'
messageTwo = 'You can vote.'
messageThree = 'You need to register before you can vote.'
# input
age = int(input('Please enter your age: '))
# calculate / display
if age >= 18:
registration = input('Are you registered to vote(Y/N)?: ')
if registration.upper() == "Y":
print(messageTwo)
else:
print(messageThree)
else:
print(messageOne)
main()
Если вы находитесь внутри функции, вы можете пропустить оставшиеся операторы с return
.
def main():
# init
messageOne = 'You are too young to vote.'
messageTwo = 'You can vote.'
messageThree = 'You need to register before you can vote.'
# input
age = int(input('Please enter your age: '))
# calculate / display
if age < 18:
print(messageOne)
return
registration = input('Are you registered to vote(Y/N)?: ')
if registration.upper() == "Y":
print(messageTwo)
return
print(messageThree)
return
main()
main
функции является ошибкой копирования-вставки, а не самого кода? Вы можете редактировать свой пост, чтобы исправить его. Также неясно, каким должно быть поведение - вы бы отредактировали свой вопрос, чтобы предоставить пример ввода и вывода, который проясняет ?