• Как сделать удаление из .txt файла?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    my_id = '012345'
    with open('file.txt', 'r') as input_file:
        input_file = input_file.read().replace(f'{my_id}\n','')
    with open('file.txt', 'w') as output_file:
        output_file.write(input_file)

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Я тут свой велосипедик сочинил:
    велосипедик
    from pprint import pprint
    
    default = {
        'some_number': 5,
        'numbers': {
            '1': 1,
            '2': 2,
            '3': 3
        },
        'test2':
            {'test3': {'t1': 11,
                       't2': 22},
             'test4': {'tt1': 111,
                       'tt2': 222}
             },
        'additional_number': 15
    }
    
    overridden = {
        'some_number': 10,
        'numbers': {
            '1': 2
        },
        'test2':
            {'test4': {'tt1': 1111}
             },
    }
    
    
    def update_dict(default, overridden):
        for key in default.keys():
            if key in overridden.keys():
                if isinstance(default[key], dict):
                    default[key] = update_dict(default[key], overridden[key])
                else:
                    default[key] = overridden[key]
        return default
    
    
    pprint(update_dict(default, overridden))
    Ответ написан
  • Как посчитать нарастающий итог по условию?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Я уже подзабыл, но по-моему тут поможет метод .groupby()
    Ответ написан
  • Python, Threading Как создать поток с вычислением времени?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Как возникла необходимость - дергаешь now и получаешь текущее время. Только скобочки у datetime.datetime.now убери.
    Тогда у тебя будет в now не результат функции, а сама функция. Стало быть, скобочки должны переехать туда, где ты now вызываешь.
    Например:
    now = datetime.datetime.now
    print(now())
    print(now())
    Ответ написан
  • Как узнать значение ячейки на пересечении двух ячеек xls таблицы с помощью openpyxl?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Есть три пути:
    1. Средствами excel - вставить куда-то в таблицу формулу типа «суммеслимн» или «суммпроизв» с соответствующими параметрами, типа вот так:
    ws["A1"] = "=SUM(1, 1)";
    2. Загрузить таблицу в pandas, правильно указать имена колонок и индекс, и потом обращаться к dataframe по именам колонок и индексам;
    3. изобретать свой велосипед.
    Ответ написан
  • Как сгенерировать 10 паролей и всех их вывести?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Надо либо внутри функции GenerateKey генерировать список и возвращать return-ом этот список с паролями, либо убрать из функции цикл с десятком повторений и просто десять раз вызывать функцию, и получишь десять паролей по-одному.
    Ответ написан
  • Стоит ли покупать macbook pro 13 2015 взамен такого же старенького ноута?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    За такие вопросы надо наказывать. Серьезно. Ща тут опять срач разгорится.

    Моё мнение: выкапывать стюардессу (чинить старый ноут) не надо. Умерла так умерла.
    Взять ли мак 15 года? Да. Ни один ноут не даст такого комфорта. Но при трёх условиях:
    1. Не ставить туда винду, иначе потеряется изрядная часть удобства;
    2. Не ждать прям чуда из чудес. У маков достоинства во множестве мелочей, которые заметны в ходе длительной эксплуатации.
    3. Постараться отказаться от мышки. Совсем. Перейти на тачпад мака. Это непросто, но того стОит. Это как научиться кататься на велике. Сначала непонятно, как это делать, а потом непонятно, как без этого жил раньше.


    Также следует отметить, что у маков слабое место - кабель блока питания. Умирают они быстрее любых других кабелей, но сейчас есть хорошая альтернатива - блоки питания с usb-c и разнообразными переходниками. Можно подобрать вариант лучше оригинала.
    Ответ написан
  • Как написать тесты на проверку работы Яндекс.Диск REST API?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Ваш код должен при разных входных данных выдавать разные результаты, например:
    Если URL корректный, то вывод один, если не корректный - вывод другой; и таким образом каждый нюанс вашей программы может иметь один или несколько тестов, которые подают на вход программы некие стандартные корректные и не корректные данные, а потом проверяют ответы на совпадение с заданными вами.

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Коротко - сразу после получения сделать в строке замену символа "/" на "\\".
    Ответ написан
  • Неправильный сбор ноутбука или руки крюки?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Я бы рекомендовал на винтик перед откручиванием капнуть вд-шку, а до того погреть его феном или даже паяльником - от разности коэффициентов расширения при нагреве-охлаждении он может оторваться от состава, которым приклеен.

    Да, и проверить, вдруг он с обратной резьбой? :/ Dell может подлянку сделать такую...
    Ответ написан
  • Как удалить белые наросты возле кондесаторов в блоке питания?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Эти китайские сопли могут быть либо термоклей, либо силикон.

    В первом случае оно почти твердое - погреть горячим феном, пока не начнёт плавиться, потом убирать деревянной палочкой (например, палочкой для китайской еды, или палочкой для мороженого).

    Во втором случае оно мягкое, как резинка. Есть специальный щелочной состав для размягчения силикона. Им потихоньку растворять и снимать палочкой. Потом остатки химии отмыть спиртом.

    Ещё силикон можно срезать потихоньку острым канцелярским ножом. Но желательно при резке подставлять какую-то деревяшку туда, куда нож может сорваться и порезать дорожки. Это крайний случай.

    Да, ещё можно выкусывать силикон острыми бокорезами по кусочку. Главное - терпение.
    Ответ написан
  • Правильно ли я понимаю разницу между нейронной сетью и компьютерной программой?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    У программы внутре думатель. Он думает быстрее человека, иначе зачем он нужен?
    Думатель может работать либо исключительно на разработанной программистами логике и математике, либо может ещё и с применением натренированной программистами нейросети.
    Для некоторых задач логика и математика надежней, лучше и проще, а также легче перенастраивается.
    Для других некоторых задач сухая логика или плохо справляется, или требует очень много труда программистов.

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

    Как-то так...
    Ответ написан
  • Как менять что-то именно в второй строке в python?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    John Smit, начнём с того, что в Python строки не меняются.
    У вас есть длинная строка с несколькими переносами строк. Вам надо разбить эту длинную строку на части по переносам строк, получите несколько отдельных фрагментов строк в ячейках списка. В нужной ячейке (второй по счёту с начала, т.е. ячейке [1]) существующую строку заменяете на нужную.
    Потом ячейки списка собираете в новую единую строку, вставляя между ячейками перенос строки.
    У вас получится новый текст с измененной второй строкой.

    Важно, что саму вторую строку-ячейку списка надо либо вообще новую вставлять, либо так же разбирать старую и потом собирать обратно.
    Ответ написан
  • Ошибка print (res); ^ SyntaxError: invalid syntax?

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

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Перво-наперво изучить python.
    Второе - использовать список (list) или словарь (dict).
    В первом случае номера "ячеек" списка и будут этими самыми цифрами - номерами игр, а значения - что там вы хотите хранить... ссылку на игру? или что?
    во-втором случае в принципе можно ключи словаря сделать и номерами тоже, а значения - опять же то, что там хотите хранить.
    Ответ написан
  • Как рассортировать строку на словарь?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Вот накарябал без регэкспов:
    my_string = 'somefalsename Name1: Some1 somesome1 Name2: Some2 Name3: Some3 Name4:'
    
    def dict_from_string(my_string):
        my_list = my_string.split()
        my_dict = {}
        key = ''
        value = ''
        while len(my_list) > 0:
            next_element = my_list.pop()
            if ':' in next_element:
                key = next_element.replace(':','')
                my_dict.update({key: value})
                key = ''
                value = ''
            else:
                value = ' '.join([next_element, value]).strip()
        return my_dict
    
    print(dict_from_string(my_string))
    Ответ написан
  • Можно ли без проблем использовать ipad как монитор для Макбука со сломанным дисплеем?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Ipad в качестве дисплея... ну, скажем так, извернуться можно, но это очень и очень криво и косо.
    Варианты:
    • какая-либо программа дистанционного управления ноутбуком (teamviewer, например). Будет подтормаживать, но работать можно.
    • функция sidecar

    Второй вариант не пробовал. Он только для довольно новых макбуков (с 16 года).

    Если макбук старый - можно найти аналогичный ноут залитый и с него взять дисплей. Если дело не в дисплее, а в видеокарте... ну... тут печалька.
    Ответ написан
  • Как исправить ошибку Python AttributeError: 'dict' object has no attribute 'vk_api'?

    phaggi
    @phaggi Куратор тега Python
    лужу, паяю, ЭВМы починяю
    Никогда не используйте переменные list, str, dict, num и т.п. это зарезервированные имена в языке, вы их переопределили (list, в частности). Так делать нельзя (точнее, нельзя без понимания, как и зачем это делать; в общем случае нельзя).
    Если ОЧЕНЬ хочется, используйте my_list, my_str, num_of_element и т.п.
    Ответ написан
  • Какое напряжение в портах usb-c?

    phaggi
    @phaggi
    лужу, паяю, ЭВМы починяю
    Напряжение может быть различным на нескольких устройствах, подключенных к одному источнику питания, если эти устройства подключены последовательно. Но так нельзя подключать к USB-C, это невозможно.

    Если же устройства подключаются параллельно, то в зависимости от устройства хаба питание может либо тупо распараллеливаться, тогда на каждом порту хаба будет одинаковое напряжение, либо хаб (если он "умный") может раздавать каждому порту своё напряжение, которое запрашивает питающееся устройство.

    В первом случае есть шанс, что, если включить в хаб несколько устройств с разными потребными им напряжениями, они не договорятся, и источник выдаст напряжение для того устройства, которое просит большее напряжение. И оно распараллелится на все порты тупого хаба, и если туда включено что-то, рассчитанное под меньшее напряжение - оно может и "сгореть". Надо проверять, подключать тестеры (на али полно тестеров для usb-c, есть довольно умные).

    Во втором случае проблем быть не должно, при условии, что все устройства, включаемые в умный хаб, имеют с ним одинаковый протокол управления питанием. Многие протоколы частично совместимы, но это надо читать спецификации. Сейчас один из самых распространенных протоколов PD3.0
    Ответ написан
  • Как, при использовании метода pandas.read_excel(), применить аргумент converters ко всем столбцам?

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

    именно это и надо сделать - передать словарь, в котором в именах ключей названия всех столбцов или какого-то большого диапазона столбцов.
    Ответ написан