Pythonで'False'、'True'などの文字列をBool型に変換する方法
コード
Pythonで文字列"False"
をbool型のFalse
に変えたい場合、最初に試すべきコードは下のようである。
>>> bool("False")
True
>>> int("False")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'False'
しかし、この場合"False"
は空ではない文字列だから、bool("False")
はTrue
を返す。文字列"False"
をFalse
に返す関数は、distutils.util.strtobool()
である。
>>> from distutils.util import strtobool
>>> strtobool("False")
0
>>> strtobool("f")
0
>>> strtobool("0")
0
>>> strtobool("no")
0
>>> strtobool("off")
0
次の入力はFalse
を返す。
- 大文字小文字関係なく、
"f"
と"false"
(つまり、"FaLSe"
、"faLSE"
など全部可能) - 大文字小文字関係なく、
"no"
、"n"
、"off"
、"0"
次の入力はTrue
を返す。
- 大文字小文字関係なく、
"t"
と"true"
(つまり、"TuRe"
、"tURE"
など全部可能) - 大文字小文字関係なく、
"yes"
、"y"
、"on"
、"1"
環境
- OS: Windows11
- バージョン: Python v3.9.13