2015-09-17 66 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

相關問題