Python 优先级层次结构(for循环中的if语句)

Python 优先级层次结构(for循环中的if语句),python,python-2.7,dictionary,if-statement,for-loop,Python,Python 2.7,Dictionary,If Statement,For Loop,我目前正在参加Coursera提供的Python数据库课程。本课程的链接可在此处找到: 我没有要求任何人做我的家庭作业,只是想澄清Python 2如何读取for循环,以及如何对if语句进行优先级排序。您可以在此处下载我正在解析的相应代码和XML文件: 该计划要做的一切都超出了这个问题的范围。在tracks.py程序中,我遇到了一个helper函数,用于提取Library.xml文件中声明的字典中的键的值。看起来是这样的: def lookup(d, key): found = Fal

我目前正在参加Coursera提供的Python数据库课程。本课程的链接可在此处找到:

我没有要求任何人做我的家庭作业,只是想澄清Python 2如何读取
for
循环,以及如何对
if
语句进行优先级排序。您可以在此处下载我正在解析的相应代码和XML文件:

该计划要做的一切都超出了这个问题的范围。在tracks.py程序中,我遇到了一个helper函数,用于提取Library.xml文件中声明的字典中的键的值。看起来是这样的:

def lookup(d, key):
    found = False
    for child in d:
        if found : return child.text
        if child.tag == 'key' and child.text == key : found = True
    return None
<dict>
    <key>Major Version</key><integer>1</integer>
    <key>Minor Version</key><integer>1</integer>
    <key>Date</key><date>2015-11-24T11:12:10Z</date>
    ...
乍一看,函数是如何检查
found
布尔值并返回给定键previor的值以检查它是否首先存在的,这对我来说没有意义。但是,当我尝试切换这两条语句时,程序无法正确读取数据这是为什么?


如果有人想让我发布我是如何测试并发现为什么这不起作用的,请告诉我,我将添加一些输出。

Python会像大多数语言一样从上到下评估语句。我的猜测是,函数应该返回具有给定
键的元素之后的下一个元素

库.xml中的
元素如下所示:

def lookup(d, key):
    found = False
    for child in d:
        if found : return child.text
        if child.tag == 'key' and child.text == key : found = True
    return None
<dict>
    <key>Major Version</key><integer>1</integer>
    <key>Minor Version</key><integer>1</integer>
    <key>Date</key><date>2015-11-24T11:12:10Z</date>
    ...

Python自上而下地计算语句,就像大多数语言一样。我的猜测是,函数应该返回带有
键的元素之后的下一个元素。是的,这是有道理的。谢谢老板,谢谢你。我现在明白多了。切换语句后我如何测试函数,这甚至是有意义的,因为它只是打印我正在寻找的“key”(child.tag)的“value”(child.text)。当切换语句时,我会打印“Name Artister Album…”的值,并且不明白为什么要打印变量名。事实并非如此。它只是在打印标签的文本。