• Ошибка при сложении матриц?

    Vindicar
    @Vindicar
    RTFM!
    У тебя в matrix_1 будут строки, а не числа.
    Ответ написан
    1 комментарий
  • В чем проблема работы данного кода?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Представьте. что у вас уже есть на текущий момент самое большое и предыдущее самое большое число из всех, что попадались до сих пор. И вот вы нащли число, которое больше самого большого. Очевидно. что предыдущее самое большое надо подвинуть, а вы этого не делаете.

    Такие задачи проще всего решать начиная со штатной ситуации, а потом отрабатывать исключенияи специфические кейсы.
    Нарисуйте цепочку чисел, укажите стрелочкой на текущее и для этой позиции вручную найдите саоме большое и предыдущее. Потом подумайте какие будете делать операции.
    Ответ написан
    1 комментарий
  • Встречаются ли задачи с шахматами в практике?

    Только если разрабатываете шахматную программу :)
    Ну или если задача сводится к схожим алгоритмам (например работе с графами)
    Ответ написан
    Комментировать
  • Может кто-то простыми словами пояснить как работают эти строчки кода?

    fox_12
    @fox_12 Куратор тега Python
    Расставляю биты, управляю заряженными частицами
    1. Cортируем список
    2. Берем элемент посредине списка
    3. Сравниваем с искомым
    4. Если искомое равно элементу - ура - нашли
    5. Если искомое больше элемента, то слева от элемента искать смысла нет - там числа заведомо меньшие - берем часть списка справа от элемента - с позиции +1 и до конца
    6. Если искомое меньше элемента, то справа от элемента искать смысла нет - там числа заведомо большие - берем часть списка слева от элемента - от начала и до позиции -1 до элемента
    7. Повторяем процедуру с шага 2 с новой частью списка.

    [1, 3, 5, 6, 6, 6, 7, 70] 
     0, 1, 2, 3, 4, 5, 6, 7   # позиции элементов
    элемент посредине - это 6 на позиции 3.
    
    Сравниваем с 20. 20 больше 6
    
    Значит слева от 6-ки смотреть числа смысла нет - это числа [1, 3, 5].
    
    Сама 6 тоже не нужна - мы ее уже сравнили с искомым и уже узнали что это не то число.
    
    Значит берем часть списка справа - 
    с позиции +1 - то есть с 4-й позиции и до конца - [6, 6, 7, 70]
    
    и т.п.

    Так понятно?
    Ответ написан
    5 комментариев
  • Как добавить словарь в файл через модуль pickle?

    Vindicar
    @Vindicar
    RTFM!
    Ну для начала я бы посоветовал использовать json вместо pickle. pickle даёт бинарную строку, которая нечитаема человеком. Кроме того, как написано большими красными буквами в доках на pickle, он имеет уязвимости, так что ни в коем случае нельзя передавать через него недоверенные данные.

    В коде много кривых вызовов не по делу.
    ff = open(file_name, 'rb')
    baza = {ff}

    Что сиё должно означать вообще? Ты создал множество из одного элемента - файлового объекта ff. Или ты ожидал, что это магически превратит файл в словарь?
    Как правильно:
    import json 
    #оператор with обеспечит закрытие файла, как только управление покинет тело оператора
    #явное указание кодировки подстрахует от получения "кракозябр" на выходе
    #Кодировка utf-8 позволит использовать символы любых алфавитов.
    with open('Список.txt', 'rt', encoding='utf-8') as ff:
        baza = json.load(ff)

    Далее.
    baza.update({users_name.title():users_numbe})
    Зачем? Почему не написать просто:
    baza[users_name.title()] = users_numbe
    Далее.
    f.close
    Ты взял адрес метода close у объекта f. Ты НЕ вызвал метод close. Чтобы метод вызвать, нужно указать круглые скобки. Впрочем, если используешь with, то он вызовет close() за тебя.
    Так что:
    with open('Список.txt', 'wt', encoding='utf-8') as ff:
        json.dump(
            baza, #что записываем
            ff, #куда
            ensure_ascii=False, #не ASCII-строки пишем как есть, без кодирования
            indent="    ", #сделать отступ, не писать всё в одну строку
            sort_keys=True, #отсортировать ключи по алфавиту
        )

    Остальное примерно так.
    Ответ написан
    Комментировать