Python 不是所有参数都在字符串格式化期间转换?

Python 不是所有参数都在字符串格式化期间转换?,python,generator,Python,Generator,您可以看到我的代码,但问题是以下错误: TypeError:在字符串格式化过程中并非所有参数都已转换 我该怎么办 print(*(i for index, i in enumerate(list(input(int()).split())) if i % 6 == 0 and (index+1) % 6 == 0), sep=' '`) 我是一根绳子。您需要在%操作之前将其转换为int input: 1 2 3 4 5 6 7 8 9 10 11 12 output: 6 12 此外,您上

您可以看到我的代码,但问题是以下错误:

TypeError:在字符串格式化过程中并非所有参数都已转换

我该怎么办

print(*(i for index, i in enumerate(list(input(int()).split())) if i % 6 == 0 and (index+1) % 6 == 0), sep=' '`)
我是一根绳子。您需要在%操作之前将其转换为int

input:
1 2 3 4 5 6 7 8 9 10 11 12

output:
6 12

此外,您上面发布的预期输出是错误的——在本例中,当i==1时,index=inti-1,index==0——因此,i和index都是6的倍数是不可能的

这不是非常符合Python的IMO,将所有这些操作塞进一行。您正成为这种方法的受害者,因为调试变得越来越困难。这是您的完整代码吗?当我运行这个程序时,我得到的是0 printedIt只是0。split返回一个列表,因此无需换行list@karl邮递edited@Chris_Rands后期编辑你写了,但还有一件事是,如果我想检查我是否不想打印一个数字两次??我该怎么办?用发电机组代替发电机。只需将替换为{}--print*{i作为索引,i在EnumerateListInput.split中如果inti%6==0},sep='',您可以使用内置的排序函数对集合进行排序-请注意,它将返回一个列表
print(*(i for index, i in enumerate(list(input(int()).split())) if int(i) % 6 == 0 and index % 6 == 0), sep=' ')