Question

je vois dans le code sur cette page wiki Sage le code suivant:

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

Est-ce la syntaxe (1..n) unique de Sage ou est-ce quelque chose en Python? En outre, que fait-il?

Était-ce utile?

La solution

Il est Sage spécifique. Vous pouvez utiliser preparse pour voir comment il est désucré à:

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

Voir pour la documentation de ellipsis_iter, des informations sur la preparser.

Autres conseils

Il y avait un PEP Python pour ajouter cette notation à Python, mais il a été rejeté. Robert Bradshaw a décidé de le mettre en œuvre de toute façon, mais pour le preparser Sage. Il a mis en œuvre les éléments suivants:

  • (a..b) - comme xrange, si un itérateur

  • [a..b] - liste, y compris les terminaisons

  • [a, b, .., c] - progression arithmétique

Ce n'est pas la syntaxe Python. Je suppose que cela crée une plage de 1 à 12.

syntaxe (1..n) n'existe pas en Python.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top