现在它没有在句子中的每个字母上运行该函数,然后打印出结果。
#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()
现在它没有在句子中的每个字母上运行该函数,然后打印出结果。
#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()
您需要在列表中收集函数中所有转换后的字符,然后返回:
def encoder(plain):
result = []
for i in plain:
i=ord(i)*77+4
result.append(i)
return result
return
立即退出函数,因此您的版本仅返回第一个编码值。
错误在encoder
:
def encoder(plain):
for i in plain:
i=ord(i)*77+4
return i
您应该意识到,当执行 return 语句时,执行encoder
立即结束。循环体甚至不会执行两次!因此,如果您希望 for 循环实际遍历所有数字,您将需要移动该 return 语句。在那之后,您可能会遇到另一个问题,因为 i 每一轮都被覆盖,因此您将不得不重新考虑如何完全构建您的返回值。