Mac OS X Find Version返回两个语句

时间:2014-12-07 00:12:27

标签: python macos python-2.7 python-3.x

所以我一直在编写一个程序,到目前为止,我觉得我做得很好。我有一个使用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。"一部分。

如果你们能帮助我,那就太好了。 :)

1 个答案:

答案 0 :(得分:1)

如果您只想运行一个部件,则应使用elif

if v == ...
    pass
elif v == ...
    pass
elif v == ...
    pass
else:
    ...

否则,您将始终打印两条短信(如您所见)。发生这种情况的原因是,在下面的if / else中,总有一个是真的:

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部分。这意味着它将打印另一条短信。