Синтаксис Python (1..n)? - PullRequest
       13

Синтаксис Python (1..n)?

6 голосов
/ 18 августа 2010

Я вижу в коде на этой Sage wiki page следующий код:

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

Этот (1..n) синтаксис уникален для Sage или это что-то в Python? Кроме того, что это делает?

Ответы [ 4 ]

13 голосов
/ 18 августа 2010

Это зависит от мудреца. Вы можете использовать preparse, чтобы увидеть, как это сделать:

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

См. здесь для документации ellipsis_iter, здесь для получения информации о препарере.

10 голосов
/ 18 августа 2010

Существовал PEP Python для добавления этой записи в Python, но она была отклонена. Роберт Брэдшоу решил реализовать это в любом случае, но для подготовителя Sage. Он реализовал следующее:

  • (a..b) - как xrange, так что итератор

  • [a..b] - список, включая конечные точки

  • [a, b, .., c] - арифметическая прогрессия

1 голос
/ 18 августа 2010

Это не синтаксис Python. Я предполагаю, что это создает диапазон от 1 до 12.

0 голосов
/ 18 августа 2010

(1..n) синтаксис не существует в Python.

...