Проблемы с возвратом между функциями [дубликат]

Я новичок в Python и программировании в целом и понятия не имею, почему return в приведенном ниже коде не перемещается между функциями. Разве значение n не следует сохранять для использования во всех функциях? print (n) здесь только для меня, чтобы посмотреть, работает ли он, а, по-видимому, нет.

      def main():
    print("This program tests the Goldbach's conjecture")
    get_input()
    print(n)


def get_input():
    n = 0
    while n == 0:
        try:
            v = int(input("Please enter an even integer larger than 2: "))
            if v <= 2:
                print("Wrong input!")
                continue
            if v%2 == 1:
                print("Wrong input!")
                continue
            if v%2 == 0:
                n = v
        except ValueError:
            print("Bad input!")
            continue
    return n

1 ответ

Вы не сохраняете значение, возвращаемое нигде, вы должны сохранить его в переменной (или распечатать его напрямую), например -

      def main():
    print("This program tests the Goldbach's conjecture")
    val = get_input()
    print(val)

n это внутренняя переменная, которая хранится только в рамках get_input.

Другие вопросы по тегам