好的,我刚刚开始学习python,我已经完成了一项要求我创建测验的作业。我已经知道如何使其区分大小写,但我在用户输入问题时遇到了问题。当我尝试运行该程序以验证它是否是正确的答案时,它只是告诉我没有定义输入的答案。
这是我当前代码的一个示例(不要判断这个愚蠢的问题,我有一个主要的作家阻止:P):
q1= "1. What is the name of the organelle found in a plant cell that produces chlorophyll?"
plantcell=input(q1)
ans1= "chloroplast"
if plantcell.lower()==ans1.lower():
print("Correct!")
else:
print("Incorrect!")
我使用的是python 3和Wing IDE 101.有什么建议吗?
答案 0 :(得分:1)
我愿意打赌你真正的问题是你不使用Python 3。
例如,也许你在Mac上,并没有意识到你已经安装了Python 2.7。所以你安装了Python 3.4,然后安装了一个IDE,并假设它必须使用你的3.4,因为那就是那里,但它实际上默认为2.7。
验证这一点的一种方法是import sys
和print sys.version
。
在Python 2.7中,input
相当于Python 3的eval(input(…))
。因此,如果用户键入chloroplast
,Python将尝试将chloroplast
评估为Python表达式,这将引发NameError: 'chloroplast' is not defined
。
解决方案是找出在IDE中配置默认Python版本的位置,并为Python 3配置它。
答案 1 :(得分:0)
我还假设你的问题是你不小心使用Python 2.让你在两个版本的Python中运行代码的一种方法是使用像plantcell = str(input(q1))
这样的东西,或者更好(更安全)使用raw_input
(相当于Python 3' s input
。以下是一个例子:
import sys
q1 = "1. What is the name of the organelle found in a plant cell that produces chlorophyll?"
if sys.version_info[0] == 3:
plantcell = input(q1)
else:
plantcell = raw_input(q1)
ans1 = "chloroplast"
if plantcell.lower() == ans1.lower():
print("Correct!")
else:
print("Incorrect!")