有人可以解释这段代码的用途吗?
query = 'INSERT INTO audioFiles VALUES (%s,%s)'
cur.execute(query, t)
答案 0 :(得分:5)
代码的第一行定义了一个名为factors
的函数,它接受一个参数n
,大概是一个Int
,并返回一个元素列表,由一个理解列表定义。 / p>
列表推导是Haskell为你定义列表的语法糖,至少对我来说,更清晰,更优雅。
基本上,他们有这种模式:
[ elements | generators and predicates ]
其中generator是x <- collection
形式的表达式,谓词是布尔表达式。 |
右侧的每个表达式/谓词由逗号或另一个|
分隔,这意味着您可以在同一列表推导中使用多个生成器。生成器用作从特定集合中获取/生成元素的一种方式,其中谓词充当过滤器。
一个简单的例子:
[ x + 1 | x <- [1, 2, 3], x == 2 ]
将导致
[3]
生成器x <- [1, 2, 3]
说,从[1, 2, 3]
和谓词x == 2
状态中取出每个元素:但只有那些完成此x == 2
的人,这意味着唯一的值generators and predicates
表达式返回2
。然后,elements
为x
但+ 1
,因此我们会生成3
。
让我们回顾你的第一行代码:
factors n = [x | x <- [1..n], n `mod` x == 0]
嗯,=
的左侧是清晰的,它是一个名为factors
的函数,以n
为参数,对吧?在右边,我们有什么?是的,列表理解!
让我们分析一下,记住表格:
[ form of the elements | generators and predicates ]
似乎我们有x
作为元素的结构,我们在|
的右侧有两个表达式。
第一个
x <- [1..n]
是......发电机!它基本上是说,从这个集合x
中获取[1..n]
(这是从1到n
的列表,给出的参数)。
第二个
n `mod` x == 0
是...谓词!它声明我们将要放置的元素必须验证这一条件:n
的余数除以x
为0
。
总而言之,factors n
函数的作用是计算从1
到n
精确划分n
的数字列表,即n
列表{1}}除数(因子)。
现在,我认为您将能够分析并说出primes
自己所做的事情。