Может ли кто-нибудь помочь мне понять, что здесь не так? Я получаю сообщение об ошибке в конце: «NameError: имя 'age' не определено». Я просто вхожу в Python и программирование в целом и не вижу, что нужно изменить, чтобы это исправить.
import random
def greeting():
print("Hi there, welcome to the world's simplest tv suggestion program!")
print("")
def get_birth_year():
birth_year = 0
birth_year = (input("Please enter your year of birth: "))
is_valid = is_year_valid(birth_year)
while not is_valid:
birth_year = input("Please enter a four digit year of birth: ")
is_valid = is_year_valid(birth_year)
birth_year = int(birth_year)
return birth_year
def is_year_valid(birth_year):
try:
birth_year = int(birth_year)
is_valid = True
except ValueError:
is_valid = False
return is_valid
def calculate_age(birth_year):
age = 0
age = 2018 - birth_year
return age
def show_rec_output(age):
print("Based on your age, a good Netflix show for you to watch would be:")
adult = ["Master of None", "Unbreakable Kimmy Schmidt", "Black Mirror", "Godless",
"Dear White People", "Grace and Frankie", "Jessica Jones"]
all_ages = ["The Crown", "The Great British Bake Off", "Jessica Jones",
"Sherlock", "A Series of Unfortunate Events", "Big Mouth"]
if age >= 18:
print(random.choice(adult))
else:
print(random.choice(all_ages))
def another_rec():
second_rec = ""
second_rec = (input("Would you like another recommendation Y/N: "))
while second_rec == str("Y"):
show_rec_output(age)
second_rec = (input("Would you like another recommendation? Y/N: "))
else:
print("Go make some popcorn!")
def main_module():
greeting()
birth_year = get_birth_year()
age = calculate_age(birth_year)
show_rec_output(age)
another_rec()
main_module()
Назначение, которое я пытаюсь выполнить, требует одного ввода, одного вывода, двух циклов, проверки ввода и всего в модулях.






Проблема здесь:
def another_rec():
second_rec = ""
second_rec = (input("Would you like another recommendation Y/N: "))
while second_rec == str("Y"):
show_rec_output(age)
У вас здесь нет age, но вы все равно пытаетесь его использовать.
Чтобы исправить это, вы хотите сделать то же самое, что и с show_rec_output. Сначала добавьте параметр age в функцию another_rec:
def another_rec(age):
… А затем передайте значение из main_module:
show_rec_output(age)
another_rec(age)
Пожалуйста, предоставьте нам всю трассировку, а не только описание ошибки. Функция трассировки сообщает вам, в какой именно строке возникла ошибка и как вы туда попали, что обычно очень важно для отладки.