2

http://learnpythonthehardway.comの追加の質問に取り組んでいました。ファイルを開いて読み取るプログラムを作成した後、それを変更して open コマンドにモードを追加しようとしました。Noneしかし、それを行うたびに、ファイルの内容と同様に返されます。

コードは次のとおりです。

from sys import argv

script, filename = argv

txt = open(filename, "r")

print "Here's your file %r:" % filename
print txt.read()
print txt.close()

print "Type the filename again:"
file_again = raw_input("> ")

txt_again = open(file_again, "r")

print txt_again.read() 
print txt_again.close()

これが出力されるものです:

$ python ex15.py filey.txt
Here's your file 'filey.txt':
whatever
None
Type the filename again:
> filey.txt
whatever
None

スラッシュは行間にあります。

指定しないと、python がNone自動的に戻ることを説明する質問を見つけました。ただし、代わりに、または print に加えて return コマンドを使用しようとすると、定義が必要になります。定義を追加すると、残りのコードが機能しなくなります。どうすればこれを取り除くことができNoneますか?

また、「r」モードでは表示されるが、モードなしでは表示されない理由を誰かが説明できれば幸いです。

4

1 に答える 1

6

Python では、すべての関数が値を返します。の結果を出力すると、次のtxt.close()ようになりますNone

print txt.close()

ステートメントを削除するだけでprint問題ありません。

txt.close()
于 2013-06-08T01:44:21.063 に答える