Задать вопрос
Ответы пользователя по тегу Python
  • Error: User must grant an access to permission 'VALUABLE_ACCESS?

    Le-han, во-первых пользователя с таким id нет в одноклассниках.
    Попробуйте выполнить свой код, добавив любой id c существующим пользователем.
    Например, с таким - 456544469248
    Ответ написан
    Комментировать
  • Как вставить предложение в строку в определенном месте?

    ekzotika, в функцию find можно передавать аргументы.
    Попробуйте, так (из кода можете удалить всё, что закомментировано):
    link = """
    <a href="//gifts.ru/catalog/model-futbolka-imperial">Imperial 190</a> — модель премиум-класса, 
    украшение любой акции и достойный персональный подарок.  
    Мягкая, удобная плотная футболка, с воротником, защищенным от деформации. 
    Отлично держит форму и идеальна для нанесения логотипа. 
    Отсутствие боковых швов позволяет наносить изображение практически по всей поверхности.<br>
    """
    my_text = "[КАКОЙ-ТО ТЕКСТ ДЛЯ ВСТАВКИ]"
    
    
    def func_paste_text(link, my_text):
        # список переменных:
        # link: str - переменная, которая содержит текст (ссылку)
        # dlen: int - для записи длины всего текста (всей ссылки)
        # ind: int - для записи номера (позиции), на которой стоит точка
        # my_text: str - текст, который нужно вставить
        # new_link: str - новая ссылка
        if link and my_text:
            # так как первая часть ссылки всегда повторяется
            # то искать точку можно не сначала, а через... 21 символ и до конца строки
            # <a href="//gifts.ru/ - её длина 21 символ
            dlen = len(link)
            ind = link.find(".", 21, dlen)
            new_link = link[0:ind+2] + my_text + link[ind+1:dlen]
            return new_link
    
    print(func_paste_text(link, my_text))


    P.S. можно привязаться к закрывающему тэгу '/a'. Посчитать его позицию и уже считать не от 21-го символа, а от позиции закр.тэга.
    Ответ написан
    Комментировать
  • Нужно ли стажеру/джуну знать и/или использовать в Python аннотации типов?

    mkone112, поделюсь своими соображениями.
    Более года пишу на Python3 и недавно в докладе bobuk (в коде) увидел аннотацию типов. Загорелся и стал её использовать. Но, спустя время, понял, что для меня аннотация сильно загромождает код и никак не облегчает работу с ним. Перестал везде "пихать" аннотацию.
    Мои личные выводы:

    I. Сильно страдает читаемость.
    Аннотация не сделает код лучше, это не панацея. Я просто учу язык и программирую. Пробую всякие штуки, что-то входит в повседневную практику, а что-то отваливается (как грязь на одежде, высохла и сама отвалилась).

    II. Допускаю, что в дальнейшем аннотация может пригодиться.
    1. Бывает так, что ты открываешь свой код через полгода и ... глаза кровоточат. Что это? Зачем это? Тут кому-то может помочь аннотация типов. Лично мне помогает правильное наименование переменных, структур и функций. Например, при написании кода всегда к имени функции можно добавить func_, к имени списка - l или list и т.д.
    2. Ещё есть предположение, что аннотация используется в процессе тестирования. Сейчас мне это видится так - весь код (весь проект) оборачивается в некую библиотеку (pytest) и перед продакшеном тестируется на ошибки. Вот тут срабатывает магия и помогает аннотация типов. Но пока это только мои размышления, так как я НОЛЬ в тестировании.
    3. Пока я ещё не погрузился в ООП, только собираюсь изучать. Но местами в коде видел, что при разработке класса используется аннотация. Мне показалось, там она прямо на своём месте, очень удобно.

    В целом для себя я:
    - понял как она работает,
    - поверхностно изучил синтаксис,
    - в своём коде пока не использую,
    - зато теперь, когда вижу код с аннотацией типов, не пугаюсь и понимаю - ага вот здесь аннотация
    - как только пойму в каких местах она нужна, сразу стану её использовать
    Ответ написан
    1 комментарий
  • Как удалить элемент из списка в Python?

    FellowT, у Вас список состоит из списков.
    Каждый элемент Вашего списка - отдельный список.
    Таким кодом не проверить... Нужно выполнить перебор всех элементов списка
    shop = [['картофель', 100], ['хлеб', 36], ['кефир', 30]]
    print('Что вы хотите удалить?')
    a = input()
    for i in range(len(shop)):
        if shop[i][0] == a:
            shop.remove(shop[i])
            print(shop)
            break
    else:
        print('Его нет')
    Ответ написан
  • Не получается установить pip install sd?

    Yukov, проверь свою версию Python и сравни с документацией к модулю (на офсайте).
    Вдруг ты используешь 3.8, а модуль написан под 3.7/3.6/2.X или наоборот.
    Ответ написан
  • Как парсить строки с помощью Python?

    A1K0, добро пожаловать в дивный мир распарсивания адресов)
    Это "кроличья нора".
    В идеале адреса в базу данных должны писаться через справочники (КЛАДР, ФИАС): выбираешь из словаря город, потом улицу и т.д.
    Если же у тебя адрес зашит в одну строку, в одно текстовое поле в БД, то пользователи могут писать адрес всевозможными способами. Часто имеют место ошибки в написании улиц, использование черточек, дефисов, дробей, запятых, точек с запятой. Если база содержит сотни тысяч записей, то выверить все ошибки будет очень долго и муторно.
    Если адрес строго формализован, то проблем почти нет. Парсишь через разделитель.
    Но перед этим советую посчитать число этих разделителей в каждой строке. Может оказаться так, что у тебя в одну запись попали два адреса (регистрации и фактического проживания).
    list_address = ["Киевская обл. , г. Киев, ул. Крещатик, дом 10, кв. 8",
                    "Киевская обл. , г. Киев, ул. Крещатик, 2, 12",
                    "Киевская обл. , г. Киев, ул. Крещатик, д.20, кв.118",
                    "Киевская обл. ; Киев; Крещатик; 50-8",
                    "Киевская обл. , г. Киев, пл. Незалежности, д.12-а, строение 3, помещение 8, офис. 33",]
    
    
    for adr in list_address:
        # допустим разделитель запятая
        # и корректный адрес должен состоять из 5 частей
        region, city, street, house, flat = "", "", "", "", "",
        if adr.count(",") == 4:
            adr = adr.split(",")
            region = adr[0]
            city = adr[1]
            street = adr[2]
            house = adr[3]
            flat = adr[4]
        print(region, city, street, house, flat)
    
    # распарсятся три адреса и пяти:
    # Киевская обл.   г. Киев  ул. Крещатик  дом 10  кв. 8
    # Киевская обл.   г. Киев  ул. Крещатик  2  12
    # Киевская обл.   г. Киев  ул. Крещатик  д.20  кв.118
    Ответ написан
    Комментировать
  • Есть ли в Python библиотека или встроенный метод, который считает кол-во строк(\n) в строке(" ")?

    toshk9, вот так тоже можно:
    >>> a = """ добрый день
    ... сейчас я на работе
    ... освобожусь позже
    ... и перезвоню
    ... """
    >>> c = a.count("\n")
    >>> c
    4
    >>>
    Ответ написан
    Комментировать
  • Могу ли я так сделать?

    nnikolyaa, попробуй вместо execute() использовать метод executemany() или executescript()
    Ответ написан
    Комментировать
  • Как написать парсер в который вы вводите данные?

    Joulence мысль такая:
    import requests
    from bs4 import BeautifulSoup
    
    url1 = 'https://vstup.osvita.ua/y2020/r27/82/706500/'
    
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}
    cs = requests.get(url1, headers=headers)
    
    # допустим фамилия вот такая
    lname = "Сокол"
    
    soup = BeautifulSoup(cs.content, 'html.parser')
    table = soup.find("table", {"class": "rwd-table"})
    
    list_family = []
    for tr in table.find_all("tr", {"class": "rstatus6"}):
        for td in tr.find_all("td"):
            if td["data-th"] == "ПІБ":
                list_family.append(td.get_text())
    # print(list_family)
    # print()
    
    result = []
    for family in list_family:
        # print(family)
        print(family.lower().split(" ")[0])
        if lname.lower() in family.lower().split(" ")[0]:
            print("ok")
            result.append(family)
    
    print("=="*30)
    if len(result) > 0:
        print(result)
    else:
        print("Такой абитуриент не найден")
    Ответ написан
    Комментировать
  • Проблемы в коде на Python?

    Staffic Доброго времени суток!
    Для начала сделай отступы в своём коде.
    А потом ты ошибся в последней строчке. Сравни свой код и код из книги.

    def create_map():
        global obstacles
        locations = []
        for i in range(10):
        row = random.randint(0, 9)
        col = random.randint(0, 9)
        location = [col * 64 + 20, row * 64 + 20 + 640]
        if not (location in locations):
            locations.append(location)
            type = random.choice(["tree", "flag"])
            if type == "tree": img = "skier_tree.png"
            elif type == "flag": img = "skier_flag.png"
            obstacle = ObstacleClass(img, location, type)
            obstacles.add(obstacle)


    Вот здесь есть код из книги и все файлы.
    Ответ написан
    Комментировать
  • Почему у меня происходит ошибка после создания .exe из .py?

    Скорей всего ты используешь иконку к программе и после создания exe-шника её нужно положить рядом с ним.

    Запускающий файл не находит её и вызывает ошибку.
    Ответ написан
    Комментировать
  • Как активировать виртуальное окружение python 3.7 в windows 7?

    Для создания приложений и проектов, а также для работы с виртуальным окружением лучше всего использовать PyCharm Community Edition.
    Ответ написан
    Комментировать
  • Здравствуйте, писал приложение на Tkinter, создал функцию, в итоге ошибка, как нужно убирать лишние табы/пробелы? или как нужно было нагуглить?

    def check(event):
        # L = login.get()
        # P = password.get()
        login = login.get()
        pwd = password.get()
    
    
        # проверка на заполненность
        if not login and pwd:
            messagebox.showerror('Error 0x1', 'Введите логин!')
        elif login and not pwd:
            messagebox.showerror('Error 0x1', 'Введите пороль')
        elif not login and not pwd:
            messagebox.showerror('Error 1x1', 'Введите данные!')
        
        # валидация с базой данных
        elif login != login_in_database:
            messagebox.showerror('Error 0x0', 'Такого логина не существует!')
        elif hash(pwd) != hash(pwd_in_database):
            messagebox.showerror('Error 00x00', 'Неверный пароль')
        
        else:
            messagebox.showinfo('Success', 'Вы успешно вошли!')
    Ответ написан
    Комментировать
  • Имя модуля совпадает с именем файла. Как исправить)?

    Всё просто)

    rnd = __import__("random")
    
    print("Вывод случайного целого числа ", rnd.randint(0, 9))
    Ответ написан
  • В чем ошибка? Можите объяснить?

    Ты перебираешь циклом элементы списка, одновременно изменяя его!
    Ведь при удалении элемента из списка перестраиваются индексы всего списка, происходит смещение, сдвиг элементов.
    Это... жесть как неправильно!!!

    Можно пойти от обратного, чтобы решить твою задачу:
    a = [1, -2, 3, -4, 5, 6]
    new_a = list()
    
    for i in range(len(a)):
        if a[i] < 0:
            new_a.append(a[i])
    
    print(new_a)
    #[-2, -4]
    Ответ написан
    Комментировать
  • С чего начать изучение анализа данных python?

    Добрый день!
    В Яндекс.Практикум есть курс по аналитике данных.
    В этом курсе первый модуль бесплатный. Он поможет понять что к чему. Я начинал с него.
    Кроме этого мне понравился курс на Udemy "Парсинг и анализ данных на Python" от ITtensive. Он платный, стоит меньше 1000 рублей. Ориентирован на практику.
    Ещё я присоединился к сообществу OpenDataScience (ODS) в Slack (ссылку нашел здесь). В ODS есть целый канал (ветка), посвящённый обучению с кучей бесплатных материалов. Там же, в слаке, есть вакансии и просто море разной информации.
    Остальные многочисленные источники, книги перечислять не буду. У каждого свой путь.
    Для себя я понял, что мне сложно проходить длительные курсы по 6-18 месяцев. Мотивация снижается после второго месяца. Мне больше нравятся короткие учебные материалы.
    Ответ написан
    Комментировать
  • Как с помощью python взаимодействовать с программами windows?

    Добрый день!
    Мне помог только модуль subprocess.
    Ответ написан
    Комментировать