所以我一直在编写一个程序,到目前为止我认为我做得很好。我有一个使用 platform.mac_ver() 查找 Mac OS X 版本的函数。我从 platform.mac_ver() 中分离出额外的值,以便它只包含版本,仅此而已。不过,我也想添加 flavor 文字。这就是我所拥有的:
def Version_Finder():
try:
v, _, _ = platform.mac_ver()
v = float('.'.join(v.split('.'[:2]))
if v == 10.5:
print("Mac OS X v. 10.5 Leopard")
if v == 10.6:
print("Mac OS X v. 10.6 Snow Leopard")
依此类推,直到:
if v == 10.10:
print("Mac OS X v. 10.10 Yosemite")
else:
print("Mac OS X v. ", v)
这是我运行 10.9 Mavericks 时的输出:
Mac OS X v. 10.9 Mavericks
('Mac OS X v. ', 10.9)
我想要的只是第一行输出,但我认为我需要 else 语句,这样如果有人运行类似 10.4 Tiger 的东西,他们仍然会得到“Mac OS X v.”部分。
如果你们能帮助我,那就太好了。 :)
最佳答案
如果您只想运行一部分,则应该使用 elif
:
if v == ...
pass
elif v == ...
pass
elif v == ...
pass
else:
...
否则,您总是会打印两条短信(如您所见)。发生这种情况的原因是在下面的 if/else 中,总有一个是 true:
if v == 10.10:
print("Mac OS X v. 10.10 Yosemite")
else:
print("Mac OS X v. ", v)
因此,如果您运行的是 10.9,那么它将打印 if v == 10.9
语句,但它还会检查上面的 if/else 语句。在这种情况下,if v == 10.10
不成立,因此它将运行 else
部分。这意味着它将打印另一条短信。
关于python - Mac OS X 查找版本返回两条语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27338061/