Input это всегда str. Для чисел его нужно явно преобразовать в int : age = int(input('ваш текст'))
у тебя есть функция started, сейчас там просто return - то есть вернуть, а что вернуть? Ты ничего из функции не возвращаешь. А переменная pers , которую ты объявил внутри функции, условно, создается при вызове функции, а по завершению удаляется(на самом деле не так, но так будет понятнее) и когда ты говоришь программе проверить переменную pers - она должна выдавать тебе ошибку. Поэтому в функции вместо return надо return pers
а вместо started() что-то типа pers_num = started() - то есть вернуть в переменную значение функции и потом уже с этой переменной делать дальнейшие проверки.
я последний раз что-то кодил лет 5 назад, но попробую объяснить.
ты переменную в функции определяешь, она не глобальная. Соответственна "основная программа" не знает, что такое переменная pers. после получения и проверки сделай return pers. а в самой проге что-то типа pers_num = started()
Проблема с этим вариантом - если будет нечисловое значение, то снова крашнется. Лучше сделать проверку: if age.isnumeric(): age = int(age)



Программирование на python
1K постов12K подписчиков
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• конструктивность комментариев
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу