1. 程式人生 > >Python-TypeError: not all arguments converted during string formatting

Python-TypeError: not all arguments converted during string formatting

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