Python 只执行最后一个elif块

Python 只执行最后一个elif块,python,python-2.7,Python,Python 2.7,我被一个看似微不足道的问题困扰了一段时间 我有一个条件循环,让用户输入raw\u输入,并根据输入的输入分配变量 下面是代码,让我解释清楚: location = raw_input("Where are you located? : ") #print (location) if location == "London": recreationList = londonRec businessList = londonBus elif location == "Califo

我被一个看似微不足道的问题困扰了一段时间

我有一个条件循环,让用户输入
raw\u输入
,并根据输入的输入分配变量

下面是代码,让我解释清楚:

location = raw_input("Where are you located? : ")
#print (location)

if location == "London":
    recreationList = londonRec
    businessList = londonBus

elif  location == "California":
    recreationList = caliRec
    businessList = caliBus

elif  location == "Mumbai":
    recreationList = mumbaiRec
    businessList = mumbaiBus

....code to be executed based on location
我面临的问题是,只有当我将孟买作为
原始输入()
输入时,才会执行下面的代码,每隔一段时间它就会循环回
“你在哪里?”

我觉得这是一件非常简单的事情,我完全忽略了,任何指导都是值得赞赏的


谢谢

由于没有正确定义变量,代码无法运行。它们需要预定义,因为python不会仅仅通过将另一个变量设置为该变量来创建该变量。

由于没有正确定义变量,代码无法工作。它们需要预定义,因为python不会仅仅通过将另一个变量设置为该变量的值来创建该变量。

我认为您应该在为变量赋值之前创建变量。这可能会解决你的问题,我不确定。有关python中作用域的更多详细信息,请参阅本文。此外,缩进不正确。 请尝试以下代码:

location = raw_input("Where are you located? : ")
#print (location)

recreationList = None
businessList = None

if location == "London":
    recreationList = londonRec
    businessList = londonBus

elif  location == "California":
  recreationList = caliRec
  businessList = caliBus

elif  location == "Mumbai":
  recreationList = mumbaiRec
  businessList = mumbaiBus

....code to be executed based on location

我认为在给变量赋值之前,应该先创建变量。这可能会解决你的问题,我不确定。有关python中作用域的更多详细信息,请参阅本文。此外,缩进不正确。 请尝试以下代码:

location = raw_input("Where are you located? : ")
#print (location)

recreationList = None
businessList = None

if location == "London":
    recreationList = londonRec
    businessList = londonBus

elif  location == "California":
  recreationList = caliRec
  businessList = caliBus

elif  location == "Mumbai":
  recreationList = mumbaiRec
  businessList = mumbaiBus

....code to be executed based on location

当然,除了缩进错误之外,当前代码中没有任何东西会导致这种行为。请参见
“mumbai”==“mumbai”#False
由于未定义变量,请提供此代码未运行的示例。当我删除这些语句并用跟踪语句替换它时,它会按预期工作。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。当然,除了缩进错误之外,您当前的代码中没有任何内容会导致这种行为。请参见
“mumbai”==“mumbai”#False
由于未定义变量,请提供此代码未运行的示例。当我删除这些语句并用跟踪语句替换它时,它会按预期工作。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您描述的问题。