Python 对于“后有2个变量的循环”;在;

Python 对于“后有2个变量的循环”;在;,python,Python,我对下面的说法感到困惑 for sentence in snippet, phrase. 为什么“in”后面有两个项目 完整代码 def convert(snippet, phrase): class_names = [w.capitalize() for w in random.sample(WORDS, snippet.count("%%%"))] other_names = random.sample(WORDS, snippet.

我对下面的说法感到困惑

for sentence in snippet, phrase. 
为什么“in”后面有两个项目

完整代码

def convert(snippet, phrase):
    class_names = [w.capitalize() for w in
                   random.sample(WORDS, snippet.count("%%%"))]
    other_names = random.sample(WORDS, snippet.count("***"))
    results = []
    param_names = []

    for i in range(0, snippet.count("@@@")):
        param_count = random.randint(1,3)
        param_names.append(', '.join(random.sample(WORDS, param_count)))

    for sentence in snippet, phrase:
        result = sentence[:]

        # fake class names
        for word in class_names:
            result = result.replace("%%%", word, 1)

        # fake other names
        for word in other_names:
            result = result.replace("***", word, 1)

        # fake parameter lists
        for word in param_names:
            result = result.replace("@@@", word, 1)

        results.append(result)

    return results
这是元组的另一种语法(语法糖),元组是一个不可变的数据容器。你可以这样写:

for something in (1,2,3,4):
但在这种情况下,可以省略括号,从而得到:

for something in 1,2,3,4:
这也是有效的语法


要尝试的示例: 打印以下内容:

 1
 2
 3
 4

这只是一个两程的循环。在第一次迭代中,
语句
被设置为
片段
。在第二次迭代中,
语句
设置为
短语

下面是一个简单的例子:

>>> for x in "a", "b":
...     print(x)
...
a
b
>>>

for循环只是遍历iterable集合中的每个项。因此,范围(5)返回0到5之间的所有项的iterable集合。for循环使您可以访问它

>>> for x in range(5):
...     print(x)
...
0
1
2
3
4
>>>

你的意思是for循环选择了snippet和phrase,然后运行循环?@Liuyang,它选择了第一个snippet,然后是phrase。谢谢你的回答。我也很困惑代码片段和短语的功能是什么?@Liuyang,我不知道,因为代码片段和短语是函数参数,所以你决定它们应该包含什么,我理解。非常感谢你!使用
snippet、phrase
可以创建一个可以迭代的
元组。您可能更熟悉这样的内容:
(片段、短语)
>>> for x in range(5):
...     print(x)
...
0
1
2
3
4
>>>