我正在学Python从了解Python的艰难之路。这是给出的练习之一,但是我的输出结果与应该看到的内容部分不符。 Here is the output snap. The 2nd line is printed in number 3 and the 3rd line isn't printed at all.我在犯什么错误?
这里是我的代码:
from sys import argv
script, input_file = argv
def print_all(f):
print f.read()
def rewind(f):
f.seek(0)
def print_a_line(line_count, f):
print line_count, f.readline()
current_file = open(input_file)
print "First let's print the whole file:\n"
print_all(current_file)
print "now let's rewind, kind of like tape."
rewind(current_file)
print "Let's print three lines: "
current_line = 1
print_a_line(current_line, current_file)
current_line += 1
print_a_line(current_line, current_file)
current_line += 1
print_a_line(current_line, current_file)
是有一些问题,在我的系统readline()
?这不是第一次发生这种情况。
我跑你的代码似乎工作正常,如果我正确理解你。我运行python 2.7.12,OS Xubuntu 16.04。 – Nurjan
我认为'print_a_line()'函数在f.readline()检索它的值之前打印它的输出。尝试在打印语句之前添加一行。 'myLine = f.readline()'然后'print line_count,myLine'。 – 16num
从print_all输出中,您可以看到“this is line1”和“this is the nice line2”之间有一条空行,在第二次调用print_a_line时将打印此行。也许一些新行转换在某个时候出错了,或者复制了粘贴错误? –