Pourquoi ne puis-je pas utiliser un étoilé expression?

Mon code

$ python
Python 3.5.2 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:53:06) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = (1, 2)
>>> '%d %d %d' % (0, *a)
'0 1 2'
>>> '%d %d %d' % (*a, 3)
'1 2 3'
>>> '%d %d' % (*a)
  File "<stdin>", line 1
SyntaxError: can't use starred expression here
>>> 

Ma question, pourquoi?

Dans un ton plus sérieux: j'aimerais une réponse, ou une référence, qui détaille tous les tenants et les aboutissants de l'utilisation d'un étoilé expression, il se trouve que je suis parfois surpris de son comportement...

Additif

À refléter une partie de la lumière des commentaires qui
immédiatement suivie de ma question-je ajouter le code suivant

>>> '%d %d' % (, *a)
  File "<stdin>", line 1
    '%d %d' % (, *a)
               ^
SyntaxError: invalid syntax
>>> '%d %d' % (*a,)
'1 2'
>>> 

(J'avais essayé le (, a) partie avant de poster la question d'origine, mais j'ai omis de 'la cause de l'erreur n'est pas liée à la vedette.)

Il y a une syntaxe, en python ≥ 3.5, qui "fonctionne", mais néanmoins, je voudrais une compréhension.

  • (*a,) Notez la virgule à la fin pour en faire un tuple.
  • l'extension de déballage (pour * et ** sur les RHS) était de 3,5. Et la syntaxe correcte est (*a,)...
  • I en savoir. C'est pourquoi j'ai demandé à gboffi au-dessus de préciser la version de python-elle/il utilise!!
  • Jetez un oeil à la "Déballage Iterables" documentation sur ALORS stackoverflow.com/documentation/python/809/...
  • Fait intéressant, la format() fonction ne pas avoir ce problème, c'est à dire '{:d} {:d}'.format(*a) --> '1, 2'. Le problème semble lié à la % chaîne de formatage.
  • SI la documentation est une ressource que je n'ai pas encore intériorisé... merci pour le pointeur
  • C'est parce que vous êtes à l'aide de l'argument déballage là, ne cherche pas à créer un n-uplet. Voir mon édité réponse ci-dessous.

InformationsquelleAutor gboffi | 2016-11-18