Python の初心者として、私は Python2 と 3 の違いのいくつかを学んでいます。Python コースを進めていると、3 で動作させるためにコードを変更する必要があることがいくつかあるようです。コードは次のとおりです。
def clinic():
print "In this space goes the greeting"
print "Choose left or right"
answer = raw_input("Type left or right and hit 'Enter'.")
if answer == "LEFT" or answer == "Left" or answer == "left":
print "Here is test answer if you chose Left."
elif answer == "RIGHT" or answer == "Right" or answer == "right":
print "Here is the test answer if you chose Right!"
else:
print "You didn't make a valid choice, please try again."
clinic()
clinic()
Python 3 でこれを機能させるには、出力構文を変更する (括弧を追加する) 必要がありますが、別の問題として「NameError: グローバル名 'raw_input' が定義されていません」というエラーが発生します。この問題が私の学習で頻繁に出てくるのを見てきました。Python2で実行すると出てこないようですが、3ではグローバルとして宣言する必要があるようです。ただし、関数に「global raw_input」を追加すると、機能しないようです (それ以外の場合は、実行するたびに機能します)。誰かが私が間違っていることを教えてもらえますか? また、必要のないときにグローバルを宣言するのは悪い習慣だと聞いたことがありますが、それらを処理する最良の方法は何ですか?