0

この質問に対する答えはコメントにあります。 そこで、私は学校のために、ある人が LAN パーティーに何を持っていくかについての情報を求めるこのプログラムを書きました。これはループで発生するため、参加者数が 256 に達するまですべての参加者を要求します。いくつかのコードを追加したので、いくつかの行がテキスト ファイルに書き込まれます。私の問題は、すべての参加者にとって、ループが最初から開始されるたびに、テキストファイルが置き換えられることです。解決策を探す場所が見つからないようです。ここに私のコードからのいくつかの行があります:

uid=0
while uid <= 256:
     fo = open('userID.txt','w')
     print("\nUserID: ",uid)
     fo.write("\nUserID: " + str(uid))
fo.close()
input("")

これで、プログラムを閉じたときに表示された uid (ユーザー ID) がテキストファイルに表示されます。つまり、1 または 5 または 200 ですが、私が望むのは、プログラムを閉じるまですべてが表示されることです: 0 1 2 3 4 など...いわば、置き換えるのではなく強化することです。

テキストファイルの側面への書き込みは、私が楽しみのために行ったものです。私はすでにプログラムを提出しましたが、それでも問題を解決したいと考えています。私は初心者プログラマーです。これは私が経験したプログラミングの最初のブロックです。

4

2 に答える 2

1

ループ内でファイルを再度開かないでください。「w」でファイルを開くたびに、ファイルが上書きされます。

fo.close() を while ループの外側に配置すれば問題ありません。

uid=0
fo = open('userID.txt','w')
while uid <= 256:
    print("\nUserID: ",uid)
    fo.write("\nUserID: " + str(uid))
    input("")
fo.close()

別の回答で示唆されているように、「a」書き込みモード(または書き込みだけでなく読み取りも必要な場合は「a +」)を使用できますが、プログラムを実行するたびに新しいデータがファイルに追加されることに注意してください。すべてのプログラムの実行結果が次々に記録されます。

于 2013-11-03T23:46:16.157 に答える