【发布时间】:2016-07-10 20:29:28
【问题描述】:
我有一个程序用于枚举在 Windows 上具有管理权限的用户。我还想显示存储在名为num_administrator 的变量中找到的帐户数量。
我有以下代码:
if num_administrators > 1:
print("[*] {} accounts with administrative privileges found:\n".format(num_administrators))
show_admins()
elif num_administrators == 1:
print("[*] {} account with administrative privileges found:\n".format(num_administrators))
show_admins()
else:
print("[*] No accounts with administrative privileges found.\n")
如果没有管理员我想打印[*] No accounts with administrative privileges found.
如果有 1 个或多个 admins 显示的消息几乎相同,唯一的区别是 account 或 accounts 根据数量显示。这只是一封信(s)的问题。
我可以仅通过使用独特的语句或以更简单的方式来实现条件打印吗?
是否可以打印类似的内容:
print("[*] {} account".format(num_administrators) + if num_administrators > 1 "s" + "with administrative privileges found:\n")
不要介意我上面的代码,我不知道我在做什么是否有意义的语法,这只是为了让你了解我在想什么,你可以告诉我它是否可行.
除了我调用函数show_admins() 3 次(用于打印管理员帐户),但实际上我猜我最后只能调用一次。
【问题讨论】:
-
只需将缩进向后移动 4 个空格 - 你的 elif 和 else 永远不会保持在 if 内。
-
@dmitryro 如果是这样,他会收到
SyntaxError。没有if,你就不能拥有elif。可能只是复制和粘贴错误。 -
ngettext正是为此目的而设计的。 -
你说得对,代码在 Stack Overflow 上的缩进效果不好,但在我的电脑上还可以。我编辑了这个问题。你能再看看这个问题,看看我在问什么吗? @dmitryro
标签: python string python-3.x if-statement printing