Python(1..n)语法?

exu*_*ero 6 python sage

我在这个Sage wiki页面的代码中看到以下代码:

@interact
def _(order=(1..12)):
Run Code Online (Sandbox Code Playgroud)

这个(1..n)语法对Sage来说是独一无二的还是Python中的东西?另外,它做什么?

sdc*_*vvc 13

这是特定于圣人的.你可以用preparse它来看看它是如何被玷污的:

sage: preparse("(1..12)")
'(ellipsis_iter(Integer(1),Ellipsis,Integer(12)))'
Run Code Online (Sandbox Code Playgroud)

这里为文档ellipsis_iter,这里为在预解析器信息.


Wil*_*ein 10

有一个Python PEP将此表示法添加到Python,但它被拒绝了.罗伯特布拉德肖决定实施它,但对于Sage preparser.他实施了以下内容:

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

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

  • [a,b,..,c] - 算术级数