【问题标题】:Python (1..n) syntax?Python(1..n)语法?
【发布时间】:2011-03-31 12:21:13
【问题描述】:

我在Sage wiki page 的代码中看到以下代码:

@interact
def _(order=(1..12)):

这是 Sage 独有的 (1..n) 语法还是 Python 中的某些东西?还有,它有什么作用?

【问题讨论】:

    标签: python sage


    【解决方案1】:

    这是 Sage 特有的。您可以使用preparse 来查看它是如何脱糖的:

    sage: preparse("(1..12)")
    '(ellipsis_iter(Integer(1),Ellipsis,Integer(12)))'
    

    有关ellipsis_iter 的文档,请参阅here,有关预解析器的信息,请参阅here

    【讨论】:

      【解决方案2】:

      有一个 Python PEP 可以将此表示法添加到 Python,但它被拒绝了。无论如何,Robert Bradshaw 决定实现它,但要使用 Sage 预解析器。他实现了以下内容:

      • (a..b) -- 像 xrange,所以是迭代器

      • [a..b] -- 列表,包括端点

      • [a,b,..,c] -- 等差数列

      【讨论】:

        【解决方案3】:

        这不是 Python 语法。我猜它会创建一个从 1 到 12 的范围。

        【讨论】:

          【解决方案4】:

          (1..n) 语法在 Python 中不存在。

          【讨论】:

            猜你喜欢
            • 2021-04-04
            • 1970-01-01
            • 1970-01-01
            • 2013-06-23
            • 1970-01-01
            • 1970-01-01
            • 2019-06-20
            • 2011-02-16
            • 1970-01-01
            相关资源
            最近更新 更多