Задать вопрос
  • 3d графика в Python, какую библиотеку использовать?

    я бы генерировал 3D примитивы на прозрачном фоне в чём-то одном,
    и объединял с исходным видео с помощью ffmpeg. Налету, вполне.
    Ответ написан
    Комментировать
  • Как победить ошибку прочтения изображения в Python?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    5e6de6f88c700511654524.png
    Ответ написан
    Комментировать
  • Что написать на Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    1. Начните с утилит командной строки.
      • Освойте argparse, pathlib, yaml-конфиги, sqlite, концепцию пайпов, стандартные потоки ввода-вывода, цветной вывод в терминал.
      • Сделайте тулзу для автоматической разгрузки флешек от фотоаппарата. Пусть забирает все фотки с подключенной флешки, раскидывает по папкам с датами в каталоге хранилища, находит дубли, отделяет RAW'ы, правит EXIF, привязывает гео-метки по треку, индексирует в sqlite, находит похожие (opencv), находит и отделяет серии брекетинга для HDR, делает и восстанавливает бэкапы...
      • Сделайте CLI тулзу, которая качает спутниковые снимки региона и клеит для печати на фотообои или большой формат с рамкой, легендой и масштабной линеечкой.
    2. Попробуйте себя в бэкенде:
      • Освойте Flask.
      • Поиграйтесь с Django (сделайте себе уже сайт с вашими проектами, блогом, гостевой, галереей и админкой на готовых компонентах и дизайне).
      • Сделайте свой:
        • уменьшатель ссылок,
        • хостинг записок через QR-коды,
        • TODO-list,
        • анонимный интернет-чат на web-сокетах,
        • свою интернет-радиостанцию для семьи (с ротацией, новостными и погодными вставками, напоминалками из календаря семеных событий помощью TextToSpeech).
      • Попробуйте прикрутить к сайту донаты, принимать платежи.
      • Сделайте свой сайт, который присылает (можно за денежку) выбранную область карты в виде страниц атласа в масштабе и с легендой на основе рендера OSM и спутниковых снимков.
    3. Поиграйтесь с ML на классических примерах.
      • Научите вашу веб-камеру в ноуте вас узнавать, фотать незнакомые лица перед вашим компом.
      • Научите комп "видеть" вашего кота в комнате, понимать когда ему надо погулять.
      • Сделайте скрипт, который находит на записях видеорегистратора гос-знаки автомобилей и сохраняет в CSV вместе с таймингом по ролику.
    4. Поиграйтесь с MicroPython на NodeMCU (ESP8266).
      • Сделайте и закастомизируйте на нём интернет-wifi-радиоприёмник, или детский MP3-плеер для сказок с RFID-сканером и карточками.
      • Сделайте кормушку для котейки.
      • Робота-охранника или робота теле-присутствия для квартиры...
    5. Попробуйте себя в игрострое, если душа лежит. Я бы смотрел для начала в сторону веб-игр для соц-сетей. Да, придётся окунуться немного во фронтенд, но можно найти подельника, который учится фронту.
      • Можно замутить очередной http://www.milliondollarhomepage.com,
      • огромный скетч-холст для совместного рисования в стиле https://xkcd.com/1110/ на leaflet,
      • или свой граббер и просмотрщик тайлов этого комикса и похожих.
    6. Поделайте ботов для телеги - сейчас, похоже, все этим занимаются. Этот ресурс ломится от тупых вопросов по ним, присоединяйтесь.
      • Можно замутить своего бота для скачивания видоса с ютуба (и не только) по ссылке на основе YoutubeDL.
      • Сделайте бота для чата знакомств с гео-привязкой.
      • Бота, который мониторит RSS и репостит в чат.
      • Бота, который мониторит чат и репостит в RSS через сервер на Flask или статику.
      • Сделайте автоматическую качалку и публиковалку аудиокниг с рутрекера (принять ссылку или название, скачать торрент с нужными тегами, сгенерировать запись в RSS-фид, положить в публикуемый каталог, чтобы книги можно было качать и слушать как обычные подкасты, но еще и по команде из телеги).


    Ну сколько можно ныть и вопрошать "что делать"? Огромная куча всего еще не сделана или сделана через задницу. Сделайте тоже! Пусть получится хорошо или снова через задницу, но это будет ваш опыт!
    Публикуйте свои работы в opensource на github. Изучайте best practice, осваивайте CI/CD, Docker, TDD. Подпишитесь на технологические IT-подкасты. Заведите блокнот для базз-вордов и пишите туда всё что слышите незнакомое. Возьмите в привычку обзорно изучать новые вещи каждый день, каждую неделю.
    Со временем ваш профиль в гитхабе начнёт работать на вас. Крутые конторы постоянно мониторят открытые проекты и хантят разработчиков. Хороших программистов всегда не хватает!
    Дерзайте! Хватит ныть и колебаться! Идите делать!
    Ответ написан
    Комментировать
  • Используете ли вы annotations в Python?

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

    Tomio
    @Tomio
    backend developer (python, php)
    Ну вообще для этого есть встроенный модуль ast и его функция literal_eval.

    import ast
    
    str_number = '58'
    print(ast.literal_eval(str_number))
    # output: 58 - <type 'int'>
    
    str_dict = '{"name": "vasya", "age": 30}'
    print(type(ast.literal_eval(str_dict)))
    # output: {"name": "vasya", "age": 30} - <type 'dict'>


    Ну и т.д. в том же роде можете подставлять в виде строк остальные типы данных.
    Ответ написан
    5 комментариев
  • Как превратить 3w3d12h12m40s в нормальное время?

    Небезопасно, но как вариант без импортов:
    str1 = "3w3d12h12m40s"
    
    seconds = 
      eval(
        str1
          .replace("w", "*86400*7+")
          .replace("d", "*86400+")
          .replace("h", "*3600+")
          .replace("m", "*60+")
          .replace("s", "")
      )
    
    # 2117560
    Ответ написан
    1 комментарий
  • Сокращение кода python?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    Ну наглядней точно можно сделать:
    try:
        if {
            '+': lambda o, t, h: o + t == h,
            '-': lambda o, t, h: o - t == h,
            '*': lambda o, t, h: o * t == h,
            '/': lambda o, t, h: o / t == h,
          }.get(j)(o, t, h):
            print('YES')
        else:
            print('NO')
    except KeyError:
        print('Неизвестная функция')
    except ZeroDivisionError:
        print('Деление на ноль')
    Ответ написан
    Комментировать
  • Как реализовать таймаут в urlopen в 3 python?

    alternativshik
    @alternativshik
    таймаут - это таймаут подключения и к паузе до загрузки не имеет никакого отношения.
    Ответ написан
    1 комментарий
  • Как вывести список из элементов списка словарей по указанному ключу?

    AnnTHony
    @AnnTHony
    Интроверт
    def get_val(data, query):
        main_key, index, sub_key = query.split('.')
    
        if index == '*':
            return [item[sub_key] for item in data[main_key]]
        else:
            return data[main_key][int(index)][sub_key]
    
    
    data = {
        "some_list": [
            {"key1": "some_value1", "key2": "some_value2" },
            {"key1": "some_value1", "key2": "some_value2" },
            {"key1": "some_value1", "key2": "some_value2" },
            {"key1": "some_value1", "key2": "some_value2" },
        ]
    }
    
    print(get_val(data, 'some_list.*.key1'))
    print(get_val(data, 'some_list.0.key1'))
    Ответ написан
    Комментировать
  • Конфликт локальных/глобальных переменных в Python: кто из нас прав?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Марк Лутц - "Изучаем Python", глава 20, страница 596
    Как известно, имена, которым выполняется присваивание внутри функции, по умолчанию рассматриваются как локальные – они располагаются в области видимости функции и существуют только во время работы функции. Но я еще не говорил, что локальные переменные определяются статически, во время компиляции программного кода в инструкции def, а не в соответствии с операциями присваивания, производимыми во время выполнения. Эта особенность становится причиной появления самых причудливых сообщений в группе новостей, получаемых от начинающих программистов. Обычно, если внутри функции имени не присваивается какое-либо значение, поиск его будет производиться в области видимости объемлющего модуля. Но посмотрите, что произойдет, если добавить инструкцию присваивания переменной X после ее использования.

    X = 99
    >>> def selector():
    ... print(X) # Переменная еще не существует!
    ... X = 88 # X классифицируется как локальная переменная
    ... # То же самое происходит при “import X”, “def X”...
    >>> selector()
    Traceback (most recent call last):
    ...текст сообщения об ошибке опущен...
    UnboundLocalError: local variable ‘X’ referenced before assignment

    Было получено сообщение о том, что переменная не определена, но причина его появления не очевидна. Этот программный код компилируется интерпретатором во время ввода в интерактивной оболочке или во время импорта модуля. Вовремя компиляции Python обнаруживает операцию присваивания переменной X и делает вывод, что X – это локальное имя везде в теле функции. Но во время выполнения функции, из-за того, что к моменту вызова инструкции print операция присваивания еще не производилась, интерпретатор сообщает о том, что имя не определено. Согласно этому правилу использования имен, он говорит, что обращение к локальной переменной X произведено до того, как ей было присвоено значение. Фактически любая операция присваивания внутри функции создает локальное имя. Операция импортирования, =, вложенные инструкции def, вложенные определения классов и так далее – все трактуются именно таким образом. Проблема возникает из-за того, что операция присваивания делает имена локальными для всей функции, а не только для той ее части, которая следует за инструкцией присваивания.

    Читать учебники - полезно.
    Ответ написан
    3 комментария
  • Какой функционал еще можно добавить(Кроме интерфейса)?

    kshnkvn
    @kshnkvn
    yay ✌️ t.me/kshnkvn
    Ты бы не об каких-то там функциях думал, а хотя бы о базовой оптимизации кода. Например: ты 7 раз делаешь execute и commit, это при том что функций у тебя толком то и нет. А дальше что? Сотню раз по всему коду будешь повторять одни и те же строки? Почитай про DRY. Простейший пример:
    class sql_wrapper:
        def __init__(self):
            self.connection = sqlite3.connect('foo.db')
            self.cursor = self.connection.cursor()
    
        def select(self, sql):
            return self.cursor.execute(sql)
    
        def execute(self, sql):
            self.cursor.execute(sql)
            self.connection.commit()
        
        def close(self):
            self.connection.close()
        
    
    sw = sql_wrapper()
    
    rows = sw.select('SELECT * FROM some_table')
    for row in rows:
        print(row)
    
    sw.close()

    Лапша из if-else очень плохо читается и слишком разрастается, лучше каждое действие записывать отдельной функцией, а вызов совершать хотя бы так:
    def foo():
        print('print foo')
    
    def bar():
        print('print bar')
    
    commands = {
        'foo': foo, 'bar': bar
    }
    
    user_input = input().lower()
    if commands.get(user_input, None) is not None:
        commands[user_input]()

    Уже код будет выглядеть приятнее и более читаемый. Все команды лучше хранить в нижнем регистре и любые принимаемые данные, в том числе ввод с клавиатуры, который касается вызова команд так же переводить в нижний регистр - в будущем избавишься от проблем.
    Ну и разберись с SQL, а то похоже, что куски выдраны из разных гайдов, через раз то есть то нет завершающего символа ;
    Да и не только с SQL, у тебя через раз то одинарные кавычки для строк, то двойные. Приди уже к единому варианту.
    Ответ написан
    Комментировать
  • Как можно модернизировать?

    @anerev
    Собрав самых известных хакеров континента все пришли к выводу что ваш код совершенен. Не хотели бы вы устроится в google ?
    Ответ написан
    1 комментарий
  • Стоит ли писать собственное IDE на Python?

    @towin
    Если программированием занимаетесь только месяц, то нужно писать свою операционную систему.
    Своя IDE - это для тех, кто уже 2 месяца программирует.
    Ответ написан
    Комментировать
  • Существует ли бесплатное менторство?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Встречный вопрос: Представьте, что ваш час стоит 100 долларов. Будете вы тратить его на бесплатной менторство?
    Ответ написан
    5 комментариев
  • Что можно писать в условные конструкции python?

    saboteur_kiev
    @saboteur_kiev Куратор тега Python
    software engineer
    Что за слово word? точно так же и конструкция " i+=" Я понимаю, как это работает на практике, но что это, я не могу понять. Или какие есть еще специальные слова на подобие "word" и где их смотреть


    Специальные слова можно посмотреть в ЛЮБОМ учебнике и документации по Питон. Для этого нужно просто дочитать до конца, а не кидать на полпути, ну хотя бы тут
    https://pythonru.com/osnovy/sintaksis-vozmozhnosti...

    += это присваивание с инкрементом. Совершенно стандартная конструкция

    Серьезно, просто дочитай хотя бы один учебник до конца.
    Ответ написан
    6 комментариев
  • Какой язык программирования выбрать?

    @tiroman
    Хочу начать изучать программирование, чтобы создать программу-помощника, для всех платформ.


    признайся, ты решил потеснить майкрософт эпл и гугл с их голосовыми помощниками? и почему не начинаешь с написания операционной системы, как все нормальные прогеры?
    Ответ написан
    1 комментарий
  • Как написать нейросеть на Python?

    netpastor
    @netpastor
    Python developer
    scale_1200
    Ответ написан
    Комментировать
  • Почему функция выполняется?

    @antonksa
    Извени... Тут ошибка:

    80lvl самотроллинга.
    Ответ написан
    Комментировать