2017-03-24 5 views
1

Derzeit habe ich diesen Code:Python, eine neue Zeile nach Ende beginnend = ""

for i in range(lower_limit, upper_limit+1): 

    for j in range(0,len(prime_number)): 
     for k in range(0 + j,len(prime_number)): 
      if i == prime_number[j] + prime_number[k] and i % 2 == 0: 

       print(i, "=", prime_number[j], "+", prime_number[k]) 

die druckt:

 
10 = 3 + 7 
10 = 5 + 5 
12 = 5 + 7 
14 = 3 + 11 
14 = 7 + 7 

Ich brauche das Ergebnis aussehen:

 
10 = 3 + 7 = 5 + 5 
12 = 5 + 7 
14 = 3 + 11 = 7 + 7 

Ich weiß, ich muss end = "" irgendwie, aber dann druckt es alle Zahlen in nur einer Zeile. Was mache ich?

+1

Mögliches Duplikat [? Wie kann ich die Newline nach einer print-Anweisung unterdrücken] (http://stackoverflow.com/ Fragen/12102749/how-can-i-unterdrücken-the-newline-nach-einem-print-statement) –

+0

Sie nicht ** haben ** Ende zu verwenden. Ich würde vorschlagen, eine 'liste' entlang der Linien von' [(prime1, [tuple1, tuple2, ...]), (prime2, [tuple1]), ...] 'zu bauen und dann daraus ganze Strings zu erzeugen ein Versuch. – TemporalWolf

Antwort

3

Verwenden Sie end= " " und eine leere print() am Ende der äußeren Schleife, um die Linie zu beenden.

Zum Beispiel:

>>> for i in range(3): 
...  print("foo", end = " ") 
...  print("bar", end = " ") 
...  print() 
... 
foo bar 
foo bar 
foo bar 

Speziell für Ihren Fall:

for i in range(lower_limit, upper_limit+1): 
    print(i, end = " ") 
    for j in range(0,len(prime_number)): 
     for k in range(0 + j,len(prime_number)): 
      if i == prime_number[j] + prime_number[k] and i % 2 == 0: 

       print("=", prime_number[j], "+", prime_number[k],end = " ") 
    print() 
+0

Vielen Dank, das hat mein Problem gelöst! –