- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 python
中实现凯撒密码,并且我正在使用 argparse
来解析参数。
但是我不知道如何创建多个这样的独占参数:
caesar.py ,- '-b'
/
'-d' --- xor
/ \
xor `- '-k key'
\
'-e' --- '-k key'
您必须指定 -d
或 -e
(不包括)。
如果指定 -e
,则必须指定 -k
。 -b
被禁止。
如果指定 -d
,则必须指定 -k
或 -b
(不包括)。
这是我做的:
parser = argparse.ArgumentParser(description="Caesar Cipher")
parser.add_argument("text", nargs="?", help="message to encode/decode")
parser_code = parser.add_mutually_exclusive_group(required=True)
parser_code.add_argument("-e", action="store_true", help="encode")
parser_code.add_argument("-d", action="store_true", help="decode")
parser_decode = parser.add_mutually_exclusive_group(required=True)
parser_decode.add_argument('-k', type=int, dest="key", help="key to use")
parser_decode.add_argument('-b', action="store_true" help="bruteforce the key")
args = parser.parse_args()
实际上,它不起作用。事实上,我仍然可以使用:
python caesar.py -e -b message
选项 -b
应该没有意义。我知道我可以简单地进行检查并调用 parser.print_help()
,但是我希望在解析期间进行此检查,例如独占检查。
最佳答案
我不认为 argparse
有任何条款允许你的情况。我能想到的最好的方法是使用子解析器:
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
actions = parser.add_subparsers(dest='action')
encode_parser = actions.add_parser('encode')
encode_parser.add_argument('-k', type=int, dest="key", help="key to use")
decode_parser = actions.add_parser('decode')
decode_parser.add_argument('-k', type=int, dest="key", help="key to use")
decode_parser.add_argument('-b', dest='bruce_force', action='store_true')
print parser.parse_args()
./caesar.py encode -k 5
./caesar.py decode -k 9 -b
关于python - Argparse 和几个独占论据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33426528/
当我在其中一个扬声器上打开独占模式音频流时,会发出奇怪的嗡嗡声。这种嗡嗡声不会在我的其他设备上的相同条件下发生,也不会在一般的独占推送模式或共享模式下发生。 问题似乎是 WASAPI 将周期设置为比我
我的一个类中有一个 double 值,并且有一个上限。 问题是当我尝试将此变量设置为大于其限制的值时。当发生这种情况时,我想将其设置为限制内最接近的值。 当我尝试时,尴尬的情况发生了 .getLimi
我有锁定每个函数(某个库的)的代码,我想对其进行优化。给定函数A和B ,我不介意A与任何其他同时运行 A ,或任何 B与任何其他同时运行 B ,但没有A可以在任何 B 时运行正在运行,反之亦然。线程计
当 XML 必须根据 http://www.w3.org/TR/xml-exc-c14n/ 规范化时,下面的 XML 片段应该相等吗?(注意,. 字符代表一个 ' ' 空格) . ..data .
我想限制对整个应用程序的访问 /*但对于某些 Servlet 则不然。它们应该是公开的。 有没有一种方法可以轻松做到这一点(我想象有一些排除或可能覆盖?)或者我是否必须将文件排列在子文件夹中并允许访问
在一个 spring-mvc 项目中,我对索引/主页的内容进行了测试: @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockM
完全依赖 ARKit 自动平面检测是我不想做的事情,因为它需要时间来检测表面,然后现实生活中的表面应该有足够的纹理,因此我需要考虑一些事情提供一个选项,如果我愿意,我应该能够通过点击按钮随意添加 an
我是一名优秀的程序员,十分优秀!