并非所有参数在字符串格式化期间都已转换 python

not all arguments converted during string formatting python

我正在编写一个脚本,打印可被 3 XOR 最后一个字符 ==4 整除的列表项,但我收到一条错误消息:TypeError: not all arguments converted during string formatting 我是 Python 的新手,可能错过了一些明显的东西。代码如下:

lijst = ["124576", "795834", "890432", "907251"]    
for j in lijst:
if j[-1]==4 ^ j%3 > 0  :
    print(j)

首先您需要将 4 更改为 '4' 因为您的项目是字符串并将 j 转换为 j%3 中的 int 还需要将您的括号括起来比较表达式,因为 ^precedence 高于 == 并且它会引发 TypeError 如果你想保留你的结果,你可以使用列表理解:

>>> [j for j in lijst if (j[-1]=='4') ^ (int(j)%3 > 0)]
['124576', '795834', '890432']

如果你只想打印结果,你可以使用带打印功能的普通循环。