首页 > 解决方案 > 将函数的输出保存到列表中的 Python 函数

问题描述

该程序应该给用户输入,以便程序接受该输入并作为输出释放加密文本,同时在用户输入“保存”时将加密文本保存在列表中。 这里的问题是,当用户输入保存时,它只会将“保存”的加密词附加到列表中。

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

标签: pythonpython-3.xfunctionencryptionglobal-variables

解决方案


跳出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

推荐阅读