我正在从配置为Input的通用IO(GPIO)中读取一个值,它返回一个0或1的字符串。我看到两种简单的方法可以将其转换为布尔值:
bool(int(input_value))
或
not not int(input_value)
哪个是最Python化的?除了上面介绍的方法以外,还有更多Python方式吗?
答案 0 :(得分:10)
方法很多,但我想提出以下建议:
{'0': False, '1': True}[input_value]
如果您获得的值与期望值不同(由于错误,故障,API更改等),则会产生异常。
到目前为止提供的所有其他选项将静默接受任何字符串作为输入。
答案 1 :(得分:0)
如果您的input_value
必须为"1"
或"0"
,并且您希望布尔值是"1"
时为true,那么您希望布尔表达式>
input_value=="1"
例如
bool_var = (input_value=="1")
如果True
等于input_value
,将得到"1"
,如果等于False
(或其他任何值),则得到"0"
。