#python
#python
Вопрос:
print ( "Welcome! We are going to determine whether you're eligible to be a US Senator or Representative" )
#User Inputs their age and length of citizenship
def userInput(age, citizenshipTime):
age = int ( input ( "Please enter your age: " ) )
citizenshipTime = int ( input ( "Enter how long, in years, you've been a US citizen: " ) )
return userInput
#Eligibility for US Senator and/or Representative position
def eligibility():
if age >= 50 and citizenshipTime >= 9:
print( "You're eligible for applying to be a US Senator or Representative." )
elif age >= 25 and citizenshipTime >= 7:
print( "You're eligible for applying to be a US Representative." )
else:
print( "You are not eligibile for either, sorry!" )
#Call the main function
def main():
user = userInput(age, citizenshipTime)
eligibility()
main()
Я хочу сделать так, чтобы можно было печатать операторы elif и else, но это не так.
Я бы даже ввел дочерний возраст, и он по-прежнему печатает одно и то же утверждение.
Комментарии:
1. Пожалуйста, обновите свой вопрос с полным обратным отслеживанием ошибок.
2.
userInput
не возвращает ни одного значения, введенного пользователем; он возвращает ссылку на саму функцию. Не то, чтобы это имело значение, учитывая ваше определениеeligibility
, которое, по-видимому, использует неопределенные глобальные переменные с тем же именем, что и локальные переменные, определенные вuserInput
.
Ответ №1:
Вы пренебрегаете областью действия функции userInput()
. Кроме того, вы используете переменные в качестве аргументов для функции, которые определены внутри функции. Я сомневаюсь, что этот код будет запущен.
Если вам не нужно определять функции для какого-либо проекта или домашнего задания, я бы их выбросил, потому что они вам не нужны для такой минималистичной функциональности, как эта. Вкратце, функции полезны только для повторяющихся задач, чего здесь нет.
Так что напишите это без определения функций. Я не хочу публиковать здесь «решение», потому что я хочу, чтобы вы сделали это сами.
Помните о своей логической последовательности (запрос ввода -> вычисление -> вывод на печать)
Ответ №2:
вы должны собрать возраст и время гражданства и правильно передать их eligibility()
функции:
print ( "Welcome! We are going to determine whether you're eligible to be a US Senator or Representative" )
#User Inputs their age and length of citizenship
def userInput():
age = int ( input ( "Please enter your age: " ) )
citizenshipTime = int ( input ( "Enter how long, in years, you've been a US citizen: " ) )
return age, citizenshipTime
#Eligibility for US Senator and/or Representative position
def eligibility(age, citizenshipTime):
if age >= 50 and citizenshipTime >= 9:
print( "You're eligible for applying to be a US Senator or Representative." )
elif age >= 25 and citizenshipTime >= 7:
print( "You're eligible for applying to be a US Representative." )
else:
print( "You are not eligibile for either, sorry!" )
#Call the main function
def main():
age, citizenshipTime = userInput()
eligibility(age, citizenshipTime)
main()