Задать вопрос
  • Что эффективней, чтение из файла или массив?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вопрос не глупый а вполне себе хороший.

    Его плавное развитие приводит к концепции баз данных. Самое главное что можно сказать тезисно это
    1) Пока памяти хватает (массив) - используй смело память
    2) Диск - больше и дешевле памяти
    3) С памятью работать легко. С диском - очень неудобно и надо обрабатывать IOExceptions почти всегда.
    Диски внезапно полны сюрпризов. Могут быть сетевыми дисками.
    4) Разные диски имеют скорость на порядки разную.
    5) Диски ведут себя очень плохо на random access. От этого даже метрика IOPS появилась.
    Ее очень любят обсуждать админы баз данных.
    6) Существуют структуры данных которые спецом создавались только для дисков (B+Tree)
    7) Диск - переживает выключение питания.
    8) Самые разумные решения - сочетают в себе и диск и память в тех частях кода где это нужно.
    9) Есть интерфейсы программирования которые виртуализирут диск как память. Этим пользуется
    SQLite например.
    10) Диск может достигать очень высокой последовательной скорости чтения или записи в файл
    при условии отсутствия конкурирующих записей в данный момент. Этим пользуются в БД
    для журналирования событий.

    В принципе если современный программист просто будет использовать только оперативную память
    то никто ему не сможет ударить по рукам или подойти с какой-то метрикой и чего-то там измерив
    сказать что он неправ. Тут уж только падения по OOM и потери информации и performance issues
    могут быть каким-то значимым аргументом.
    Ответ написан
    3 комментария
  • Как вывести значение вместо адреса объекта в памяти?

    @va_k
    Поправил amount_file_string. Эта функция по вашей задумке принимает список строк, а вы передаёте туда строку. Советую пользоваться pycharm.
    import os
    
    
    def catalog_search(path_to_catalog: str) -> list[str]:
        fl_lst = []
        directory_ = os.walk(path_to_catalog, topdown=True)
    
        for address, dirs, files in directory_:
            for name in files:
                fl_lst.append(os.path.join(address, name))
    
        return fl_lst
    
    
    def amount_file_string(list_: list[str]):
        for i_file in list_:
            try:
                with open(i_file, 'r') as f:
                    amount = f.readlines()
                    yield len(amount)
    
            except FileNotFoundError:
                print(f'Файл не найден: {i_file}')
    
    
    catalog = 'L:\\28.Python\\Python_Basic\\Module14'
    
    file_list = catalog_search(catalog)
    file_strings = (file_num for file_num in amount_file_string(file_list))
    
    print(f'Найдено {len(file_list)} файлов в каталоге {catalog}.')
    
    for i_value in file_strings:
        try:
            print(f'Количество строк в файле {i_value}')
        except StopIteration:
            pass
    Ответ написан
    7 комментариев
  • Почему разные результаты тестирования прокси?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    таймаут поставь побольше

    но если это не покупные - ратио 49/50 нереальное, а вот 21/5000 - как раз
    Ответ написан
    4 комментария
  • Как запустить свой профиль firefox selenium?

    @rPman
    options.add_argument('-P имя_профиля');
    так же попробуй --profile путь_до_профиля

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

    includedlibrary
    @includedlibrary
    Можно добавить в место вызова проверку:
    if letter_func(str) == '':
        big_nmbr(str)


    Или добавить в big_nmbr блок try:
    def big_nmbr(string):
        try:
            lst = string.split('.')
            lst = [int(i) for i in lst]
            nw_lst = []
    
            for num in lst:
                if num > 255:
                    nw_lst.append(num)
    
            return nw_lst
        except ValueError:
            return []
    Ответ написан
    Комментировать
  • Почему не происходит замена символов в тексте?

    @igor6130
    Пользуйте встроенными возможностями языка.
    user_text = input('Введите текст: ')
    
    colon = ':'
    semicolon = ';'
    
    replace_count = user_text.count(colon)
    
    res_text = user_text.replace(colon, semicolon)
    
    print(res_text)
    print('Количество замен ', replace_count)
    Ответ написан
    Комментировать
  • Как посчитать количество одинаковых цифр в 4-х значном числе?

    a777mp198
    @a777mp198
    Python developer
    (Ответ сгенерирован искусственным интеллектом!)
    Вы можете решить эту задачу, преобразовав каждое число в строку, а затем использовать метод count() для подсчета количества вхождений каждой цифры. Затем можно проверить, есть ли у числа три одинаковых цифры, используя условие if. Например:
    num_1 = 1000
    num_2 = 2600
    
    for i in range(num_1, num_2 + 1):
        s = str(i)
        for c in s:
            if s.count(c) == 3:
                print(i)
                break

    Здесь мы проходимся по каждому числу i в диапазоне от num_1 до num_2, преобразуя его в строку s. Затем мы проходимся по каждой цифре c в строке s, и если c встречается в строке s три раза, мы выводим число i и переходим к следующему числу. Обратите внимание, что мы используем оператор break, чтобы выйти из цикла, когда мы находим число с тремя одинаковыми цифрами, потому что дальнейший поиск в этом числе бессмысленен.
    Ответ написан
    9 комментариев
  • Как определить максимальное число не используя функцию max?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Это очень простая задача.
    Создаете переменную для ответа. Помещаете туда первую найденную цифру в вашем числе. Следующую найденную сравниваете со значением в переменной и, если новая цифра больше той, что в переменной, присваиваем в переменную новую цифру, иначе ищем следующую.
    Когда число исчерпается, в переменной останется значение максимальной цифры.

    Ну и на сладкое - вы получаете из input строку. Просто перебирайте её циклом и каждый следующий элемент превращайте в int. Это вместо шаманства с делением на 10 и остатков.
    Ответ написан
    9 комментариев
  • Как перенести часть строки в notepad ++?

    @StockholmSyndrome
    ^(.*?) ([A-ZА-ЯЁ])(.*)$ заменить на $1\n$2$3
    Ответ написан
    Комментировать