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

Python if-else分支执行异常:Windows7触发非预期分支

Python条件分支执行异常问题

我的Python代码在Windows 7系统上出现分支执行错误:原本应该执行else分支的普通欢迎语句,结果错误执行了if分支里带格式的欢迎语句。我已经把第一行的判断条件从'Windows'改成了'win32',但问题还是没解决。

相关代码如下:

if platform == "win32":
  if str(platform.release()) == "10" or str(platform.release()) == "11":
    print(f"{bcolors.WARNING}Welcome to {bcolors.BOLD}B Kernel{bcolors.ENDC}")
  else:
    print("Welcome to B Kernel.")
else:
  print(f"{bcolors.WARNING}Welcome to {bcolors.BOLD}B Kernel{bcolors.ENDC}")

return True

排查与修复方案

  • 先确认变量实际值:在代码开头添加打印语句,输出关键变量的真实内容,明确判断逻辑的依据:

    import sys
    import platform
    
    print(f"sys.platform: {sys.platform}")
    print(f"platform.release(): {platform.release()}")
    

    运行后查看输出,确认sys.platform是否为'win32',platform.release()是否为'7'——这能直接定位是判断条件不匹配,还是变量值不符合预期。

  • 修正变量引用冲突:如果你直接用platform模块名作为变量(比如platform = platform.system()),会导致后续调用platform.release()出现错误或异常值,需重命名变量避免冲突:

    import sys
    import platform
    # 假设bcolors是你定义的格式控制模块
    from your_module import bcolors
    
    os_system = platform.system()
    os_release = platform.release()
    
    if sys.platform == "win32":
        if os_release in ("10", "11"):
            print(f"{bcolors.WARNING}Welcome to {bcolors.BOLD}B Kernel{bcolors.ENDC}")
        else:
            print("Welcome to B Kernel.")
    else:
        print(f"{bcolors.WARNING}Welcome to {bcolors.BOLD}B Kernel{bcolors.ENDC}")
    
  • 简化判断逻辑:用in操作符替代多个or,让代码更简洁且不易出错:

    if sys.platform == "win32":
        print(
            f"{bcolors.WARNING}Welcome to {bcolors.BOLD}B Kernel{bcolors.ENDC}" 
            if os_release in ("10", "11") 
            else "Welcome to B Kernel."
        )
    else:
        print(f"{bcolors.WARNING}Welcome to {bcolors.BOLD}B Kernel{bcolors.ENDC}")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 19:31:35