2017-10-05 10 views
1

Je veux imprimer série Fibonacci dans le format: 0-1-1-2-3-5-8 jusqu'à une valeur entière entrée par l'utilisateur et les valeurs doivent être séparées par '-' en une seule ligne.Comment imprimer les éléments '-' séparés en python?

Est-ce que cela peut être fait en utilisant une instruction d'impression seulement?

  • En utilisant end='-' il donne '-' dans le dernier. Comment le résoudre en utilisant sep = '-'? Comment résoudre le problème en utilisant sep = '-'?

mon code actuel est:

A=0 
B=1 
for value in range(0,int(input())): 
    print(A,end='-') 
    temp1 = A 
    temp2 = B 
    A = temp2 
    B = temp1 + temp2 

Sortie courant: 0-1-1-2-3-5-8-

+0

Dressez une liste et utilisez ' « - » join (liste)' – Barmar

Répondre

0

C'est en fait assez simple: utiliser une commande d'impression différent pour la dernière valeur:

A=0 
B=1 
for value in range(0,int(input())-1): 
    print(A,end='-') 
    temp1 = A 
    temp2 = B 
    A = temp2 
    B = temp1 + temp2 

print(A) 

Aussi, je suggère que vous désambiguïsiez t il limite en boucle:

limit = int(input()) 
for value in range(limit-1): 
    ... 
0

comment le résoudre en utilisant sep='-'?

Le séparateur est utilisé entre les valeurs lorsque vous transmettez plusieurs valeurs à print. Cela ne vous sert à rien si vous voulez imprimer les valeurs à l'intérieur de la boucle, une par une, au fur et à mesure qu'elles sont générées.

Cependant, l'accumulation de valeurs multiples, puis faire un appel d'impression à la fin de la boucle est sans doute un meilleur code.

vals = [] 

for ... in ...: 
    val = ... 
    vals.append(val) 

print(*vals, sep='-') 
+0

d'accord, est-il comme les deux '-'. join() et sep = '-' sont des méthodes similaires pour séparer les valeurs de la liste –

+0

Si tout ce que vous voulez faire est d'imprimer plusieurs valeurs, ne les "str.join". Transmettez-les à l'impression comme je l'ai montré. – wim