作为 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: global name 'raw_input' is not defined”。我在学习中经常看到这个问题。当我在 Python2 中运行它时似乎没有出现,但在 3 中似乎需要将它声明为全局。但是,当我将“global raw_input”添加到函数中时,它似乎不起作用(在其他情况下,每次我这样做时它都起作用。)有人能告诉我我做错了什么吗?另外,我听说声明全局变量是在不必要时养成的坏习惯,那么处理它们的最佳方法是什么?