2015-10-19 2 views
-3

Pour le code suivant:compte à rebours Python xrange faire

for slot in xrange(360-1,-1,-1): 

Ce qu'il fait la sortie?

Comment puis-je obtenir ma sortie désirée:

360-359-358-357-356....-- 3-2-1 
+0

La gamme comprendra le premier numéro et * pas * inclure le second. Donc vous voulez 'xrange (360, 0, -1)'. – Kevin

+0

La chaîne désirée aura 1329 caractères. Êtes-vous sûr de vouloir l'imprimer en une seule ligne? Sauf si vous voulez simplement dire que vous voulez compter de 360 ​​à 1, et non la chaîne littérale ''360-359-358 ...''. – TigerhawkT3

Répondre

2

Je pense que vous cherchez quelque chose comme ceci:

>>> for slot in xrange(360, 0, -1): 
...  print(slot) 
  • La première entrée est l'endroit où vous commencez à partir.
  • La deuxième entrée est l'endroit où vous voulez vous arrêter.
  • La troisième entrée est votre étape. Dans ce cas -1 indique, « aller par 1 à chaque fois »

Si vous cherchez à la sortie de votre liste avec celle de trait d'union entre les deux, alors vous pouvez faire quelque chose comme ceci:

'-'.join([str(i) for i in xrange(360, 0, -1)]) 

Pour décomposer de l'intérieur:

  • [i for i in xrange(360, 0, -1)]: une compréhension de la liste qui effectuera votre opération de gamme et créer une liste de la plage spécifiée.
  • join: Convertir la liste à une chaîne
  • -: Indique pour séparer chaque « partie » avec un trait d'union
+0

merci mais ne fonctionne pas:/ –

+0

Je viens de regarder votre sortie. Cherchez-vous exactement: 360-359-358? tous sur une seule ligne exactement dans ce format? – idjaw

+0

@Ademd vous devez redéfinir votre question, car la réponse d'idjaw est correcte. – Leb