• Как получить количество строк в документе, если строка одна?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Можно как-то так:
    filename = 'groups.txt'
    with open(filename, 'r') as file:
        for n, line in enumerate(file, 1):
            line = line.rstrip('\n')
            print(f'{n}\t{line}')

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

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Рекомендации
    Вероятно, роутер Wi-Fi с какой-либо уязвимостью. Надо рассчитывать на самый худший исход. Возможно, если была использована уязвимость, сосед уже внедрил во все, что смог поломать в твоей сети, бэкдоры. Комп, NAS, принтер, роутер - считай, что всё заражено. И теперь так просто от него не избавиться.

    Надо
    • всё поотключать,
    • перепрошить роутер или поменять,
    • естественно поменять пароли почт и т.п. через телефон и мобильный инет,
    • снести ОС на компе, и, не подключаясь к сети, поставить свежую ОС и пропатчить, лучше через мобильный инет.
    • Не связываться с левыми прокси и vpn.
    • Если в локальной сети еще что-нибудь есть (NAS, принтер, voip, всё такое), тоже поперепрошивать, посбрасывать конфиги… мало ли… делать это по одному устройству, с чистого компа и без подключения к инету, даже мобильного.

    Если всё аккуратно сделать, скорее всего избавишься от любопытного соседа. На некоторое время…

    Чтоб его отловить, можно еще завести в своей локалке ловушки (honeypots). Сработает - наверное, сосед опять пробрался в сетку.
    Ответ написан
    Комментировать
  • Что делать с выгоранием?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Мой сын тоже «выгорел» на 3 курсе медвуза. Потом немножко летом поработал в клинике санитаром (фактически уборщиком). И пришел и сказал «Я понял. Лучше работать головой, чем руками». Сейчас на 4-м уже половину зачетов сдал и, видимо, выйдет на повышенную стипендию.

    Так что рекомендую пойти поштукатурить стены, поразгружать вагоны, покосить траву и покопать огороды. Всю мерехлюндию как рукой снимет.

    А если таки не снимет - нашим заводам и фермам очень нужны крепкие трудовые руки.
    Ответ написан
    Комментировать
  • У меня ошибка 'Database' object has no attribute 'connection', как это решить?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    def __int__
    ->
    def __init__
    сам порой на эту граблю наступаю с автоподстановкой.
    Ответ написан
    Комментировать
  • Почему не получается установить библиотеку dlib?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    dlib максимум 3.6 Python поддерживает.
    Думаю, правильно будет создать виртуальное окружение (например virtualenv), pycharm это делает особенно удобно; и в нем поставить нужную версию python и остальные нужные библиотеки ставить там же. И там же писать код.

    Также со слов Евгений Шатунов надо убедиться, что
    должна стоять нагрузка на разработку C++ приложений с использованием cmake.
    - как я понял, как раз об этом писали в большом транспаранте в traceback.
    Ответ написан
    3 комментария
  • Как обратиться к объекту класса renpy, если я не знаю его имя?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Во-первых, не объекты, а экземпляры класса. Объект класса это немного другое.
    Во-вторых, то, что у вас написано, не валидный код Python.
    У вас нет там никакого создания экземпляров класса.
    Экземпляры можно класть в список, например. И потом обращаться к экземплярам в списке по индексу (в квадратных скобках).
    Вот так это может выглядеть:
    class MyClass:
        def __init__(self, i):
            self.i = i
        
        def img(self):
            return self.i + 1
        
        def pos(self):
            return self.i * 2
        
        
    circles = [1, 2, 3]
    result = []
    
    for i in circles:
        result.append(MyClass(i))
    
    print(result[0].img())
    print(result[2].pos())
    Ответ написан
  • Как убрать скобки?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Попробуйте bot.send_message(message.chat.id, '@' + bd[0])
    Ответ написан
    4 комментария
  • Как выполнять вычисления с помощью функций (результат вызова предыдущей должен быть аргументом следующей)?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Решаю задачи на codewars, не могу решить задачу с функциями?

    Да, не можете.
    Ответ написан
    Комментировать
  • Как при отсутствии интернета, перезапустить код(телеграмPyTelegramBot)?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    while True:
        try:
            start_my_bot()
        except НазваниеОшибки as e:
            print(e)
            try:
                stop_my_bot()
            except:
                pass
            time.sleep(10)
    Ответ написан
    2 комментария
  • Как сделать перебор по порядку в позиции строки из списка символов на Python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Если решать «в лоб», то как-то так:
    def change(position, new_character):
        return  string[:position] + new_character + string[position+1:]
    
    string = 'example'
    new_characters = 'abcdef'
    for n, _ in enumerate(string):
        for new_character in new_characters:
            print(change(n, new_character))
    Ответ написан
    3 комментария
  • Вывод случайного значения из бд?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вывод случайного значения из бд?

    Нет. См.п.3.6
    Ответ написан
    1 комментарий
  • Как привязать pygame.KEYDOWN на 2 кнопки?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Конечно, не работает. Вместо and попробуйте or.
    Ответ написан
    1 комментарий
  • Как вывести данные из бд через строки?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Предположим, что часть про SQLite у вас работает как надо и всегда возвращает в row корректный tuple.
    Код предполагает, что длина row всегда равна длине ROW_HEADS, это лучше проверять, иначе могут быть ошибки и сбои.

    Формально решить задачу можно как-то так, например:
    ROW_HEADS = ["ID:", "Имя:", "Почта:", "Добавлен:", "Зарплата:"]
    
    
    def make_string(row):
        return '\n'.join([f'{key} {value}' for key, value in zip(ROW_HEADS, row)])
    
    
    if __name__ == '__main__':
        row = (1, 2, 3, 4, 5)
        print(make_string(row))
    Ответ написан
    Комментировать
  • С чего начать новичку в python, денег нет на курсы, как быть?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Забудьте про ментора. 5 тыс/час вы не будете платить, а меньше особо и нет смысла. Да и не нужно оно вам сейчас.

    Лутц наше всё, а потом - пишите калькулятор, змейку, блокнот, потом всё то же, но в браузере на Фласк, Джанго… будут КОНКРЕТНЫЕ проблемы - приносите сюда.

    Насчёт курсов/гайдов/видосиков и т.п. Единственная польза от них - подсмотреть приемчики работы с конкретным ПО - с pycharm, с postgres, с git… некоторые вещи лучше увидеть глазами один раз. Но не тратьте месяцы на окончание курсов или просмотр всех видосиков. Оно того не стоит.

    Что касается менторства… вот когда у вас будет конкретный затык с чем-то относительно сложным, и книги не помогают… в таких случаях может помочь найм ментора - возможно, он покажет проблему с другой точки зрения, на которую вы без него и не пришли бы никогда. У меня так было трижды, и потратил я на это дело десятки тысяч. И эффект в двух случаях оправдался, а в одном - нет. Очень затратно, очень.
    Ответ написан
    Комментировать
  • Почему не работает переменная которая прошла через функцию?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Потому что переменная не "прошла через функцию".
    Одна переменная value2 ссылается на другую переменную, объявленную в global, а другую value2вы объявляете в своем методе путем явного присвоения:
    value2 = real_name
    До объявления value2 ссылалось на объект из global, но после объявления внутри метода стало ссылаться на другой объект, и стало отдельным от глобального.
    Пример, поясняющий id объектов
    class Demo:
        def __init__(self):
            pass
    
        def check(self, value1, not_real, value2, real):
            print(f'\t{value2} тут еще не объявили {id(value2)}, ссылается на глобальную')
            if value1 == not_real:
                value2 = real
                print(f'\t{value2} тут уже объявили {id(value2)}, ссылается на real {id(real)}')
    
    
    my_var = 2
    print(f'{my_var} тут глобальная {id(my_var)}')
    my_test = Demo()
    my_test.check(1, 1, my_var, 3)
    print(f'{my_var} тут глобальная {id(my_var)}')

    У вас есть два относительно простых выхода:
    возвращать значение из метода через return
    костыль, т.к. получается, что это не метод, а просто функция
    class Demo:
        def __init__(self):
            pass
    
        def check(self, value1, not_real, real):
            if value1 == not_real:
                return real
    
    
    my_var = 2
    print(my_var)
    my_test = Demo()
    my_var = my_test.check(1, 1, 3)
    print(my_var)



    передавать в функцию список и менять элемент списка
    чудовищный костыль, так лучше не делать, т.к. класс меняет что-то вне класса, да еще изменение списка какое-то неявное, можно забыть или не уследить
    class Demo:
        def __init__(self):
            pass
    
        def check(self, value1, not_real, value2, real):
            if value1 == not_real:
                value2[0] = real
    
    
    my_var = [2]
    print(my_var[0])
    my_test = Demo()
    my_test.check(1, 1, my_var, 3)
    print(my_var[0])


    По-идее, класс должен содержать в себе экземпляры и методы для изменения этих экземпляров, а снаружи ничего менять ему не надо. Если меняет - плохо, не тем занимается. В принципе, бывают случаи, когда делают классы - "швейцарские ножи", складывая в них всякие функции, относящиеся к одной теме... но это как-то мне кажется не этот случай.
    Ответ написан
    1 комментарий
  • Можно ли как-то получит данные об изменениях в Google Sheets с помощью python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Вижу два варианта:
    1. Хранить последние состояния каждой ячейки в отдельной колонке и сверять с текущим; произошло изменение - фиксируем новое состояние как текущее и отправляем его клиенту
    2. В таблице хранить отдельно колонку флага «updated», если True - значит обновилось, отдаём данные клиенту, ставим флаг False. Мониторим флаги 300 тыс раз в наносекунду.
    Ответ написан
    2 комментария
  • Помощь с кодом. (discord.py/python)?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Помощь с кодом. (discord.py/python)?

    Нет, не помощь с кодом. Помощь с проблемой в коде.
    Ответ написан
    Комментировать
  • Тема ВКР (Дипломной работы). Ваши советы и идеи?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Вот вам моё мнение диванного эксперта:
    Ваша идея на мой взгляд сама по себе очень хороша. Полагаю, именно так в идеале и надо делать: в течение всей учёбы делать работы (курсовые, лабораторные и т.п.), которые в итоге сложатся в дипломную, или как минимум станут ее существенной частью.

    Проблема в том, что диплом должен быть как правило из набора предложенных преподавателями. Вам надо либо убедить преподов, что предложенная вами тема годится, либо выбрать подходящую тему из предложенных и притянуть к ней свои прежние наработки.

    Кроме того, желательно, чтобы в дипломе была теоретическая часть. Например, не только воплощение вашего приложения, но и его теоретическое обоснование, плюс добавить какую-нибудь внешнюю экспертизу, плюс сделать выводы соотвествующие (например, что выбранный подход годится для такого-то применения в народном хозяйстве с такими-то ограничениями с учётом мнения экспертов).
    Ответ написан
    Комментировать
  • Бесплатный публичный API для поиска авиабилетов?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Бесплатный публичный API для поиска авиабилетов?

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

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Как создать свой личный автопостинт в телеграме?

    1648368759_29-kartinkof-club-p-mem-khochesh-stat-programmistom-32.jpg
    Ответ написан
    Комментировать