• Как упросить запрос в Codeforces API contests.lists?

    Dmustache
    @Dmustache Автор вопроса
    Python, Cpp, SQL
    Вычислить время в unix я могу
    Ответ написан
    Комментировать
  • Как правильно импортировать файлы в Realtime Database?

    Dmustache
    @Dmustache Автор вопроса
    Python, Cpp, SQL
    Так как у меня не переменная имеет пробелы, она не дает датасету создаться
    Ответ написан
    Комментировать
  • Как показать путь к выбранному пользователем файлу?

    Dmustache
    @Dmustache Автор вопроса
    Python, Cpp, SQL
    Вот и сам ответ нашел на свой вопрос)
    Вот, что я смог воссоздать:
    command=lambda:self.stringORG.set(askopenfilename(filetypes=(('CSV file', '*.csv'))))
    Ответ написан
  • Как написать шифр Плейфера на python?

    Dmustache
    @Dmustache
    Python, Cpp, SQL
    Нам его задали, сдать надо сегодня в 22, так что свой код я не буду переписывать, вот он:
    abc = ['а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я']
    specs = ' ,.:;-!?)('
    
    
    sentense = [i.lower() for i in 'Пронеслась гроза седая']
    
    for i in specs:
        while sentense.count(i) > 0:
            sentense.pop(sentense.index(i))
    sentense = ''.join(sentense)
    
    key = 'компас'
    addSymbol = 'х'
    preList = ['','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','']
    
    for i in range(len(key)):
        preList[i] = key[i]
    
    abcWithoutKey = abc
    for i in key:
        abcWithoutKey.pop(abcWithoutKey.index(i))
    abc = ['а','б','в','г','д','е','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я']
    
    for i in range(len(key), len(preList)):
        preList[i] = abcWithoutKey[i - len(key)]
    
    codeList = [
        ['','','','','','','',''],
        ['','','','','','','',''],
        ['','','','','','','',''],
        ['','','','','','','','']
    ]
    tmp = 0
    for i in range(4):
        for j in range(8):
            codeList[i][j] = preList[tmp]
            tmp += 1
    
    del tmp, abcWithoutKey, specs, preList
    
    sentenseReacharge = []
    for i in range(0, len(sentense), 2):
        try:
            if sentense[i] != sentense[i + 1]:
                sentenseReacharge.append(sentense[i] + sentense[i + 1])
            else:
                sentense = sentense[:i + 1] + addSymbol + sentense[i + 1:]
                sentenseReacharge.append(sentense[i] + sentense[i + 1])
        except IndexError:
            sentenseReacharge.append(sentense[-1] + addSymbol)
    
    del sentense
    
    #for i in range(len(codeList)):
        #print(*codeList[i])
    
    def takeIndex(code):
        global codeList
        ans = [[i, _list.index(code)] for i,_list in enumerate(codeList) if code in codeList[i]]
        return ans
        # 1 - столбец
        # 0 - строка
    
    def Check(indexF, indexS):
        global codeList
        if indexF[0][1] == indexS[0][1]: #collumn
            (indexF[0][0] + 3) % 4, (indexS[0][0] + 3) % 4
        elif indexF[0][0] == indexS[0][0]: #line
            (indexF[0][1] + 7) % 8, (indexS[0][1] + 7) % 8
        else: #square
            buf = indexF[0][1]
            indexF[0][1] = indexS[0][1]
            indexS[0][1] = buf
        return indexF, indexS
    
    codes = []
    for code in sentenseReacharge:
        codes.append(Check(takeIndex(code[0]), takeIndex(code[1])))
    
    #print(sentenseReacharge)
    #print('строка, столбец')
    AnswerIndex = ''
    #print(codes)
    for i in codes:
        #print(i[0][0][0], i[0][0][1], i[1][0][0], i[1][0][1])
        AnswerIndex += codeList[i[0][0][0]][i[0][0][1]]
        AnswerIndex += codeList[i[1][0][0]][i[1][0][1]]
    print(AnswerIndex)

    проблема в том, что он не может расшифровать 4 символа в конце. Почему? не знаю(
    (Основная магия происходит в последних 10 ти строчках)
    Вот то, где он не расшифровывает:
    Пронесласьгрозаседая Исходная строка
    оукримзваэднадсбжевь Та, которая должна быть
    оукримзваэднадаседвь Что мой код вывел
    Ответ написан
    Комментировать