首页 > 解决方案 > 给定 Python 3 中值为“Y”或“N”的变量,如何获得布尔值?

问题描述

我得到一个输入为“Y”或“N”。如果 'Y' 否则我需要将其转换为 True 或 False 。为此,我遇到了这个构造。该代码有效,但我不知道它叫什么。

    goto = "Y"
    __goto = (False,True)[goto=="Y"]

有人可以解释这是如何工作的吗?这个结构叫什么?

标签: python

解决方案


这太复杂了——goto=="Y"已经给了你你需要的东西。

如果你想知道有问题的代码是如何工作的,goto=="Y"给你 True 或 False。然后将其用于对元组 ( (False, True)) 进行索引,因为布尔值可以用作整数 (False = 0, True = 1)。然后,这会给您返回您已经拥有的相同价值。

有效地如果goto"Y"那么你得到

(False, True)[True]  => (False, True)[1]

如果goto还有什么你得到

(False, True)[False]  => (False, True)[0]

推荐阅读