Задать вопрос
  • Как решить проблему в коде?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    У вас в pora ключи числовые, а в переменной i строка.
    Ответ написан
    Комментировать
  • Как узнать сколько элементов и их значений есть в словаре?

    @dmshar
    Если "у меня есть словарь" то абсолютно непонятно, как вы его умудрились создать, не понимая, как со словарем работать? Просто где-то скопировали готовый код, что-ли?

    dict = {'А': [173, 70], 'Б': 12345, 'С': 'Привет семье', 'D':{'D1':'Aу','D2':'[1,2,3]','D3':321}}
    for itm in dict.items():
        print(itm)


    Результат:
    ('А', [173, 70])
    ('Б', 12345)
    ('С', 'Привет семье')
    ('D', {'D1': 'Aу', 'D2': '[1,2,3]', 'D3': 321})


    Рекомендую все-таки учить Python по книжкам, а не по видосикам.
    Ответ написан
    4 комментария
  • Почему IndexError при заполнении массива?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    В питоне так не делается, чтобы добавить элемент в список, используйте метод .append()

    if i == j and m[i][j] < 0: # i - индекс списка в матрице, j - индекс элем. в конкретном сп.
        matrix[i].append(0)
    elif i == j and m[i][j] >= 0:
        matrix[i].append(1)
    else:
        matrix[i].append(m[i][j])
    Ответ написан
    1 комментарий
  • Есть ли в pyautogui рестарт?

    @maximsemin23
    while True:
        bot.start()
    Ответ написан
    Комментировать
  • Ошибка IndentationError: unexpected unindent, что делать?

    @twistfire92
    Python backend developer
    Что-то вы намудрили с расположением декораторов. Поучите сначала основы языка.

    import telebot
    bot = telebot.TeleBot('####')
    
    @bot.message_handler(content_types=['text'])
    def get_text_messages(message): 
        if message.text == "Привет":
            bot.send_message(message.from_user.id, "Привет, чем я могу тебе помочь?")
        elif message.text == "/help":
            bot.send_message(message.from_user.id, "Напиши привет")
        else:
            bot.send_message(message.from_user.id, "Я тебя не понимаю. Напиши /help.")
    
    bot.polling(none_stop=True, interval=0)
    Ответ написан
    Комментировать
  • Я похоже болел когда была тема конкатенации, что ему нужно от меня?

    @dooMoob

    def bet():
        bet_in= input('Сколько ставишь:') #!!!проверить незарегистрированного пользователя!!!
        bet = int(bet_in)
        check_bet(bet)
        get_bet(bet)
        reply()
    
    
    def check_bet(bet):
        u_id, u_name, u_bank = user_data(id_in)
        int_bank = int(u_bank)
        int_bet = int(bet)
        if int_bet > int_bank:
            print('Ты не можешь столько ставить, твой банк: ' + str(u_bank))
            bet()



    Вместо перестановки int и str по переменным надо просто включить голову и посмотреть на этот кусок "кода"
    Ответ написан
    Комментировать
  • Я похоже болел когда была тема конкатенации, что ему нужно от меня?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Использовать разные имена.

    Тут bet - функция
    def bet():

    Здесь это уже число
    bet = int(bet_in)
    Ответ написан
    Комментировать
  • Как отдельно вывести каждое значение из бд?

    @o5a
    Результат выполнения select в курсоре, как и fetchall() выдает не просто кортеж, а вложенный кортеж, т.е.
    ((ряд1значение1, ряд1значение2, ряд1значение3... ), (ряд2значение1, ряд2значение2, ряд2значение3... ), ...)

    соответственно нужно дополнительно join складывать значения ряда в строку, а затем строки рядов в строку.
    result2 = '\n'.join(' ║ '.join(f'{val}' for val in row) for row in cur.execute(f"SELECT * FROM {arg}"))

    А если нужно, чтобы это было выровнено, то можно сначала считать данные, затем вычислить в каждом столбце самое длинное значение, и затем уже вывести, отформатировав по наибольшему.
    Ответ написан
    1 комментарий
  • Как профилировать асинхронный код?

    2ord
    @2ord
    Нагуглил Yappi.
    Ответ написан
    Комментировать
  • Как извлечь данные из Json?

    hekkaaa
    @hekkaaa
    C#/.NET Developer
    Привет!
    Вот мой пример подобной реализации api

    import requests #библиотека для чтения запросов
    
    response = requests.get('https://1234.com/public', params=params) #запрос к api
    workrequest = response.json() #забираем json из запроса. Обычно там список что то подобное
    
    sql_json = [] #создаем свой список (list) пустой
        #циклом забираем данные в своей список.
        for i in range(len(workrequest)):
            sql_json.append(workrequest[i]['globalTradeID'])
            sql_json.append(workrequest[i]['tradeID'])
            upgradata_str = workrequest[i]['date']
            sql_json.append(updateloghourse(upgradata_str))
            sql_json.append(workrequest[i]['type'])
            sql_json.append(workrequest[i]['rate'])
            sql_json.append(workrequest[i]['amount'])
            sql_json.append(workrequest[i]['total'])
    
    sqlADDinfoTable(sql_json,name_table) # В моем случае я отправляю данные сразу в таблицу SQL
            sql_json.clear() #Очищаю список для новой итерации цикла.
    Ответ написан
    Комментировать
  • Что не так с кодом?Не работает бот?

    Vindicar
    @Vindicar
    RTFM!
    1. Оформляй код как положено, кнопкой </>
    2. Тебе бот прямо говорит в чём дело:
    FileNotFoundError: [Errno 2] No such file or directory: 'static/welcome.webp'
    Ему в текущей рабочей директории нужна поддиректория static, и в ней файл welcome.webp
    Если файл есть, проверь, нет ли опечаток в имени.
    Также обрати внимание, что путь к файлу относительный, а потому зависит от текущей рабочей директории. Поменяй путь на абсолютный, или вычисляй этот путь относительно пути к исполняемому файлу бота.
    Ответ написан
    2 комментария
  • Как убрать пробел в строке print в Питон?

    SladkayaDoza
    @SladkayaDoza
    Обучаюсь программированию
    name = input("Как вас зовут? ")
    print(f'Привет, {name}!')
    Ответ написан
    Комментировать
  • Есть ли отличия в асинхронном и многопоточном коде в контексте Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Если нужно конкурентно делать блокирующиеся вызовы, без потоков просто не обойтись. Асинхронность работает только тогда, когда вся цепочка вызовов от начала до конца асинхронная.
    Ответ написан
    Комментировать
  • Вычислить сумму ряда с заданной точностью?

    longclaps
    @longclaps
    Идём сюда.
    Уточняем значение ζ(3)≈1.2021.
    Пишем однострочник
    from math import fabs, sqrt
    print(1.2020569031595942 * sqrt(fabs(x)))
    который дает относительную погрешность ~1e-16.
    Отдыхаем, на досуге размышляем, нахрена в условии было дано n.
    Ответ написан
    Комментировать
  • Почему метод класса выводит None?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    но если отдельно прописать для какого-нибудь объекта tell, но None нету( t.tell() к примеру )

    Если я правильно понял, то вы о том, что если выполнить:
    t = Teacher('Nina Petrovna', 50, 30000)
    t.tell()

    то None не будет выведен?

    None появляется потому что вы вызываете печать, так что если напишите
    t = Teacher('Nina Petrovna', 50, 30000)
    print(t.tell())

    то точно так же увидите None.

    Я понимаю, что в методе отсутствует return, от этого и None вылезает

    Все правильно, tell() возвращает None, вы этот None и выводите на экран. Вы явно запутались с print/return. Для вашей реализации вам не нужно делать print(obj.tell()), потому что нужные принты вы вызваете в самом методе.

    Так что правильнее будет написать такой код:
    for member in members:
        member.tell()


    Оборачивать ваш метод в print() имеет смысл только тогда, когда вы не печатаете текст в самом методе, а только подготовливаете правильное предложение и возвращаете его через return.
    def tell(self):
        return 'Имя {}, возраст {}'.format(self.name, self.age)


    При вызове такого метода, вы не получите никакой вывод на экран:
    s = Students('Carl', 20, 80)
    s.tell()

    Но зато вы можете сохранить результат работы в переменную и использовать ее потом, либо отправить сразу в print():
    s = Students('Carl', 20, 80)
    print(s.tell())
    # либо
    s = Students('Carl', 20, 80)
    resutl = s.tell()
    print(result)
    Ответ написан
    8 комментариев
  • Отображение процентной составляющей в сложенной гистограмме plotly?

    @dmshar
    Если новичек - читаем документацию:

    https://plotly.com/python/bar-charts/
    https://plotly.com/python/histograms/

    На будущее запоминаем - на форум идем тогда, когда что-то делаем сами и нам что-то конкретное при этом непонятно, или не получается. При этом - обязательно - приводим фрагмент собственного кода и данных, по которым другие могут воспроизвести свою проблему, подправить или показать, как ее решать.
    Ответ написан
    Комментировать
  • Почему Selenium не находит кнопку?

    стандартный подход поиска по таксту кнопки - xpath (есть и альтернативы напр. у протрактор)
    text = 'Continue to Discord'
    text = 'Принять приглашение'
    driver.find_element_by_xpath('//button/div[contains(text(), "{}")]'.format(text))

    но если не настроена кодировка может не найти
    {"method":"xpath","selector":"//button/div[contains(text(), "Принять приглашение")]"}

    и тогда пишется кастомное ожидание при помощи киртранслит
    from cyrtranslit import to_latin
    from selenium import webdriver
    from selenium.webdriver.firefox.webdriver import WebDriver
    def waittest:
      def __init__(self, selector, value):
        self.selector = selector
        self.value = value
      def __call__(self, driver):
        element = driver.find_element_by_css_selector(self.selector)
        text = element.text
        print('checking text: "{}" against "{}"'.format(to_latin(text, 'ru'), self.value))
        if to_latin(text, 'ru') == self.value:
          return element
        else:
          return None
    
    text = to_latin('Принять приглашение', 'ru')  
    element = WebDriverWait(driver, 10).until( waittest("button[class *= 'button']", text))
    Ответ написан
    2 комментария
  • Не могу получить значение при парсинге сайта?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Потому что данные загружаются динамически. Открывайте F12->Network, фильтруйте по XHR и смотрите, какие запросы отправляются и какие данные приходят
    Ответ написан
    1 комментарий
  • MacBook Pro 16 или MacBook Pro m1?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Недолго уже ждать до Pro 16 m2, а так m1 конечно. Тем более что вы будете работать с эппл продуктами которые заточены под М1+
    Ответ написан
    Комментировать
  • MacBook Pro 16 или MacBook Pro m1?

    kawabanga
    @kawabanga
    M1. В декабре сделал выбор в пользу него и не желаю.
    А на лишние деньги купите монитор хороший.
    Ответ написан
    Комментировать