在过去的一个小时里,我试着用list做了一个基本的事情,但它不起作用,我找不到原因。
x = -5000
code = (str("{:07.0f}".format(abs(x)))
if code[3] == 5:
print("1")
else:
print("2")
当我运行这个时,代码中的值是0005000。如果我做 print(code_background_x[3])
当我运行程序时,输出是5,但是当我运行程序时,输出是2,我到底做错了什么?
code[3]
是 "5"
,不 5
. 类型 "5"
是 str
而类型 5
是 int
. 你可以使用内置的 类型 函数来获取任何对象的类型,这对调试很有帮助。
x = -5000
code = str("{:07.0f}".format(abs(x)))
print(type(code[3])) # <class 'str'>
print("5" == 5) # False
你也可以使用 重写 用于遇到这类问题时的调试。它返回可打印的 代表性 的对象。
x = -5000
code = str("{:07.0f}".format(abs(x)))
print("5") # 5
print(5) # 5
print(repr("5")) # '5'
print(repr(5)) # 5
所以这就可以了。
x = -5000
code = str("{:07.0f}".format(abs(x)))
if code[3] == '5':
print("1")
else:
print("2")
你忘了把 5
用引号。
这对我很有用。
x = -5000
code = str("{:07.0f}".format(abs(x)))
if code[3] == "5":
print("1")
else:
print("2")
印刷品。1
你在比较一个 str
含有 int
. 很明显,两者的类型是不一样的。也许你会希望比较 '5'
x = -5000
code = (str("{:07.0f}".format(abs(x))))
if code[3] == 5:
print("1")
else:
print("2")
print(type(code[3]))
print(type(5))