@Sk1lizz
Ничего

Написал код, но не вижу ошибку?

Написал код, сначала всё работало но потом выдало ошибку!
Помогите, пожалуйста!
Код ниже
import random
import time
import os

NameBot = "Jarvis"
NameCreator = "Sk1lizz"

NameUser = ''
SurnameUser = ''
AgeUser = 0

def wellcome(NameUsers="NoName"):
    if NameUsers == '' or NameUsers == ' ':
        print("Вы указали некоректное имя!\nПожалуйста, повторите попытку!")
        NameUser1 = input("Как к вам обращатся?\nВаше имя: ")
        NameUser = NameUser1
        wellcome(NameUser)

    else:
        
        print(f"Привет, {NameUsers}!")
        print(f"Меня зовут {NameBot}")
        print(f"Для продолжения работы с ботом он должен узнать некоторые данные о тебе!")
        
    
        def Name_Age_User():
            Ago_FirstTime = input("Сколько Вам лет?: ")
            if Ago_FirstTime == 0 or Ago_FirstTime == '':
                print("Вы не указали возраст!")
                Name_Age_User()
            else:
                try:
                    global AgoUser
                    AgoUser = int(Ago_FirstTime)
                    print("Успешно! Остался 1 этап!!")
                    Name_Surname_User()
                except ValueError:
                    
                    AgoUser = 0
                    print("Ошибка! Вы ввели некоректный возраст!")
                    Name_Age_User()
        
    
        def Name_Surname_User():
            Surname_FirstTime = input("Какое Ваше отчество?: ")               
            Examination(NameUser, Surname_FirstTime, AgeUser)
        
        Name_Age_User()
        

        def Examination(Name, Surname, Age):
            print(f"Вас зовут {Name}, \nВаша фамилия {Surname}\nВам {Age}?")
            TR_FAL = input("Да/Нет")
            if TR_FAL == 'Да' or TR_FAL == 'да':
                print("Успешно!")
            elif TR_FAL == 'Нет' or TR_FAL == 'нет':
                print("Перезапуск программы!")
                main()
            else:
                print("Ошибка!")


def main():
    NameUser_FirstTime = input("Как к вам обращатся?\nВаше имя: ")
    if NameUser_FirstTime == '':
        print("Вы ввели неправильное имя!")
        main()
    else:
        try:
            global NameUser
            NameUser = NameUser_FirstTime
            print("Готово!")
            wellcome(NameUser)
        except:
            print("Ошибка")


main()
  • Вопрос задан
  • 100 просмотров
Решения вопроса 1
@alexbprofit
Junior SE
Код
class UserConstants:
  NameBot = "Jarvis"
  NameCreator = "Sk1lizz"
  NameUser = ''
  SurnameUser = ''
  AgeUser = 0


def name_age_user():
  Ago_FirstTime = input("Сколько Вам лет?: ")
  if not Ago_FirstTime:
    print("Вы не указали возраст!")
    name_age_user()
  try:
    UserConstants.AgeUser = int(Ago_FirstTime)
    print("Успешно! Остался 1 этап!!")
    name_surname_user()
  except ValueError:
    UserConstants.AgeUser = 0
    print("Ошибка! Вы ввели некоректный возраст!")
    name_age_user()

def name_surname_user():
  Surname_FirstTime = input("Какое Ваше отчество?: ")
  examination(UserConstants.NameUser, Surname_FirstTime, UserConstants.AgeUser)

def examination(Name, Surname, Age):
  print(f"Вас зовут {Name}, \nВаша фамилия {Surname}\nВам {Age}?")
  TR_FAL = input("Да/Нет: ")
  if TR_FAL.lower() == 'да':
    print("Успешно!")
  elif TR_FAL.lower() == 'нет':
    print("Перезапуск программы!")
    main()
  else:
    print("Ошибка!")
  
  
def hello(NameUsers=''):
  if not NameUsers:
    print("Вы указали некоректное имя!\nПожалуйста, повторите попытку!")
    NameUser = input("Как к вам обращатся?\nВаше имя: ")
    UserConstants.NameUser = NameUser
    hello(NameUser)
  print(f"Привет, {NameUsers}! \
        \nМеня зовут {UserConstants.NameBot} \
  \nДля продолжения работы с ботом он должен узнать некоторые данные о тебе!")
  name_age_user()
  

def main():
    NameUser_FirstTime = input("Как к вам обращатся?\nВаше имя: ")
    if NameUser_FirstTime == '':
        print("Вы ввели неправильное имя!")
        main()
    try:
        print("Готово!")
        UserConstants.NameUser = NameUser_FirstTime
        hello(NameUser_FirstTime)
    except:
        print("Ошибка")


main()

Вывод:
Как к вам обращатся?
Ваше имя: саша
Готово!
Привет, саша!         
Меня зовут Jarvis   
Для продолжения работы с ботом он должен узнать некоторые данные о тебе!
Сколько Вам лет?: 21
Успешно! Остался 1 этап!!
Какое Ваше отчество?: санич
Вас зовут саша, 
Ваша фамилия санич
Вам 21?
Да/Нетда
Успешно!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@PavelMos
Если ты в среде и умеешь пользоваться брейкпойнтами, посмотри что происходит в функции задания возраста.
У программы путаница в логике
Ответ написан
Комментировать
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Знаете, вам наверное лучше на ТНТ, в битву экстрасенсов. Фарс, конечно, но даже так больше шансов, что помогут.
У питона же есть такая замечательная вещь, как трейсбеки, которые всегда указывают на то, где ошибка. Зачастую, даже на строку укажут.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы