Python-TypeError: not all arguments converted during string formatting
阿新 • • 發佈:2018-05-20
tro -type error: where mat obj AS print %s
Where?
運行Python程序,報錯出現在這一行 return "Unknow Object of %s" % value
Why?
%s 表示把 value變量裝換為字符串,然而value值是Python元組,Python中元組不能直接通過%s 和 % 對其格式化,則報錯
Way?
使用 format 或 format_map 代替 % 進行格式化字符串
出錯代碼
def use_type(value): if type(value) == int: return "int" elif type(value) == float: return "float" else: return "Unknow Object of %s" % value if __name__ == ‘__main__‘: print(use_type(10)) # 傳遞了元組參數 print(use_type((1, 3)))
改正代碼
def use_type(value): if type(value) == int: return "int" elif type(value) == float: return "float" else: # format 方式 return "Unknow Object of {value}".format(value=value) # format_map方式 # return "Unknow Object of {value}".format_map({ # "value": value # }) if __name__ == ‘__main__‘: print(use_type(10)) # 傳遞 元組參數 print(use_type((1, 3)))
Python-TypeError: not all arguments converted during string formatting