Frage

Ich sehe in dem Code auf dieser Sage Wikiseite den folgenden Code:

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

Ist das (1..n) Syntax eindeutig Sage oder ist es etwas in Python? Auch, was tut es?

War es hilfreich?

Lösung

Es ist Sage spezifisch. Sie können preparse zu sehen, wie es ist entzuckert an:

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

Siehe hier für die Dokumentation von ellipsis_iter, hier für Informationen über die preparser.

Andere Tipps

Es war eine Python PEP diese Notation zu Python schreiben, aber es wurde abgelehnt. Robert Bradshaw entschied es sowieso zu implementieren, aber für die Sage preparser. Er führte die folgenden:

  • (a..b) - wie xrange, so ein Iterator

  • [a..b] - Liste, einschließlich Endpunkte

  • [a, b, .., c] - arithmetische Progression

Dies ist nicht Python-Syntax. Ich würde vermuten, dass es einen Bereich von 1 bis 12 erstellt.

(1..n) Syntax existiert nicht in Python.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top