Ответы пользователя по тегу Python
  • Как передать ключ "сложного" словаря в качестве аргумента функции?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Получить значение - просто
    def a(b):
        print(b)
    
    a(guests[Building][Flat][Flat_2][App_4])


    А изменять лучше не внутри функции:
    def a(b, c):
        return b += c
    
    guests[Building][Flat][Flat_2][App_4] = a(guests[Building][Flat][Flat_2][App_4], 4)
    Ответ написан
    Комментировать
  • Как создать виртуальное окружение Python 3.7, при наличии нескольких версий интерпретатора в ОС семейства Linux?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Используй pyenv если работаешь с разными версиями Python. Ну и для разработки лучше использовать не системный Python.

    Так что pyenv-installer и вперёд!
    ставишь pyenv
    прописываешь в ~/.bash_profile
    ставишь нужную версию python: pyenv install 3.7.3 (или что надо из списка pyenv install --list)
    создаешь виртуальность: pyenv virtualenv 3.7.3 venv37
    переходишь в каталог проекта и ставишь эту виртуальность по умолчанию для каталога: pyenv local venv37

    Вуаля! При переходе в каталог проекта virtualenv активируется автоматически.
    Каждому проекту - свою virtualenv и со своей версией python (если надо, конечно)
    Ответ написан
    Комментировать
  • Как совместить рандомные слова?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    import random
    b = ["Каменный ", "Чистый ", "Кристальный "]
    a = ["Меч", "Карандаш", "Зуб"]
    print(f"{a[random.randint(0,2)]} {b[random.randint(0,2)]}")

    или
    import random
    b = ["Каменный ", "Чистый ", "Кристальный "]
    a = ["Меч", "Карандаш", "Зуб"]
    for _ in range(len(a)):
        print(f"{a[random.randint(0,2)]} {b[random.randint(0,2)]}")
    Ответ написан
    1 комментарий
  • Можно ли через python(если точнее программу на нем) зайти в браузер?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Просто запустить программу?
    import subprocess
    subprocess.run(["firefox"])


    Выполнить какое-то действие через браузер на сайте и получить результат?
    Смотри в Selenium - это могучий инструмент. Типа
    from selenium import webdriver
    from selenium.common.exceptions import TimeoutException
    from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
    import time
    
    # Create a new instance of the Firefox driver
    driver = webdriver.Firefox()
    
    # go to the google home page
    driver.get("http://www.google.com")
    
    # find the element that's name attribute is q (the google search box)
    inputElement = driver.find_element_by_name("q")
    
    # type in the search
    inputElement.send_keys("Cheese!")
    
    # submit the form (although google automatically searches now without submitting)
    inputElement.submit()
    
    # the page is ajaxy so the title is originally this:
    print driver.title
    
    try:
        # we have to wait for the page to refresh, the last thing that seems to be updated is the title
        WebDriverWait(driver, 10).until(lambda driver : driver.title.lower().startswith("cheese!"))
    
        # You should see "cheese! - Google Search"
        print driver.title
    
    finally:
        driver.quit()


    https://docs.seleniumhq.org
    https://www.selenium2.ru
    Ответ написан
  • Как создать матрицу для отображения на экране?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Класс создаётся с использованием ключевого слова `class`
    Методы - `def`

    Как сделать: просто писать.

    Вопрос слишком общий - документация, книги и постепенность действий тебе помогут.
    Если есть конкретные вопросы - задавай.
    Например: "как мне получить текущее разрешение экрана монитора (linux, PyQt)". Или: "как создать виджет таблицы (сетки, матрицы) на весь экран (windows, TkInter)"

    А в твоей формулировке похоже на детское "решите мне курсовую" ;-)
    Ответ написан
    Комментировать
  • Dependency inversion в python?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Если следовать твоему примеру:
    class Basic(object):
        def kek(self):
            return 'LOL'
    
    class Dependency():
        def use(self, mach: Basic):
          mach.kek()
    
    b = Dependency()
    b.use(Basic)

    то рабочий вариант будет выглядеть так:

    class Basic(object):
        def kek(self):
            return 'LOL'
    
    class Dependency():
        def use(self, mach: Basic):
            m = mach()
            return m.kek()
    
    b = Dependency()
    print(b.use(Basic))

    выведет `LOL`
    Создаёшь экземпляр переданного класса: m = mach() и потом уже возвращаешь результат выполнения его метода
    Ответ написан
    Комментировать
  • Серьезную литературу подобрал(Python)?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Вторая книга (двухтомник) 2000 страниц перевода документации и листинга нескольких примеров с описаниями.
    Первая книга — общие слова и вступления. Описание языка. Лутц — это вода и Капитан Очевидность. Не потому что я это всё превзошёл и не понимаю новичков, а потому, что это так и есть.
    И, самое печальное, даже если ты осилишь — это не научит тебя программировать.
    Давай по порядку:
    Если ты ещё не трогал, не начинал, не пробовал и решил начать с выбора книг — попробуй почитать для начала статьи в и-нете для начинающих в Python. Их там немало. Версия? Та, что есть в системе (если у тебя Линукс) или самый свежий релиз с python.org.
    Установка элементарная.
    А вообще - начни прямо отсюда: pythontutor.ru
    Ставить не надо, всё по-русски. Это бОльшая часть первой книги Лутца в том объёме, который тебе нужен.
    Основы можно ещё лаконичнее: https://learnxinyminutes.com/docs/ru-ru/python3-ru/
    Чтобы закрепить немного -
    https://py.checkio.org/ - задачки и решения. Сложность растёт постепенно, задачи привязаны к реальным кейсам.

    А дальше — решай, что тебе надо. Веб, десктоп разработка или бигдата со всякими нейросетями или ещё что...

    Документация, в том числе и по-русски доступна в сети. Статьи на Хабре и живой наставник дадут точно больше навыка в практическом применении, чем абстрактный, переводной и сильно устаревший Лутц (2011 год! С ума сойти!)

    Отрасль слишком быстро развивается чтобы, позволить себе изучать труды 8-ми летней давности. Ну, если это не дедушка Кнут со своим "Искусство программирования". В его случае и 1972-й год издания — на вес золота :-)

    Так что не трать деньги на трату времени — всё уже под рукой. Если что — спрашивай.
    Ответ написан
    Комментировать
  • Можно ли создать мессенджер без привязки к серверу?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Совсем без сервера — посмотри на Tox (https://tox.chat/)
    Но это почти не про Python. И вообще никак не про Django
    Ответ написан
    Комментировать
  • Selenium Max retries exceeded with url, как лечить?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Посмотри количество процесов.
    HTTPConnectionPool(host='127.0.0.1', port=48457
    - это про соединения между selenium webdriver и собственно браузером, от которого этот webdriver.
    ps ax | grep chrom
    или
    ps ax | grep firef
    Скорее всего ты не делаешь в конце (и при всяких исключениях) что-то типа
    driver.quit()
    и у тебя все процессы остаются висеть в памяти. Забивают её и исчерпывают лимит.
    Проверь с этой точки зрения.

    И я тебя умоляю: не работай от root! :-(
    Ответ написан
    2 комментария
  • Как справиться с ошибкой 'utf-8' codec can't decode byte 0xc0 in position 199: invalid start byte?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    .content.encode('utf-8')?
    Ответ написан
    Комментировать
  • Можно ли делать фронтенд на языке Python?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    В клиент-серверной архитектуре бэкенд - это то, что работает на сервере. Фронтенд - то, что работает у клиента ("толстый клиент").
    И то и то может быть написано на чём угодно, если есть соответствующие механизмы.

    Бэкенд - Python. Это нормально. Универсальный вариант отдаёт по запросу данные и не парится с тем, как они буду визуализированы. REST, GraphQL, SOAP и т.д.

    Фронтэнд, работая на стороне клиента, визуализирует получаемые данные для пользователя. Тут возможна как нативная отрисовка, так и опосредованная (к примеру через браузер).
    Фронтэнд пишется отдельно от бэка. Инструмент - любой подходящий.
    Для отрисовки через браузер (вот, сайт Тостера, к примеру) надо написать клиента на HTML/CSS/JS. Он будет загружаться в браузер и рисовать его средствами.
    Для нативной отрисовки - любая соответствующая системе либа. Хоть MFC в Винде (хотя это уже некромансия - сейчас .NET-библиотеки в фаворе), хоть Carbon (или что там сейчас на Маке?).
    Из линуковых нативных (они же - кроссплатформенные) подойдут GTK, Qt, FLTK и разные надстройки над ними. WxWidget тот же...
    Это я ещё не трогаю тему мобильных устройств...

    Поэтому если не хочется учить разные языки, а ограничиться Python, то фронт на нём МОЖНО писать. Есть биндинги к GTK и Qt. Есть WxPython. Для мобилок можно погрузиться в дивный и чудный мир Kivy (хотя это, скорее, кроссплатформенное решение - работать будет и на десктопах). BeeWare тоже интересно развивается.

    Но если подразумевается написание именно web-клиента, то изучение JS займет меньше времени, чем бесплодные попытки использовать неподходящий инструмент.
    Ответ написан
    1 комментарий
  • В чём проблема с кодом из книги М.Саммерфилда?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Меня всегда это поражало: зачем люди покупают книги, состоящие из скриншотов, листингов и воды? Вот прямо даже интересно. Стоимость - кошмарная: от 1 до нескольких тысяч. Без гарантии, что осилишь и что это пригодится. Одноразовый, по сути, продукт - если осилишь, то, скорее всего, больше к этому не вернёшься...

    Есть, конечно, "Искусство программирования", Драконова книга и т.д. Но их не много.

    А тут - в книге Python 3.0 и очень странные примеры. Про то, как чуть ли не руками читать/писать XML. Длиннющие портянки кода... Это примеры для начинающего? Зачем? Для профессионала? Он и сам разберется...

    Мой совет - бросай это дело. Если с основами языка разобрался - попроходи https://checkio.org/
    Попробуй порешать практические задачки в той области программирования, в которую нацелился (web, ml, gui big-data и т.д.) Найди интересные проекты тебе проекты на github и разоберись как работает, что можно улучшить...
    Реальная практика всегда лучше выдуманной (из 2009 года :-) )

    Прошу прощения, если резко...
    Ответ написан
    Комментировать
  • Почему на операторе elif выдает ошибку синтаксиса?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    elif Otvet == N:
        j=j+1
         import random
           matrix = [[random.randrange(1,100) for y in range(M)] for z in range(M)]
            for im in range(M): print(matrix[im])

    По идее ошибка из-за неверных отступов в строках import random и далее.
    Ответ написан
    Комментировать
  • Как расформировать адрес?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    согласен с Evgen
    Спроси у гугеля:
    https://maps.googleapis.com/maps/api/geocode/json?key=<ключ_получить_не_сложно>&sensor=false&address=Череповец,%20район%20Индустриальный,%20Вологодская%20область,%20улица%20Маяковского,%209

    Хотя в принципе бардак непобедим - последнюю твою строку не осилило.
    Ответ написан
    Комментировать
  • Как лучше обрабатывать исключения?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Пусть weight это ключ в некотором data, тогда:
    if 'weight' in data:
        for w in data['weight']:
            t = w['type']
            # и т.д.

    Если weight пустой, то цикл не выполнится.
    Так что тут никаких проверок/исключений не надо - у тебя сам ключ - проверка, поскольку это список, который или пустой или нет.
    Ответ написан
    1 комментарий
  • Уязвима ли эта Captcha?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Лучше уж что-то осмысленное: "Сто двадцать пять плюс три", "Сдвиньте красный слайдер", "Как пишется 'не' с глаголами" :-)
    Ну и следи за тем, что передаёшь в подтверждение выбора - именно в этот момент легче всего перехватить/проанализировать/подставить.
    Замечание Алексей Черемисин тоже не забудь учесть.
    Ответ написан
    Комментировать
  • Можете ли вы доходчиво объяснить действие цикла for?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    "Для каждого элемента заданной последовательности выполнить указанное действие"
    Как-то так...
    Ответ написан
    Комментировать
  • Игры на python и kivy, чем пользоваться?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Вот игрушка, к примеру, на Kivy написана:
    https://play.google.com/store/apps/details?id=rock...

    Так что всё можно. Была бы голова на плечах. Судя по вопросу - рано пока Kivy трогать - надо просто на Python научиться программировать. Если Курсы прошёл/книжку какую прочитал - пройди хотя бы пару островов на checkio.org
    Потом уже попробуй с GUI библиотеками разбираться. Хотя лучше сначала что-то без GUI поделать - боты, web...
    Ответ написан
    1 комментарий
  • PyCharm и бесплатное использование в коммерческой разработке?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    Тут, как мне кажется, происходить путаница понятий. Лицензия Apache2 относится к коду IDE. Т.е. ту часть кода, которая открыта под этой лицензией можно в соответствии с ней использовать (в своих проектах, к примеру). Например никто не мешает замутить свою супер-IDE на базе PyCharm CE. Для, к примеру, языка Forth. Или сделать на её основе крутой бесплатный инструмент для разработки всякого AI.

    Это всё не имеет отношения к тому, под какой лицензией будут ваши разработки. Тут надо смотреть на лицензии используемых вами библиотек и не налетать на нарушение GPL, например, используя такие либы в коммерческих продуктах с закрытыми исходниками. У QT по этому поводу, к примеру, свои правила...

    Так что не парься, reishi - твори!
    Ответ написан
    Комментировать
  • Как решить ошибку python?

    Guest007
    @Guest007
    Django, Python, Linux и всё такое...
    pip install -U certifi
    не помогло?
    Ответ написан