Функция Python, которая сохраняет вывод функции в список - PullRequest
0 голосов
/ 30 сентября 2019

Предполагается, что эта программа дает пользователю ввод данных, чтобы программа могла принимать эти входные данные, и в качестве выходных данных освобождает зашифрованный текст, сохраняя зашифрованный текст в списке, когда пользователь вводит «сохранить». Проблема здесь в том, что когда пользователь вводит сохранение, он добавляет в список только зашифрованное слово «сохранить».

alph = ['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']


def encrypt(text):
    global semi_crypt
    semi_crypt = ""

    for char in text:
        if char not in alph:
            semi_crypt = semi_crypt + char
        try:
            if char in alph:
                x = alph.index(char)
                semi_crypt = semi_crypt + alph[x + 3]
        except IndexError:
            if char == "x":
                semi_crypt = semi_crypt + 'a'
            elif char == "y":
                semi_crypt = semi_crypt + 'b'
            elif char == 'z':
                semi_crypt = semi_crypt + "c"
    return semi_crypt


print('''
This is Encrypto
''')
print('Type end to save when you are done')

while True:
    crypted_l = []
    message = input('Encrypt something: ')
    print(encrypt(message))
    crypted_l.append(encrypt(message))
    if message == 'save':
        print(f"{'Saved:'}{crypted_l}")
        break

1 Ответ

0 голосов
/ 30 сентября 2019

Переместить crypted_l из цикла следующим образом:

crypted_l = []
while True:
    message = input('Encrypt something: ')
    print(encrypt(message))
    crypted_l.append(encrypt(message))
    if message == 'save':
        print(f"{'Saved:'}{crypted_l}")
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...