Назначение массива из другого массива [Проблемы с шифрованием] - PullRequest
0 голосов
/ 05 октября 2018

Мой код [Относится только к функции 'EncryptString']:

from tkinter import *
import time

c = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]
nc = ["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""]
al = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"]
at = ["b","m","f","s","c","v","e","l","d","n","t","a","w","g","p","o","r","q","k","h","u","x","i","y","j","z"]

def GoE():
    EnteredText = (e1.get())
    if EnteredText != ".!entry":
        print("Encrypting")
        #try:
        print(EnteredText, e1)
        print("Attempting to Encrypt")
        EnteredText.lower()
        c[0], c[1], c[2], c[3], c[4], c[5], c[6], c[7], c[8], c[9], c[10], c[11], c[12], c[13], c[14], c[15], c[16], c[17], c[18], c[19], c[20], c[21], c[22], c[23], c[24], c[25], c[26], c[27], c[28], c[29], c[30], c[31] = EnteredText
        EncryptString()


def Encrypter():
    print("Encrypter Selected")
    screen2.title("Encrypter")
    a = Label(screen2, text="Text to be Encrypted (SUM OF CHARACTERS MUST BE 32)").grid(row=1, column=0)
    e1.grid(row=2, column=0)
    button2 = Button(screen2, text="Enter", command=GoE).grid(row=3, column=0)

def EncryptString():
    count = 0
    letterPos = 0
    poo = 0
    print('1')
    test2 = 0
    while test2 <= 31:
        print(c[test2])
        test2 = test2 + 1
    time.sleep(10)
        while poo <= 31:
            while count <= 31:
                print(str(count))
                if c[count] == al[letterPos]:
                    nc[count] = at[letterPos]
                    print('1.3')
                    print(nc[count])
                else:
                    if letterPos == 25:
                        print('Alphabet Completed')
                        letterPos = 0
                    else:
                        letterPos = letterPos + 1
                        print('1.2')
                count = count + 1
                print('Count = ' + str(count))
            count = 0
            poo = poo + 1
        test = test + 1
    num = 0
    while num <= 31:
        print(nc[num])
        num = num + 1





MenuScreen()

Основные строки, которые вызывают ошибку:

        while poo <= 31:
            while count <= 31:
                print(str(count))
                if c[count] == al[letterPos]:
                    nc[count] = at[letterPos]
                    print('1.3')
                    print(nc[count])
                else:
                    if letterPos == 25:
                        print('Alphabet Completed')
                        letterPos = 0
                    else:
                        letterPos = letterPos + 1
                        print('1.2')
                count = count + 1
                print('Count = ' + str(count))
            count = 0
            poo = poo + 1
        test = test + 1

Лично я думаю, что это что-тоделать с:

if c[count] == al[letterPos]:
    nc[count] = at[letterPos]

Он должен зашифровать 32 символа текста и распечатать их в конце.Текст, который я пытаюсь зашифровать, это «abcdefghijklmnopqrstuvwxyzssssss», он зашифрует «a» и напечатает «b», зашифрует «ssssss» и выведет «kkkkkk».Остальное просто распечатывается как '' (пробел).Вы можете использовать любой из патчей кода, чтобы попытаться обнаружить проблему.Я пытался найти проблему в течение нескольких дней, но не могу решить ее.Буду очень признателен.Я не знаю, правильно ли я к этому отношусь или просто немного глупый.Может быть, будет проще начать все заново.Я думаю, что я не зацикливаюсь / зацикливаюсь, и что он перебирает только одну букву на каждый введенный символ.Мой вопрос в основном, я на правильных линиях?и есть ли какие-то улучшения, чтобы он работал?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...