• Как написать мобильное приложение?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли написать бекенд для мобильного приложения на андроид и iOS на Django Python?

    Возможно.
    Если да, то что нужно для этого поизучать

    Все тоже самое, что и для разработки бэка для любого другого проекта.
    и на чем писать фронтенд для мобильного приложения?

    На чем умеете, но вот список от простого к сложному:
    - React Native.
    - Flutter.
    - Kotlin/Swift.
    Ответ написан
    1 комментарий
  • Есть ли качественная дорожная карта для web разработки на python?

    @slochitory
    Сам учусь по такому направлению
    Подробно изучить Python.
    SQL основы - желательно потратить недельку - две на изучение(Но в Джанго своя ОРМ, но я считаю что пригодится знать основы)
    MySQL/PostgreSQL
    Django.
    Django Rest FrameWork(Для создания RESTful приложений).
    Nginx/Apache
    Для фронтенда учу
    HTML
    CSS
    Bootstrap/Tailwind CSS
    SASS/SCSS
    JavaScipt(Основы)
    Какой-то фреймворк для фронта например React/Vue/Angular
    Обязательно научиться пользоваться Git.
    И ещё было бы хорошо научиться пользоваться Docker.
    В целом пока занимаюсь этим.Если что-то не правильно, пожалуйста поправьте, самому будет полезно почитать
    Ответ написан
    1 комментарий
  • Почему асинхронный телебот увеличивает кол-во потоков?

    Vindicar
    @Vindicar
    RTFM!
    while True:
                print(1)
                await asyncio.sleep(1)

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

    HemulGM
    @HemulGM Куратор тега Python
    Delphi Developer, сис. админ
    VPN включи

    OpenAI закрыли API для России. Теперь и для него нужен VPN.

    Ошибка у тебя связана с тем, что на запросы приходит не корректный ответ от сервера, а HTML с инфой от их файервола, где написано "Идите лесом"
    Ответ написан
    Комментировать
  • Как синхронизировать базу данных и python?

    Питон - это и есть та прослойка, которая "понимает" как работать с СУБД и которая "знает" когда нужно изменять в последней данные. Начни с основ SQL.
    Ответ написан
    5 комментариев
  • Почему тг бот неправильно принимает сообщение?

    Vindicar
    @Vindicar
    RTFM!
    @bot.message_handler(content_types='text')
                def us(message):
                    bot.send_message(message.chat.id, 'проверка')

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Смотря в чем задача конкретно, задача рюкзака это общее название.
    У тебя код осуществляет попытку найти максимальную ценность предметов при условии, что в рюкзак можно положить 4 кг. На твое тестовом сете он работает правильно, если я изменю тестовый сет то нет. Например если я сделаю
    =[(4000,4), (2500,1),(2000,3), (8000, 2), (9000, 4), (7000,2)]
    То я ожидаю ценность 15000, а он дает все равно 10500.
    Я бы рекомендовал тебе статью https://www.geeksforgeeks.org/0-1-knapsack-problem... там несколько имплементаций в том числе и рекурсивный, и оптимизированный динамический, и на нескольких языках.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    x - равняется 0 в твоем коде. Перенеси print(x) в самый верх и увидишь. Рекурсия это бесконечный цикл вызова функцией самой себя, до тех пор пока базовое состояние не прервет его (одно или несколько). None ты в конце видишь потому что это printтебе его возвращает, у тебя уже есть print внутри функции.
    def f(x):
        print(x)
        if x==0:
            return 
        else:
            f(x-1)         
    f(3)
    . В твоем случае он тоже выйдет и return 0 он выполняет, замени return на pass и получишь бесконечную рекурсию.

    Насчет None у тебя вот такая ситуация print(print(1))

    ОТРЕДАКТИРОВАНО После дискусии с Zzzz9, выяснилось, что я не прав насчет None. Базовый кейс в рекурсии останавливает рекурсию, но не выходит из функции. Что бы мы вернули значение базового кейса нам нужно добавить return к рекурсивному случаю. Например
    def f(x):
        if x==0:
            return 100
        else:
            f(x-1)
    print(f(3))

    Вот так выход из рекурсии настает, но рекурсивный кейс не имеет return и функция вернет None а вот в такой вариации
    def f(x):
        if x==0:
            return 100
        else:
            return f(x-1)
    print(f(3))
    Функция вернет 100. Насчет print я полную глупость написал, он возвращает None и я подумал, что это имеет место. Глупость полная. если мы добавляем return к рекурсивному кейсу то выведет то что возвращает базовый кейс. А базовый кейс только останавливает рекурсию но не выходит из функции.

    Насчет цикла если мы добавим return к рекурсивному кейсу то for цикл выполнится только один раз, потому что базовый кейс остановит рекурсию а рекурсивный кейс имеет return соответсвенно, функция напечатает изменение x + один добавочный 0, который возвращает return в базовом кейсе. Например
    def f(x):
        print(x)
        if x==0:
            return 'Конец'
        for i in range(10):
            return f(x-1)
    print(f(3))
    Цикл выполнится лишь раз и затем выход из функции.
    Ответ написан