2016-08-19 3 views
0

私はこのトピックを研究しようとしましたが、混乱しています。とにかく、私はパイソンパイゲームのチューブチュートリアルを見ていました。私はビデオを手に入れました。彼はその特定のゲームのスコアだけではなく、時間の中で高い得点のようにする方法を示しませんでした。だから私は、ゲームコードに入り、それを実際に行う前に、そのコンセプトを把握しようとしています。だから私はファイルを作成することができるようにしたい、私はその1回実行し、私は書き込みコードを削除し、読書コードを残すだろう。だから私はファイルを作成し、私は今すぐ持っているコードです。pythonファイルから情報を削除して新しい情報を書き込む

def highscore(): 
    question=int(input("What is 5+5=?:")) 
    if question==10: 
     highread=open('high.txt', 'r') 
     text=highread.read() 
     if text==1: 
      highread.close() 
      high=open('high.txt', 'w') 
      high.write('2\n') 
      high.close() 
      highread=open('high.txt', 'r') 
      text=highread.read() 
      print("Your new score of", text) 
      highread.close() 
     highread.close() 
    else: 
     print("Wrong!") 
highscore() 

私は今、ファイルが "1"であることを確信しています。だから私はそれが高いスコアを打つ誰かを表すために今 "2"を作成し、ファイルはそのために更新する必要があります。新しい結果が表示されないので、何かが間違っていることがわかります。なにが問題ですか?エラーメッセージは表示されませんが、数字2を表示するだけです。私はpython 3.4.3を使用しています。前もって感謝します。

+0

ファイル内の文字列として読み取り中です。だから、あなたは '' 1 ''を確認する必要があります' –

答えて

0

if条件に問題があります。ここではtextは文字列変数です。文字列に特定の部分文字列/文字が含まれているかどうかを確認するには、見つかった場合は文字列内の部分文字列/文字のインデックスを返し、見つからない場合は負の値を返すfind()を使用する必要があります。 これを試してみてください:

def highscore(): 
question=int(input("What is 5+5=?:")) 
if question==10: 
    highread=open('high.txt', 'r') 
    text=highread.read() 
    if len(text)>0: 
     highread.close() 
     high=open('high.txt', 'w') 
     high.write('2') 
     high.close() 
     highread=open('high.txt', 'r') 
     text=highread.read() 
     print("Your new score of", text) 
     highread.close() 
    highread.close() 
else: 
    print("Wrong!") 

は、任意の更なる明確化を求めること自由に感じています。

+0

いいです、私はここにいくつかの質問があります。 if text.find( "1")> = 0: "人々がハイスコアを何度も繰り返すことで1が変わるため、混乱しています。それではどうやって動くんですか? 2. "high.write( '2 \ n')"は2行目に書き込まれず、ドキュメントの最初の行に書き込まれませんか?私はドキュメント内に1つの番号が必要です。誰かがスコアを上回ると、その番号は削除され、代わりにスコアが付けられます。私はここで少し混乱しています。その代わりに何かを削除するようなことはありますか? –

+0

1の場合:スコアのリストを使用し、リストから1または2のような値を取得できます。 2の場合:保存する番号を1つだけ必要とする場合は、別のファイルを作成する必要があります。あなたは簡単に変数を使うことができます。 'w'モードは削除です。ファイルが存在しない場合は書き込み用の新しいファイルを開き、ファイルが存在する場合は単純に新しいテキストでファイルを上書きします。 –

+0

だから、二番目の質問はそれがとにかくそれを上書きするほうがいいと思う。しかし、/ nを取り除いて2行目にしないと、それは印刷されません。何をすべきか?私はちょうどそれを読んで、プレーヤーのスコアがファイル番号を超えている場合は、次にそれとプリントを上書きします。それは私がしたいことの理論です。私が5 + 5のように始めて尋ねる質問は、ゲームのような発言をシミュレートするのが好きです。多分それをする方法? –

関連する問題