访问python元组时需要澄清
你能详细解释一下吗?最好是逐行解释,输出结果是什么访问python元组时需要澄清,python,python-3.x,Python,Python 3.x,你能详细解释一下吗?最好是逐行解释,输出结果是什么 a设置为True,Python的bool是int类型的子类,因此a可以解释为1 (省略print语句,因为这不需要解释),索引分别为0和1的元组(“a”,“B”),在布尔表达式a==False的结果处进行索引。表达式的结果是False,因为a是True,所以a==False是False,因此被解释为0,所以元组在索引0处被索引,从而打印“a” 这段代码之所以令人困惑,部分原因是它依赖于动态类型转换。这不是特别好的代码 a = True pr
a
设置为True
,Python的bool
是int
类型的子类,因此a
可以解释为1
print
语句,因为这不需要解释),索引分别为0
和1
的元组(“a”,“B”)
,在布尔表达式a==False
的结果处进行索引。表达式的结果是False
,因为a
是True
,所以a==False
是False
,因此被解释为0
,所以元组在索引0
处被索引,从而打印“a”
这段代码之所以令人困惑,部分原因是它依赖于动态类型转换。这不是特别好的代码
a = True
print(('A','B')[a == False])
棘手的部分是,当转换为
int
类型时,False
等于0
,然后将其用作元组(“A”、“B”)的索引。这是一种糟糕的做法,通常令人困惑。False
实际上只是一个整数0True
只是一个整数1。这回答了你的问题吗?如果你自己一步一步地解决它,你会学得更好。计算出表达式每个部分的值,然后将它们组合起来。否。相反,请确切地解释当您跟踪此代码时,从您得到的输出中您不理解的内容。在发布之前,进行初步调查是你的任务。请浏览、和,以了解此网站的工作原理,并帮助您改进当前和未来的问题,从而帮助您获得更好的答案。这是否回答了您的问题?
a = True
idx = (a == False) # False
("A", "B")[idx] # idx gets converted to int(False) -> 0
("A", "B")[0] # -> "A"