プログラミング経験は1年未満です。ファイルの読み書きについて学んでいるときに、このチュートリアルに出くわしました: http://www.penzilla.net/tutorials/python/fileio/
このチュートリアルでは、ファイルを作成して書き込むための簡単なスクリプトとして次の例を示します。
# Let's create a file and write it to disk.
filename = "test.dat"
# Let's create some data:
done = 0
namelist = []
while not done:
name = raw_input("Enter a name:")
if type(name) == type(""):
namelist.append(name)
else:
break
# Create a file object:
# in "write" mode
FILE = open(filename,"w")
# Write all the lines at once:
FILE.writelines(namelist)
# Alternatively write them one by one:
for name in namelist:
FILE.write(name)
FILE.close()
このコードをコピーして、Python 2.7.3 シェルで実行しました。ファイルに書き込まれるリストに追加される文字列を入力するよう繰り返し求められます (これは理にかなっています)。私が理解していないのは、While ループを終了するための条件です (「While not done:」)。これは、プロンプトで done と入力してループを終了し、その後ファイルを書き込むことを意味すると思いましたが、done は効果がありません。次に、プロンプトで文字列以外を入力すると、ループを中断してファイルを書き込む必要があると考えました。ループをまったく中断できませんでした。プロンプトで入力したものについては、「名前を入力してください:」というプロンプトが再度表示されました。
While ループを削除し、if/else ステートメントを保持することで、単一のプロンプトに対してコードが機能するようになりました。ここで私が理解していないことを誰かに教えてもらえますか? 自明であると想定されていたため、チュートリアルでは説明されていないかなり単純な概念だと思います。「完了」は非常に一般的な単語であるため、Python 固有の意味を見つけることができませんでした。