Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中,for循环可以用作函数变量的一部分吗?_Python_Generator Expression - Fatal编程技术网

在Python中,for循环可以用作函数变量的一部分吗?

在Python中,for循环可以用作函数变量的一部分吗?,python,generator-expression,Python,Generator Expression,我遇到了一行python代码,如下所示: ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(8)) 这有点令人困惑。。有人知道它是干什么的吗 .joinrandom.choicestring.ascii_小写+字符串。范围8中的u的数字 当你看到这样的表情时,最好是一步一步地把它拆开 是一个空字符串 参加将加入所有角色。。。part并将其添加到空字符串中 随机选择。。。将随机选择任何字符 s

我遇到了一行python代码,如下所示:

''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(8))
这有点令人困惑。。有人知道它是干什么的吗

.joinrandom.choicestring.ascii_小写+字符串。范围8中的u的数字

当你看到这样的表情时,最好是一步一步地把它拆开

是一个空字符串 参加将加入所有角色。。。part并将其添加到空字符串中 随机选择。。。将随机选择任何字符 string.ascii_lower+string_digits创建一个包含所有小写字符和所有数字的字符串 因为uu在范围8中意味着这在技术上是8次完成的,这是一个生成器表达式 结果,整个表达式返回一个由8个字符组成的随机字符串,全部为小写或数字


要了解有关生成器表达式的详细信息。如果您想知道如何得出这样的表达式,最好是学习Python文档,这是一个很好的开始。

我尝试了以下代码:

import random
import string

a = 'abcdefghijk'
print(a.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(8)))
它给了我这个输出:

tabcdefghijk2abcdefghijk7abcdefghijktabcdefghijklabcdefghijkoabcdefghijkfabcdefghijk0

我相信它需要一个输入字符串,并用随机小写字母或随机数字将其粘在一起7次。7次,因为两端各有一个,因此有8个连接数字。

这是一个生成器表达式。还有类似语法的list、dict和set理解。旁注:在现代Python中,生成器表达式是不必要的,因为random产生了一个复数方法。因此,您可以只编写.joinrandom.ChoiceString.ascii_小写+string.digits,k=8,它还可以保存反复连接ascii_小写和数字的数据。问题具体在哪一部分?请看,。为什么要使用.join而不是问题中的.join?对不起。。。认为是围绕.join的引号,因为它是在编辑之前的,所以不太明显。最后,我觉得它稍微更清楚了.join函数实际上在做什么。