现在它没有在句子中的每个字母上运行该函数,然后打印出结果。
#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()
答案 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语句。在那之后,你可能会遇到另一个问题,因为我每轮被覆盖,所以你必须重新考虑如何构建你的返回值。