python - Mac OS X 查找版本返回两条语句

标签 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.”部分。

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

最佳答案

如果您只想运行一部分,则应该使用 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/

相关文章:

python - NLTK 无法打开文件(UnicodeDecoreError)

python - 使用 xlsxwriter 写入单元格时是否可以应用多种单元格格式?

python2和pandas : get all occurrence of day during a year in a dataframe

python - 为什么 Python 的 os.walk 会悄无声息地失败?

python - 如何在 keras 中使用 U-net 正确使用批量标准化?

ruby - 无法安装 Commonmarker gem(jekyll 需要)macos

macos - 如何在 Mac OSX 上检查 Matlab 2010b 或更高版本中的可用内存?

macos - MacOS 上的 glibtoolize 告诉我考虑将 `-I m4' 添加到 ACLOCAL_AMFLAGS,但这会产生错误

python - 为什么 re.match ("c", "cat") 不返回 true?

python - 如何为我的杆和楔形添加纹理?