Python печатает то же самое «Вы имеете право подать заявку на получение статуса сенатора или представителя США». заявление, несмотря на ввод возраста из этого диапазона

#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()