You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python脚本如何将命令行输入的1和0转换为布尔值True或False

问题根因

sys.argv 读取到的所有命令行输入参数都是字符串类型,Python 规则中只要是非空字符串,执行bool()转换时都会返回True。你传入的0本质是字符串'0',属于非空字符串,所以转换后得到的是True,不符合数值逻辑下0对应False的预期。

修复方案

适配当前传入0/1参数的最简方案

先将参数字符串转换为整数,再转换为布尔值即可,修改后代码如下:

import sys
def main(option1, option2, option3): 
   # do something

if __name__ == '__main__':
   option1 = bool(int(sys.argv[1]))
   option2 = bool(int(sys.argv[2]))
   option3 = bool(int(sys.argv[3]))

更通用的健壮方案

如果需要支持true/false、yes/no等多种布尔输入格式,可以单独写一个转换函数处理:

import sys

def str_to_bool(input_str: str) -> bool:
    # 统一格式化输入后判断
    format_str = input_str.strip().lower()
    return format_str in ('1', 'true', 'yes', 'on')

def main(option1, option2, option3): 
   # do something

if __name__ == '__main__':
   option1 = str_to_bool(sys.argv[1])
   option2 = str_to_bool(sys.argv[2])
   option3 = str_to_bool(sys.argv[3])

内容的提问来源于stack exchange,提问作者deblue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:06:08