python(Signed jar file)的蛮力库
*brute.py*
# ...
return (
''.join(candidate) for candidate in
chain.from_iterable(
product(
choices,
repeat = i,
) for i in range(start_length if ramp else length, length + 1),
)
)
例外
File "C:\Python37-32\lib\site-packages\brute.py", line 68
product(
^
SyntaxError: Generator expression must be parenthesized
答案 0 :(得分:0)
删除最后一个for loop
末尾的逗号。
for i in range(start_length if ramp else length, length + 1),
->这个逗号
>>> x = 5,
>>> x
(5,)
>>>
在变量后将逗号放入一个元素的元组。
chain.from_iterable
期望第一个参数是生成器而不是元组。
由于该逗号,您的代码实际上求值为
chain.from_iterable((product(choices, repeat = i) for i in range(start_length if ramp else length, length + 1)))
代替
chain.from_iterable(product(choices, repeat = i) for i in range(start_length if ramp else length, length + 1))
答案 1 :(得分:0)