gpt4 book ai didi

python - 为什么这个 for 循环不能将索引识别为 int、float、string 或 boolean?

转载 作者:太空宇宙 更新时间:2023-11-04 08:53:44 24 4
gpt4 key购买 nike

这是一小段代码,用于检查某个变量的数据类型,返回值是True,然后是FalseFalse 错误。有人能告诉我这段代码有什么问题吗?我该如何更有效地执行此类流程?

examples = [100, 1.45, "Bob", True]
types = [int, float, str, bool]

for x in range(0, 3):
if type(examples[x]) == type(types[x]):
print("True")
else:
print("False")

最佳答案

您必须将类型与列表中的单词进行比较,而不是它的类型。另请注意 range排除第二个参数,因此您需要执行 range(0,4)range(4) 哪个更好。

for x in range(0, 4):
if type(examples[x]) == (types[x]):
print("True")
else:
print("False")

更好的方法是使用 isinstance

Return true if the object argument is an instance of the classinfo argument, or of a (direct, indirect or virtual) subclass thereof.

您可以将代码更改为,

for x in range(0, 4):
if isinstance(examples[x],types[x]):
print("True")
else:
print("False")

因为isinstance返回的是 bool 值,所以可以直接做

for x in range(0, 4):
print(isinstance(examples[x],types[x]))

关于python - 为什么这个 for 循环不能将索引识别为 int、float、string 或 boolean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32403893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com