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

    Ternick
    @Ternick
    Мой вариант:
    CODE

    def main():
    	list_from_line = []
    	with open("input.txt") as f:
    		for line in f:
    			list_from_line += line.lower().strip().split()
    
    	unique_keys = set(list_from_line)
    
    	top = {
    		key: list_from_line.count(key) for key in unique_keys
    	}
    
    	max_count = max(top.values())
    
    	top_items = [item for item in top.items() if item[1] == max_count]
    
    	result = min(top_items, key = lambda x: x[0])
    
    	print(f"{result[0]} {result[1]}")
    
    if __name__ == "__main__":
    	main()



    Не претендую на понятность)
    Так как обычно пишу код стараясь использовать уже готовые функции.
    Думаю работает.

    Результат первого теста:
    abc 3
    Результат второго теста:
    u 11

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

    Ternick
    @Ternick Автор вопроса
    Ага, понятно
    https://habr.com/ru/post/425151/
    Ответ написан
    Комментировать
  • Как реализовать прогрессбар при обработке файла в Python?

    Ternick
    @Ternick
    Вообще на самом деле так себе идея, но вам виднее)

    В любом случае нужно знать количество строк в файле, поэтому, самый простой вариант, что я знаю, такой:
    Code

    from tqdm import tqdm
    
    with open("test.txt") as file:
    	num_lines = sum(1 for line in file)
    
    	file.seek(0)
    
    	with tqdm(total = num_lines) as pbar:
    
    		for line in file:
    			a = str.strip(line)
    			h = func_1(a)
    			func_2(a, h)
    			
    			pbar.update(1)

    В целом на stackoverflow, есть целая статья, где рассматриваются разные варианты получения количества строк в файле, можете выбрать более оптимизированный, если этот вам не подойдёт.

    Документация относительно tqdm.
    Ответ написан
    4 комментария
  • Как узнать на сколько пикселей отличаются друг от друга фотографии в python?

    Ternick
    @Ternick
    Используйте модуль PIL.Image,
    КУСЬ


    Как-то так
    from PIL import Image
    
    img = Image.open("sample.png")
    
    width, height = img.size
    
    print(width, height)#ширина и высота соответственно
    Ответ написан
  • Как исправить ошибку на страницы при работе webdriver?

    Ternick
    @Ternick
    Никак, дело далеко не в selenium, дело в работе сайта и его внутренних скриптах. Обычно такие ошибки, редко являются критичными для пользователя, т.е. основная функциональность не пропадает.

    Вот моя консоль после загрузки сайта.
    КЛАЦ
    imagea7ac1f99de56f1c5.png


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

    Ternick
    @Ternick
    Ну что же)
    Я внесу тоже свой вклад)

    Антивирусам не очень нравится сам питон, а не ваш код. В своё время этот интерпретатор засветился в разных вспышках вирусной активности, следы этого до сих пор преследуют его)

    Учитывая то, что исполняемый файл, который был упакован какими-то внутренними решениями, по типу (cx_freeze, pyinstaller, py2exe and etc.) по сути является архивом, в котором лежит сам питон, библиотеки и ваш код в формате .pyc(py compiled).

    Если ближе к телу, это ложные срабатывания, их никак не избежать, смиритесь или бегите в другой яп, к слову сама идея, переносить змеиные исходники в виде exe очень плоха, питон не совсем нужен для этого)

    Соглашусь с MichaelMih, как вариант использовать альтернативные питоны(cython, ironpython, jython and etc.).

    Надеюсь вам помог мой ответ)
    Ответ написан
    2 комментария
  • Почему не парсится дата из email?

    Ternick
    @Ternick Автор вопроса
    Гугл)
    from dateutil.parser import parse
    Ответ написан
    Комментировать
  • Как узнать ID последнего сообщения pyTelegramBotAPI?

    Ternick
    @Ternick
    1) Какой вообще messages.sendMessage, нет такого и никогда не было, есть только bot.send_message, причём bot = TeleBot(config["apiKey"], threaded = False).
    2) bot.send_message возвращает всякий хлам, id только что отправленного сообщения в том числе.
    @bot.message_handler(commands=['start'])
    def start(message):
    	print(bot.send_message(message.chat.id, "tess").message_id)
    Ответ написан
    Комментировать
  • Проблемы при попытке получить письма с pop.yandex.by?

    Ternick
    @Ternick Автор вопроса
    Фишка в том, что msgnum представлена в byte, а нужно в int, вот и весь вопрос.
    FIX

    def main(email, password):
      pop = POP3_SSL("pop.yandex.by")
      pop.user(email)
      pop.pass_(password)
      response, lst, octets = pop.list()
      print(response, lst, octets)
      for msgnum, msgsize in [i.split() for i in lst]:
        (resp, lines, octets) = pop.retr(int(msgnum))
        msgtext = "n".join(lines) + "nn"#Нужно отлаживать, тут бред происходит
        message = email.message_from_string(msgtext)# тут тоже
        print(message)
        pop.dele(int(msgnum))
      pop.quit()

    Ответ написан
    Комментировать
  • Почему функция возвращает только первую итерацию?

    Ternick
    @Ternick
    В вашем коде чёрт ногу сломит :)
    А вообще проблема в табуляции, return находиться в цикле и по этому происходит, только первая итерация.
    FIX
    def f_readlist():
        with open('flats_list') as file_flats:
            consetsen = file_flats
            s = list()# s список
            for s in consetsen:#s строка
                s = s.split()# s список
            return s
    print(f_readlist())

    Но что-то мне подсказывает ваш код всё ещё не будет работать, так как вы хотите, из-за непонятных манипуляций с переменной s.
    Ответ написан
    2 комментария
  • Как вернуть SSL контекст по умолчанию?

    Ternick
    @Ternick
    По стандарту переменная ssl._create_default_https_context хранит в себе адрес функции create_default_context из того же модуля.

    Если я всё правильно понял, вопрос решается одной строчкой кода:
    ssl._create_default_https_context =  ssl.create_default_context
    Ответ написан
    Комментировать
  • Как работает функция send_photo?

    Ternick
    @Ternick
    1) Где грамотность, почему предложение начинается с маленькой буквы и где запятые ?!
    2) Почему основной тег стоит Боты, а не питон ?
    3) Серьёзно ? tekebot ?
    4)Библиотека telebot является полностью открытой и доступна на github.
    5) Интересующую вас функцию можно найти в этом файле на гитхабе.
    6)Если вам ничего не понятно, а так скорее всего, следует понять, что писать телеграмм ботов обойдя хотя бы месяц обучения основам языка, а не идти сюда и задавать вопросы не имеющие особого смысла.
    Ответ написан
    Комментировать
  • Почему не получается спарсить информацию с сайта?

    Ternick
    @Ternick
    Проблема в куках, без них сайт отказывается работать, а на этом сайте куки устанавливаются js, которого в питоне нету, как вариант вручную прописывать кукис (__atuvs), я немного потыкал и пришёл к выводу, что проверяется только его наличие, а содержимое нечто случайное.

    Как вариант:
    import requests
    import time
    from bs4 import BeautifulSoup as BS
    
    phone = input("phone: ")
    
    num_name = []
    phone_ow = requests.get(f'https://phonebook.space/?input={phone}', cookies={"__atuvs":""}).text
    content = BS(phone_ow, 'html.parser').find('div', class_='results')
    for i in content.find_all('li'):
      num_name.append(i.text.strip())
    name = ', '.join(num_name)
    
    
    print(name)
    Ответ написан
    Комментировать
  • Ошибка в Pygame: AttributeError: 'str' object has no attribute 'image'. Что делать?

    Ternick
    @Ternick
    Ошибка возникает в методе create класса Wall:
    class Wall(pygame.sprite.Sprite):
        def init(self):
            pygame.sprite.Sprite.__init__(self)
            self.fill(BLACK)
            self.rect = self.image.get_rect()
            self.rect.center = (WIDTH / 2, HEIGHT / 2)
        def create(self,colour,x,y):
            self.image.fill(colour) #Тута
            self.rect.y = y
            self.rect.x = x   
            self.rect.width = 10
            self.rect.height = 10

    Из-за этого вызова:
    Wall.create("",GREEN,0,0)
    Потому, что кто-то полез туда, где ничего не понимает.
    self это не просто параметр, а куда более важнее, его не нужно передавать из вне. {self нужен для работы с внутренними переменными класса}

    Какие дальше ошибки посыплются - не знаю, я не ванга, а обычный человек.
    Решение:
    Идти глянуть хотя бы что-такое self и зачем он нужен.
    Заменить вызов метода create класса Wall, на этот Wall.create(GREEN,0,0).
    Ответ написан
    Комментировать
  • Когда пишу код происходит ошибка invalid syntax, что делать?

    Ternick
    @Ternick
    Запятую потерял !
    import telebot
    import config
    
    bot = telebot.TeleBot(config.TOKEN)
    
    @bot.message_handler(commands=["start"])
    def welcome(message):
    sti = open("static/welcome.webp", "rb")
    bot.send_sticker(message.chat.id, sti)
    
    bot.send_message(message.chat.id , "Добро пожаловать, {0.first_name}!\nЯ - {1.first_name}, бот созданный чтобы быть подопытным кроликом.".format(message.from_user, bot.get_me()),
    parse_mode="html")
    
    @bot.message_handler(content_types=["text"])
    def lalala(message):
    bot.send_message(message.chat.id, message.text)
    
    #RUN
    bot.polling(none_stop=True)

    Вот в этой строке (12):
    bot.send_message(message.chat.id , "Добро пожаловать, {0.first_name}!\nЯ - {1.first_name}, бот созданный чтобы быть подопытным кроликом.".format(message.from_user, bot.get_me()),
    parse_mode="html")
    Ответ написан
    2 комментария
  • Как реализовать консольный файловый менеджер на Python?

    Ternick
    @Ternick
    Понятия не имею как ты будешь вводить стрелками. Это можно как-то сделать, но в питоне я с таким не сталкивался, я только знаю что в С++ в conio.h есть метод getch, который не блокирует консоль на время ввода.

    Про пути и директорию могу сказать больше. Целый модуль os и os.path за этим и нужен. Вы в данном проекте можете использовать такие импорты, но перед этим узнайте что и как работает:
    from os import listdir # отдаёт в виде масива содержание директории которая передана первым и единственным аргументов
    from os.path import isdir # Проверяет является ли ли строка директрией, нужен из-за того, что можно создать папку test.exe, по идее файл, но на самом деле папка.

    Советую изучить эти оба модуля, в импортах я указал малую часть, того что тебе понадобится.
    Ответ написан
  • Использование dll в python как повлияет на производительность?

    Ternick
    @Ternick
    Сомнительное удовольствие так "ускорять" работу программы. Если нужна скорость, то нужно использовать низкоуровневые языки, чем ниже, тем шустрее. На мой взгляд особо ничего не изменится по скорости.
    Если хотите ускорить процесс, можно использовать потоки, асинхронность, написать приложение на C-шных языках программирования и передовать параметры нужные туда и запускать, а затем через socket, именованный канал или pipe получать результат и отображать в питоне.
    Ответ написан
  • Как вытащить json из html?

    Ternick
    @Ternick
    Нужно использовать библиотеку которая дружит с html.
    Например beautifulsoup в змейке.
    Она может достать любой текст из любого тега, даже script.
    Ответ написан
  • Что означает compare = operator. lt в данном коде? И как здесь работает оператор compare?

    Ternick
    @Ternick
    Python 3.6.6 (v3.6.6:4cf1f54eb7, Jun 27 2018, 03:37:03) [MSC v.1900 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from operator import lt
    >>> help(lt)
    Help on built-in function lt in module _operator:
    
    lt(...)
        lt(a, b) -- Same as a<b.
    
    >>>

    В документации и python говорит что, функция lt(a, b), эквивалентна a < b.
    Ещё вопросы ?
    Если ответ устраивает, отметьте ответ решением :)
    Ответ написан
    4 комментария