2017-10-05 1 views
1

Ich möchte Fibonacci-Serie im Format: 0-1-1-2-3-5-8 bis zu einem Integer-Wert vom Benutzer eingegeben und Werte sollten durch '-' in einer einzigen Zeile getrennt werden.Wie '-' getrennte Elemente in Python drucken?

Kann dies nur mit print statement erfolgen?

  • von end='-' mit es gibt '-' in der letzten.

  • Wie löst man es mit sep = '-'?

meine aktuellen Code ist:

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

Stromausgang: 0-1-1-2-3-5-8-

+0

Machen Sie eine Liste und Verwendung '‚-‘join (Liste)' – Barmar

Antwort

0

Das ist eigentlich ganz einfach ist: verwenden Sie einen anderen Druck Befehl für den letzten Wert:

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) 

Ich schlage auch vor, dass Sie t disambiguieren er Schleifengrenze:

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

wie es zu lösen durch sep='-' mit?

Das Trennzeichen wird zwischen Werten verwendet, wenn Sie mehrere Werte an print übergeben. Das nützt Ihnen also nichts, wenn Sie die Werte innerhalb der Schleife einzeln nacheinander drucken möchten.

jedoch mehrere Werte akkumulieren und dann am Ende der Schleife einen Druck Anruf ist wohl besser Code:.

vals = [] 

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

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

in Ordnung, ist es wie '-'. join() und sep = '-' sind ähnliche Methoden, um Listenwerte zu trennen –

+0

Wenn Sie nur mehrere Werte drucken möchten, tun Sie nicht 'str.join' sie. Übergeben Sie sie alle an die "Print", wie ich gezeigt habe. – wim