переменные теряют значение при вводе def в python - PullRequest
0 голосов
/ 16 октября 2018

Я пишу простую калькуляторную программу, и изначально установлена ​​ценовая переменная.Однако, когда я вхожу в функцию, она очищает мои переменные данные, говоря, что переменная не определена, хотя она явно была определена ранее в программе.кажется, что ввод этой функции - то, что заставляет мое значение переменной очищаться.Я чувствую, что есть очевидный ответ, который я пропускаю, любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Если вы объявите цену как глобальную переменную, она будет работать.Дайте мне знать, если у вас возникнут проблемы.

n = int(input("How many tickets would you like? "))
if n >= 10:
    print("Your group is large enough for our group discount!")
    price = n * 5
else:
    price = n * 6
def vet():
    global price
    vet = input("Are you a veteran of any branch of the United States 
    Military? ")

    if vet.lower() in ['y', 'yes']:
        print("Thank you for your service. Your discount has been applied.")
        price *= 0.90
0 голосов
/ 16 октября 2018

Просто, чтобы мой комментарий выше был понятен, это способ решить проблему, с которой вы столкнулись.Он явно передает цену и затем возвращает ее, вместо того, чтобы полагаться на переменную, выходящую за рамки области видимости.

n = int(input("How many tickets would you like?"))
cls()
if n >= 10:
    print("Your group is large enough for our group discount!")
    price = n * 5
else:
    price = n * 6

def ask_vet(price):
    is_vet = input("Are you a veteran of any branch of the United States Military?")
    if is_vet.lower() in ['y', 'yes']:
        print("Thank you for your service. Your discount has been applied.")
        price *= 0.90
    return price
price = ask_vet(price)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...