Во первых чтобы тут f = make_negative(10) записалось значение выполняемой функции нужно в функции использовать return вместо print.
Во вторых зачем i = f"-{number}"? чем вас не устраивает просто умножение на -1?
Если вы так ставите вопрос - значит вы не правильно спроектировали программу.
Функция либо возвращает данные и завершается либо работает.
Как варианты:
- разделить на 2 функции
- заносить нужные результаты в базу или файл по ходу выполнения программы
- пересмотреть логику программы в принципе
Самое главное знать стандартные библиотеки.
Когда будете знать эти, то остальные, когда понадобятся, будет не сложно изучить. Кто предоставит список - будет не прав, потому что конкретно вам эти, или некоторые из перечисленного списка, библиотеки вам никогда не понадобятся. Смысл учить то, чем не занимаешься?
По мере поступления задач - изучай инструменты. А стандартные библиотеки тебе облегчат жизнь.
Откройте для себя postman. Это удобный инструмент для выполнения запросов. И в нем отправьте запрос по ссылке что у вас. У меня возможности проверить сейчас нет, но думаю что на странице выполняется JS, который заполняет страницу нужными вам данными, а в python скрипте вы получаете сырые данные, без выполнения JS.
Почитайте про selenium, он поможет в таких случаях. Либо изучите какие запросы отправляет сайт и сымитируйте их.
Почитайте документацию к боту и узнайте что для функции register_next_step_handler необходимо 2 аргумента, а вы передаете 1. об этом стектрейс и говорит, что пропущен 1 аргумент callback. и про callback почитайте тоже, что это такое в принципе.