以% 格式取代佔位符時出現型別錯誤
嘗試使用% 格式取代{0} 等佔位符時,開發人員可能會遇到以下情況錯誤:「類型錯誤:並非所有參數在字串格式化期間都已轉換。」此錯誤源自於格式不正確,特別是由於舊式% 格式和新式{} 格式之間的混淆所致。
舊式 % 格式使用 %d 等佔位符進行格式設置,如下例所示:
'It will cost $%d dollars.' % 95
但是,當使用多個值時,它們必須作為元組提供:
"'%s' is longer than '%s'" % (name1, name2)
另一方面,新式{} 格式使用{} 等佔位符和.format 方法。避免混合這兩種風格至關重要。如果模板字串包含 {} 佔位符,則應使用 .format,而不是 %.
# Correct: 'It will cost ${0} dollars.'.format(95) "'{0}' is longer than '{1}'".format(name1, name2) # Incorrect (Do not mix % and {}): 'It will cost ${0} dollars.' % 95 "'%0' is longer than '%1'" % (name1, name2)
透過遵守這些格式指南,開發人員可以解決「TypeError: not all argument conversion during string formatting」錯誤和格式他們的字元串正確。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3