Просто, чтобы мой комментарий выше был понятен, это способ решить проблему, с которой вы столкнулись.Он явно передает цену и затем возвращает ее, вместо того, чтобы полагаться на переменную, выходящую за рамки области видимости.
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)