首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本Docopt示例不起作用

基本Docopt示例不起作用
EN

Stack Overflow用户
提问于 2015-04-21 01:53:44
回答 1查看 955关注 0票数 1

因此,我正在尝试从docopt examples git repo运行odd_even_example.py

无论我尝试做什么,或者改变什么,示例都不会像预期的那样工作。

当我:

代码语言:javascript
复制
python odd_even_example.py 1 2 3 4

我希望看到一个字典,其中包含我传递的命令行选项或参数。但我只是一遍又一遍地获取__doc__字符串。

我很困惑,因为我只是从示例存储库中复制并逐字运行了文件,而它完全损坏了。

以下是该文件的内容:

代码语言:javascript
复制
"""Usage: odd_even_example.py [-h | --help] (ODD EVEN)...
Example, try:
  odd_even_example.py 1 2 3 4
Options:
  -h, --help
"""
from docopt import docopt


if __name__ == '__main__':
    arguments = docopt(__doc__)
    print(arguments)
EN

回答 1

Stack Overflow用户

发布于 2015-05-20 20:47:17

我也遇到了同样的问题,我认为问题出在您是否在命令的(ODD EVEN)部分输入了一些内容。我尝试过它,但仍然不明白它到底是如何工作的,但这里有一个示例,它的工作方式与您预期的一样。它接受一个或多个数字作为输入,并将结果打印到stdout。

代码语言:javascript
复制
"""Usage: odd_even_example.py [-h | --help] (NUMBERS)...

Example, try:
  odd_even_example.py 1 2 3 4

Options:
  -h, --help
"""
from docopt import docopt

def is_even(x):
    xIsEven = x%2 == 0
    if xIsEven:
        return 'EVEN'
    else:
        return 'ODD'

if __name__ == '__main__':
    arguments = docopt(__doc__) # returns a dictionary
    print(arguments)
    numbers_entered = [int(i) for i in arguments['NUMBERS']]
    answers = [is_even(x) for x in numbers_entered]
    print(answers)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29754980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档