Python 如何使这个main()与我的编码器()一起工作?
现在它不是在句子中的每个字母上运行函数,然后打印结果Python 如何使这个main()与我的编码器()一起工作?,python,function,encryption,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() 您需要在列表中收集函数中所有
#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语句。在此之后,您可能会遇到另一个问题,因为我每一次都被重写,所以您必须重新思考如何构造您的返回值。这是因为您在for循环的第一次迭代中返回,您可以考虑<代码>收益率< /代码> < <代码> > <代码>循环的每一个结果。@ JonathonReinhart:是的,在编程之初就教人如何使用生成器可能不是最好的主意?@MartijnPieters True,这就是为什么我没有用它回答问题的原因。可能还需要返回字符串,而不是列表。这就是我们需要知道的'.join()
方法。@alko:OP问了一系列问题;我们将担心在其他时间将这些值转换回字符串。