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
相关产品推荐
相关产品推荐

