作者:sferra石_455 | 来源:互联网 | 2023-05-31 20:20
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
删除最后一个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,length + 1))
,
表格中有错误。看到这个贡献:
https://github.com/rdegges/brute/pull/9/commits/86fb09476cca2146764b0aae6b5ab9c6e0c7292b
致谢