Python:如何匹配用户输入和不区分大小写的答案?

时间:2014-09-28 03:17:29

标签: python

好的,我刚刚开始学习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.有什么建议吗?

2 个答案:

答案 0 :(得分:1)

我愿意打赌你真正的问题是你使用Python 3。

例如,也许你在Mac上,并没有意识到你已经安装了Python 2.7。所以你安装了Python 3.4,然后安装了一个IDE,并假设它必须使用你的3.4,因为那就是那里,但它实际上默认为2.7。

验证这一点的一种方法是import sysprint 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!")