2016-10-03 3 views
0

Я пытаюсь применить модульное программирование с этим назначением. Я узнал, как вызвать переменные в моей основной функции, но для оператора if if в evenOdd() я не уверен, как вызвать значение. Я получаю ошибку «randNum» не определен.Python: вызов переменной из функции в оператор if

from random import randint 
def genNumber(): 
    randNum = randint(0,20000) 
    print("My number is " + str(randNum)) 
    return (randNum) 

def inputNum(): 
    userNum = input("Please enter a number: ") 
    print("Your number is " + str(userNum)) 
    return (userNum) 

def evenOdd(): 
    if randNum%2==0: 
     print("My number is even") 
    else: 
     print("My number is odd") 
    if userNum%2==0: 
     print("Your number is even") 
    else: 
     print("Your number is odd") 

def main(): 
    randNum = genNumber() 
    userNum = inputNum() 
    evenOdd() 
    input("Press ENTER to exit") 


main() 
+0

'randNum' выходит за рамки' evenOdd() ' – MooingRawr

+0

@MooingRawr Как бы отредактировать это, чтобы сделать его доступным? Я предполагаю, что это будет похоже на то, как я сделал это в main(), но я не уверен, как это реализовать. –

+0

@TannerBritt Вы можете передать свое значение функциям, использующим его значение. –

ответ

2

Вы можете либо определить randNum в глобальном масштабе или просто передать его в качестве переменной в вашей функции EvenOdd(), как этот EvenOdd (randNum).

+0

Спасибо! Я изначально пробовал это, но получил ошибку, чтобы не преобразовать userNum в int. Я глупо проигнорировал ошибку, думая, что это связано с моей попыткой решения. –

+0

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

Смежные вопросы