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

如何从用户处获取boolean值并实现非法输入循环校验

循环获取合法布尔类型用户输入实现方案

核心逻辑是通过无限循环持续接收用户输入,对输入内容做合法性校验,只有输入符合布尔值格式要求时才退出循环返回结果,否则持续提示重新输入。

实现要点

  • 用while True构造常驻输入循环,未拿到合法值前不会跳出输入流程
  • 对用户输入做标准化预处理:去除首尾空白字符、统一转为小写,避免因前后空格、大小写差异导致合法输入被误判
  • 预先定义合法真值、假值的匹配规则,匹配成功则返回对应布尔类型值,匹配失败则打印错误提示重新触发输入

可直接运行的代码实现

def get_boolean_input(input_tip: str = "请输入True/False: ") -> bool:
    # 可根据需求调整合法输入范围,以下配置兼容常见的布尔类输入写法
    true_input_set = {"true", "t", "1", "yes", "y"}
    false_input_set = {"false", "f", "0", "no", "n"}
    while True:
        # 预处理用户输入:去首尾空白、统一转小写
        input_content = input(input_tip).strip().lower()
        if input_content in true_input_set:
            return True
        if input_content in false_input_set:
            return False
        # 输入非法时给出明确提示
        print("输入不合法,请输入标准布尔值True/False后重试")

# 调用示例
if __name__ == "__main__":
    check_result = get_boolean_input("请确认是否同意用户协议(True/False): ")
    print(f"校验通过,获取到的布尔值为{check_result},值类型为{type(check_result)}")

如果需要严格限制用户只能输入True/False,不接受其他简写变体,只需要把匹配集合修改为如下内容即可:

true_input_set = {"true"}
false_input_set = {"false"}

内容的提问来源于stack exchange,提问作者vivek.raji

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:15:41