1

主な目的: テキスト ファイルからトップ スコアを読み取る関数。関数に渡されるパラメーター: テキスト ドキュメント!

def highscore():
    try:
        text_file = open ("topscore.txt", "r")
        topscore = int(text_file.read())
        print topscore
        text_file.close()
        return topscore
    except:
        print "Error - no file"
        topscore = 0
        return topscore

パラメータとしてテキストファイルを追加する方法は?

4

3 に答える 3

4
def highscore(filename):
    try:
        text_file = open (filename, "r")

tryああ、ブロックに必要以上のコードを入れるのはやめるべきです。クリーンなソリューションは次のようになります。

def highscore(filename):
    if not os.path.isfile(filename):
        return 0
    with open(filename, 'r') as f:
        return int(f.read())

または、ファイルの読み取りが失敗した場合に 0 を返したい場合は、次のようにします。

def highscore(filename):
    try:
        with open(filename, 'r') as f:
            return int(f.read())
    except:
        return 0
于 2012-05-29T23:35:52.900 に答える
1

もう 1 つのオプションは、キーワード引数を指定することです。これは、たとえば、この関数を使用する古いコードがあり、奇妙な理由で更新できない場合に役立ちます。キーワード引数にはデフォルト値を含めることができます。

def highscore( filename = "filename.txt" ):
    try:
        text_file = open (filename, "r")

次に、この関数を前と同じように呼び出して、デフォルト値「filename.txt」を使用できます。

highscore()

または、新しいファイル名を指定します。

highscore( filename = "otherfile.csv" )

詳細については、Python のドキュメントを参照してください。 http://docs.python.org/tutorial/controlflow.html#default-argument-values

于 2012-05-30T01:49:22.963 に答える
0
def highscore(filename):
   try:
      text_file = open(filename, "r")
      ...

変数識別子 (例: filename) をパラメーター リストに追加するだけで、ファイルを開くときにそれを参照できます。

次に、選択したファイル名で関数を呼び出します。

topscore = highscore("topscore.txt")
于 2012-05-29T23:36:00.470 に答える