Python(1..n)语法?

时间:2010-08-18 11:47:38

标签: python sage

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

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

这个(1..n)语法对Sage是唯一的还是Python中的东西?此外,它做了什么?

4 个答案:

答案 0 :(得分:13)

这是特定于圣人的。您可以使用preparse查看它是如何去除的:

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

有关预分析器的信息,请参阅here以获取ellipsis_iterhere的文档。

答案 1 :(得分:10)

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

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

Python中不存在

(1..n)语法。