我一直在解决解码问题。我认为我的函数decode可以正常工作。(下面是完整的代码)但是,我不认为readline()方法不能正常工作。我应该把print(decode(line))
线放在哪里??
完整代码:
import matplotlib.pyplot as plt
import pandas as pd
def decode(encoded_str):
decoded_str = ''
for char in encoded_str:
decoded_str += chr(ord(char)-1)
return decoded_str
print(decode('Hp Jsjti')) #print Go Irish
f=open('data/secret_message.txt','r')
# read and process the file one line at a time
while True:
line = f.readline()
if line =='':
break
print(decode(line))
f.close()
我试着更换了几次线,但它没有显示任何东西。
4条答案
按热度按时间2mbi3lxu1#
您正在打印
while
循环外部的line
变量,因此它将返回undefined并且不会打印任何内容。考虑在
while
循环中打印line
变量:希望这对你有帮助!
pw9qyyiw2#
下面是一个如何读取文件并解码行的示例:
1.)使用
with
打开文件(这样,您就不必显式调用file.close
2.)不要使用
file.readline()
,直接在文件对象上搜索以获取行。3.)在
decode()
函数中,我添加了空格" "
特殊情况rvpgvaaj3#
line
变量仅在while
块中有效。只需缩进
print(decode(line))
c0vxltue4#
遍历文件以查找空字符串,然后在找到空字符串后退出循环。在最好的情况下,您最终将没有输出,因为迭代的结果将是一个空字符串。
你可能想要更像这样的东西:
或者更好: