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
 
