如何检查变量不等于指定字符串?Python操作系统判断异常修复
问题原因
- 错误1:判断条件的目标值书写错误,你写的
"'Linux'"是包含单引号的字符串,而platform.system()返回的是无额外引号的'Linux',二者值永远不相等,导致条件始终触发。 - 错误2:值比较错误使用了
is not运算符。is/is not用于判断两个变量是否指向内存中的同一个对象,字符串值比较应当使用!=运算符。 - 补充:你给出的原始代码还存在缩进错误,函数内部的代码没有正确缩进,运行会直接触发语法错误。
修复后的代码
import platform import time # 注意用到的color变量需要提前导入对应模块或者自行定义 def getos(): osys = platform.system() if osys != 'Linux': print(color.lightred + "This program only runs on Linux operating systems.") time.sleep(2) quit() getos()
兼容优化建议
如果需要避免不同环境下返回值大小写差异导致的判断失效,可以把返回值转大写后再判断:
if osys.upper() != 'LINUX': # 原有退出逻辑
内容的提问来源于stack exchange,提问作者Brennan McCown
相关产品推荐
相关产品推荐

