• Как определить кто самый умный из трех супергероев с помощью метода /search/name?

    Импортируем библиотеку requests для получения данных страницы, на которой размещен json файл. Распаковываем его с помощью json. В полученном словаре в "results" в "powerstats" есть параметр "intelligence", в котором и хранится нужная информация:
    import requests
    import json
    
    heroes_list = ['Hulk', 'Captain america', 'Thanos']
    #создадим словарь, в котором будет находиться информация о интеллекте каждого героя (изначально 0)
    intelligence_dict = {'Hulk': 0, 'Captain america': 0, 'Thanos': 0}
    url = 'https://www.superheroapi.com/api.php/2619421814940190/search/'
    
    for hero in heroes_list:
        hero_dict = json.loads(requests.get(url + hero).content)
        intelligence_dict[hero] = int(hero_dict['results'][0]['powerstats']['intelligence'])
    Ответ написан
    1 комментарий
  • Возможно ли это совместить?

    text = message.text.lower()
    if "привет" in text or "пока" in text:
    Ответ написан
    Комментировать
  • Как сделать так, чтобы код работал, пока ошибка не исправится?

    Используя isdigit(), как сказали до этого, пишешь условие, если встречается ошибка, то возвращается на ту же позицию:
    balance = 0
    @bot.message_handler(commands=["put"])
    def get_put(message):
        sent_put = bot.send_message(message.chat.id, "Сколько денег(в рублях) ты хочешь положить в копилку?")
        bot.register_next_step_handler(sent_put, put)
    
    def put(message):
        global get_put
        get_put = message.text
        if (message.text).isdigit() == False:
            error_message = bot.send_message(message.chat.id, "Ошибка! Попробуй написать только число(без букв и символов)")
            bot.register_next_step_handler(error_message, put)
        else:
            balance += int(get_put)
            spent_message = "Ты положил " + str(get_put) + "₽" + "\n" + "Теперь в копилке " + str(balance) + "₽"
            bot.send_message(message.chat.id, spent_message, parse_mode="html")


    И баланс наверное лучше задать глобально изначально, а то получится, что ты его заново создаешь при каждом пополнении.
    Ответ написан
  • Как вывести каждое воскресенье месяца?

    Нам понадобятся библиотеки datetime и calendar. Для начала проверяем, сегодня воскресенье или нет с помощью datetime.today().weekday() (определяет текущий день недели). Потом нужно проверить, какое по счету это воскресенье. Если месяц начинался с понедельника, то все даты воскресений при целом делении на 7 будут сразу давать верный ответ, если начинался с любого другого дня, то к частному деления даты на 7 нужно будет прибавить 1, получив верный ответ. Поэтому с помощью calendar.weekday(datetime.date.today().year, datetime.date.today().month, 1) (возвращает день недели указанной даты, начиная с 0) проверим, какой день недели соответствовал 1 числу сегодняшнего месяца и года. Далее идем по условию:
    import datetime
    import calendar
    
    date = datetime.date.today()
    weekday = datetime.date.today().weekday()
    count_mounth = calendar.weekday(date.year, date.month, 1)
    
    if weekday == 6:
        if count_mounth == 0:
            print(f'Сегодня {str(date.day//7)} воскресенье месяца!!!')
        else:
            print(f'Сегодня {str(date.day//7 + 1)} воскресенье месяца!!!')
    Ответ написан
    1 комментарий