每當我使用print "in some_function. x: %s" % x
調試一些python程序(通常是Python 2.5或Python 2.6)時,如果x
是一個元組,我的程序崩潰。爲什麼?向我的代碼添加印刷品時如何避免這種情況?添加打印語句%崩潰我的程序?
1
A
回答
2
問題是,當x
是一個元組時,Python假定元組的元素是用於格式化字符串的參數。例如,如果我這樣做
>>> "one: %s two: %s" % ('fish','chips')
'one: fish two: chips'
如果你想Python來替代整個數組,一個元素傳遞參數的字符串作爲一個元組:
>>> "This is a tuple: %s" % (('fish','chips'),)
"This is a tuple: ('fish', 'chips')"
末逗號區分一從(x)
開始建造像(x,)
。第一個是一個元素的元組,而第二個元素只是x
。
0
原因在於%
右側的實際參數應該是一個元組,因爲左側的字符串可以有多個要填充的元素的佔位符。單個參數版本實際上是一個特例。所以,當你把你的x
放在那裏,它實際上是一個元組,Python假定你提供了幾個參數來填充佔位符 - 只有沒有幾個佔位符,因此是例外。
把(x,)
修復它,因爲它現在使參數成爲一個包含單個元素的元組,它本身就是一個元組。
相關問題
- 1. Python文件存在檢查循環崩潰 - 除非我添加打印語句
- 2. 我的程序打印語句有誤
- 3. C++:添加一個邏輯上正確的if語句崩潰我的程序
- 4. 打印LinkedList時程序崩潰
- 5. 崩潰處理程序打印回溯
- 6. 導致內核崩潰的內核模塊打印語句
- 7. 我的應用程序崩潰時執行意圖語句
- 8. if語句崩潰我的Android應用程序
- 9. 爲什麼我的程序在返回語句時崩潰?
- 10. 爲什麼我的程序不能打印我的語句?
- 11. Python:用打印語句停止程序
- 12. 程序打印兩次相同的打印語句
- 13. 添加clickListener時,應用程序崩潰
- 14. 添加約束崩潰應用程序
- 15. 添加onclicklistener時應用程序崩潰
- 16. 添加ImageView時應用程序崩潰
- 17. 添加getCheckedRadioButtonId()時應用程序崩潰
- 18. 爲什麼我的程序打印兩次相同的語句?
- 19. Python - >用打印語句告訴程序「不打印」
- 20. Flex打印作業崩潰
- 21. 與NSTextfield崩潰打印
- 22. 打印arraylist大小崩潰
- 23. 線程同步不工作,除非添加打印語句
- 24. Overflow.Exception崩潰我的程序
- 25. 我的程序崩潰
- 26. pthread_cancel()崩潰我的程序
- 27. dynamic_bitset,崩潰我的程序
- 28. fgets()崩潰我的程序
- 29. Arraycopy崩潰我的程序
- 30. 爲什麼我的python程序最後兩次打印語句?