私はからPythonを学んでいます。Python The Hard Wayを学んでください。これは与えられた演習の1つですが、私の出力はの内容と一致しません。セクションを参照してください。ここで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()'がその値を取得する前に出力していると思います。 print文の前に余分な行を追加してみてください。 'myLine = f.readline()'、 'print line_count、myLine'です。 – 16num
print_allの出力から、 "this is line1"と "this is nice line2"の間に空白行があることがわかります。これはprint_a_lineへの2度目の呼び出しで印刷しています。おそらく、いくつかの改行の変換が間違っているか、またはコピーの貼り付けエラーですか? –