为什么用list做平等不能用?

问题描述 投票:0回答:2

在过去的一个小时里,我试着用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,我到底做错了什么?

python
2个回答
0
投票

code[3]"5",不 5. 类型 "5"str 而类型 5int. 你可以使用内置的 类型 函数来获取任何对象的类型,这对调试很有帮助。

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")


1
投票

你忘了把 5 用引号。

这对我很有用。

x = -5000
code = str("{:07.0f}".format(abs(x)))
if code[3] == "5":
    print("1")
else:
    print("2")

印刷品。1


0
投票

你在比较一个 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))
© www.soinside.com 2019 - 2024. All rights reserved.