Skip to main content
 首页 » 编程设计

Python if 语句返回

2025年05月04日10soundcode

我在处理可能是简单的 if 语句时遇到了问题。我正在尝试通过要使用的 VM 文件格式类型。即使我放入 VMDK 或 VHD,它仍然返回 VMDK 是无效类型或 VHD 是无效类型。

import sys 
vmtype = sys.argv[3] 
vmtype = str(vmtype).strip().upper() 
## File format check 
if vmtype is not ("VHD") or ("VMDK"): 
    print vmtype + " is an invalid type" 
    sys.exit() 

我已经尝试使用 != 的 if 语句,但没有将参数放在括号中。我在网上搜索了一段时间并尝试了我发现的内容,但仍然遇到同样的问题。

仅供引用,我正在运行 Python 2.6.5

请您参考如下方法:

尝试:

if vmtype not in ("VHD", "VMDK"): 

您当前的代码解析为:

if (vmtype is not ("VHD")) or ("VMDK"): 

这显然是错误的。由于 ("VMDK") 是真值,因此整个语句始终为真。因此 if 语句将始终执行。


请注意,即使您尝试过

if vmtype is not "VHD": 

这是行不通的,因为 is 测试的是身份,而不是值(value)。你会使用:

if vmtype != "VHD":