2015-09-17 32 views
2

我正在写一个脚本,它打印可以用3异或的最后一个字符== 4,但我得到一个错误,说明:TypeError: not all arguments converted during string formatting我是Python的新手,可能错过了一些明显的事下面的代码:并非所有在字符串格式化过程中转换的参数python

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

应该是'int(j)%3'。您希望使用'%'作为数字的运算符,而不是字符串。 – khelwood

回答

3

所有你需要改变4'4',因为你的项目串并转换jj%3为int也需要圆括号你比较表达式因为^precedence高于==第一它将提出一个TypeError此外,如果你想保留你的结果,你可以使用列表理解:

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

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

+1

它的工作表示感谢! – user2043008

相关问题