Задать вопрос
  • Как сделать проверку содержимого файла?

    Vindicar
    @Vindicar
    RTFM!
    Только читать файл построчно и сравнивать строки с новой строкой. Каждый раз.
    Вообще, как только появляются такие требования, стоит задуматься о переходе на базу данных.
    Ответ написан
    Комментировать
  • Как узнать точный перевод description в python owm?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Перевод и не нужен по сути. По ссылке, которую вы привели, есть таблица кодов погоды. Достаточно будет перевести их вручную и подобрать иконку, а в коде ориентироваться на ID.

    Например, такой код сейчас вернет код 721:
    weather = mgr.weather_at_place('London,GB')
    print(weather.weather.weather_code)


    По таблице это `haze` (туман). Пусть ему соответствует такой смайл: U+1F32B

    Дальше уже можно сделать свой словарь с юникодом и ID погоды. Где ключи словаря - ID, а значения - юникоды.

    weather_emojis = {721: '\U0001F32B', 500: '\U00001111'} # и тд


    И отправлять уже так:

    emo = weather_emojis[w.weather_code]

    В результате это уже одна строчка кода (ну плюс еще одна на словарь), и полная независимость от языка
    Ответ написан
    Комментировать
  • Лаконичный код, для нуба на Python =/ _main_, _name_?

    Vindicar
    @Vindicar
    RTFM!
    Это несложно, на самом деле.
    Когда ты делаешь import module_name, Питон ищет либо файл module_name.py, либо пакет module_name. Про пакеты пока говорить не будем. Если такой файл нашелся, и он ещё не был импортирован, то он выполняется в контексте импортирующего скрипта. При этом получается объект-модуль, и ссылка на него помещается в переменную module_name в импортирующем скрипте.
    Пример:
    # a.py
    def somefunc():
        print('Hi!')
    
    print('a is executed')
    
    # b.py
    import a  # >>> a is executed
    a.somefunc()  # >>> Hi!

    Имя, под которым импортируется модуль, помещается в переменную __name__. Изменим код так:
    # a.py
    def somefunc():
        print('Hi!')
    
    print(__name__, 'is executed')
    
    # b.py
    import a  # >>> a is executed
    a.somefunc()  # >>> Hi!
    print('And I am', __name__)  # >>> And I am __main__

    Таким образом, мы видим, что для исполняемого скрипта переменная __name__ содержит строку "__main__", а импортируемые скрипты увидят в ней только своё имя. Причем неважно, если ты переименуешь модуль:
    # a.py
    def somefunc():
        print('Hi!')
    
    print(__name__, 'is executed')
    
    # b.py
    # импортируем модуль и переименовываем его
    import a as d  # >>> a is executed
    d.somefunc()  # >>> Hi!
    print('And I am', __name__)  # >>> And I am __main__

    Именно эта особенность и позволяет писать код, который выполнится только если питон-скрипт выполняется непосредственно.
    # a.py
    # Этот код выполнится в любом случае
    def somefunc():
        print('Hi!')
    
    if __name__ == '__main__':
        # этот код выполнится только если a выполняется непосредственно
        print(__name__, 'is executed') # Всегда выведет __main__ is executed
    else:
        # а этот код выполнится только если a импортируется в другой модуль
        print('Imported as', __name__)
    # b.py
    import a  # >>> Imported as a
    a.somefunc()  # >>> Hi!
    print('And I am', __name__)  # >>> And I am __main__
    Ответ написан
    1 комментарий
  • Как изменить вывод в консоль на python?

    lxstvayne
    @lxstvayne
    Люблю Python
    print(*['main.py', 'dist.py'], sep='\n')
    Ответ написан
    Комментировать
  • Как исправить ошибку "name is not defined"?

    @PavelMos
    Написано же в сообщение об ошибке что start_time не задан на момент обращения к нему.
    uptime_timedelta: datetime.timedelta = datetime.datetime.today() - start_time

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

    @AVKor
    Какие курсы стоит посмотреть, если ты совсем чайник?

    Никакие. Читайте книги. Лутца, например.
    Ответ написан
    Комментировать
  • Как достать несколько одинаковых значений из листа?

    Надо просто нормально изучить базу пайтона.
    Кусочек листа с одним пользователем - такого не может быть, потому что не может быть никогда.
    в списке будут лежать объекты полученные при создании юзеров. Объекты, а не код для их создания.
    Поэтому нужно сначала понять, что получится при выполнении такого кода
    user = User(
        id=0,
        is_self=True,
        // и т.д.
    )
    print(user)

    потом нужно разобраться с этим и применить https://www.w3schools.com/python/python_lists_comp...
    Ответ написан
    2 комментария
  • Бот даёт ответ только на половину команды, а вторая просто не работает, что делать?

    @Kadabrov
    рекомендую в следующий раз потратить 3 часа на изучение синтаксиса и стандартных функций

    Когда input() или raw_input() вызываются, поток программы останавливается до тех пор, пока пользователь не введет данные через командную строку. Для ввода нужно нажать Enter после завершения набора текста. Обычно Enter добавляет символ новой строки (\n), но не в этом случае. Введенная строка просто будет передана приложению.


    нужно обработать входное сообщение и сравнить результат с рандомом

    вот еще первая ссылка в поиске, он обычно решает 90% вопросов

    Из поиска
    Ответ написан
    3 комментария
  • Как вывести то, чего нет в списке?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    a = {'Игорь', 'Борис', 'Илья', 'Антон'}
    b = {'Игорь', 'Илья'}
    a - b
    a ^ a & b
    # {'Антон', 'Борис'}
    Ответ написан
    5 комментариев
  • Как вывести то, чего нет в списке?

    @deliro
    set(кто в первом списке) - set(кто во втором списке)
    Ответ написан
    Комментировать
  • Почему бот не выполняет команду повторно?

    MuckRuno
    @MuckRuno
    Молодой начинающий разработчик, активно развиваю б
    Возможно потому что вы не удаляете вебхуки попробуйте в конце написать это
    bot.remove_webhook()
    bot.polling(none_stop=True, timeout=123)
    Ответ написан
    1 комментарий
  • Как вытащить значение из string?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    text = "name=Самолет&last_name=Турбулентов&a=ugen5ref"
    
    parsed = dict(map(lambda y:y.split('='), text.split('&')))
    parsed['last_name']
    # Турбулентов
    Ответ написан
    Комментировать
  • Как вытащить значение из string?

    @Kadabrov
    Сначало строку разбиваем с помощью split('&')
    Затем перебираем список и проверяем если есть = разбиваем строку с помощью split, затем берём нулевое значение получившегося списка ключём, а первое значение, значением ключа словаря. В результате получаем словарь с ключом до знака равно и значением после знака равно
    Ответ написан
    3 комментария
  • Как привести таблицу в определенному виду(python)?

    @Kvason
    Веб-разработчик
    Ну для начала вопрос откуда Вы парсите, и как там формируются нужные блоки, похоже что Вы парсите содержимое как раз этих блоков, тогда можно перебором из каждой записи доставать блоки с минусами и конкатенировать с названием команды, а не выводить по отдельности
    Ответ написан
    Комментировать
  • Как привести таблицу в определенному виду(python)?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    какими методами python можно воспользоваться, чтобы привести данные к формату:

    Цикл for, сравнение if, вывод print, ну и метод isalpha(), чтобы понимать где строка.

    Циклом проходитесь по всем строкам, если строка состоит из букв - печатаете ее, если в строке есть + или - - печатаете эти сиволы
    Ответ написан
    Комментировать
  • Python не хочет импортировать библиотеку requests, что делать?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    1.Возможно, другой интерпретатор (например requests установлен для 3.x, а по умолчанию запускается 2.х)
    2.Возможно, requests установлен в виртуальном окружении, а вы пытаетесь запустить без него (ну или наоборот).
    Ответ написан
    Комментировать
  • Как можно заменить в словаре повторяющиеся значения?

    @PavelMos
    k1 = {"a_1":111, "a_2":104, "a_3":107, "a_4":90, "a_5":115, "a_6":107, "a_7":106, "a_8":107, "a_9":95, "a_10":116, "a_11":127, "a_12":115, "a_13":102, "a_14":99}
    k2 = {"b_1":113, "b_2":107, "b_3":123, "b_4":122, "b_5":117, "b_6":112, "b_7":105, "b_8":108, "b_9":111, "b_10":114, "b_11":102, "b_12":104}
    general_row = dict(sorted({**k1, **k2}.items(), key=lambda x: x[1]))
    general_row_copy = general_row.copy()
    k = 1
    for key in general_row_copy:
        general_row_copy[key] = k
        k += 1
    counter = 1
    sum_of_rank = 0
    listValues=list ( general_row.values() )
    uniqValuesDictDup={x:listValues.count(x) for x in listValues
                    if listValues.count(x)>1}
    
    for i in uniqValuesDictDup:
        #ключи исходного словаря [с дублями]
        t=[x for x in general_row if general_row[x]==i]
        #ключи-порядковые номера-ранги второго словаря
        k=[general_row_copy[x] for x in general_row_copy if x in t]
        av= sum(k)/len(t)
        print (t,k, 'среднее=',av)
        for j in t:
            general_row_copy[j]=sum(k)/len(t)
    
    for i in sorted(general_row_copy):
        print (i, general_row_copy[i], '\r')
    Ответ написан
    Комментировать
  • Почему or в python не работает?

    @alekssamos
    Программист любитель
    if iduser != АЙДИ or iduser != АЙДИ:
    Ответ написан
    1 комментарий
  • Почему or в python не работает?

    Vindicar
    @Vindicar
    RTFM!
    Потому что ты не понимаешь как работает or.
    И не ты первый. Мне вот реально интересно, откуда вообще берётся идея, что логический (в первую очередь) оператор можно использовать таким образом? Машинный перевод с русского на питон, что ли? "Если айди равен тому ИЛИ этому"?
    И что ты пытался сделать? Проверить, что iduser не равно ни одному из указанных id? Так тогда тебе не or нужен.
    if iduser != АЙДИ1 and iduser != АЙДИ2:
    Если айдишек много, практичнее будет in.
    if iduser not in [АЙДИ1, АЙДИ2]:
    Ответ написан