如何让main()与我的编码器()一起使用?

时间:2013-11-02 19:30:41

标签: python function encryption

现在它没有在句子中的每个字母上运行该函数,然后打印出结果。

#secret code encryptor 

def encoder(plain):

    for i in plain:
        i=ord(i)*77+4
        return i 

def main():

    plain=input('Enter a sentence: ')
    final=encoder(plain)
    print(final)

main()

2 个答案:

答案 0 :(得分:1)

您需要在列表中收集函数中的所有转换后的字符,然后返回:

def encoder(plain):
    result = []  

    for i in plain:
        i=ord(i)*77+4
        result.append(i)

    return result 

return立即退出该函数,因此您的版本仅返回第一个编码值。

答案 1 :(得分:0)

错误在encoder

def encoder(plain):

for i in plain:
    i=ord(i)*77+4
    return i

你应该意识到,当执行return语句时,encoder的执行会立即结束。循环体永远不会被执行两次!因此,如果希望for循环实际遍历所有数字,则需要移动该return语句。在那之后,你可能会遇到另一个问题,因为我每轮被覆盖,所以你必须重新考虑如何构建你的返回值。