2017-01-04 2 views
0
import sys 
string_input = "6\n212 132322\n212 21\n65 56\n32 3\n3232 32\n313 13\n0" 
# a two dimensional array to store points 
points = [] 
for line in string_input.split("\n"): 
    # split the inputed line using space to divide x and y coordinate 
    points_str = line.split(" ") 
    point_coordinate = [] 
    if len(points_str) != 1: 
     for val in points_str: 
      point_coordinate.append(int(val)) 
      points.append(point_coordinate) 
     print(str(points)) 
print(len(points_str)) 

Warum gibt die len (points_str) 1 zurück? Ich bin auch sehr verwirrt, warum 1! = 1 weiterhin den Rest des Codes ausführt.Warum gibt len ​​(point_str) 1 zurück?

+3

Wissen Sie, dass hier mehr als ein Wert von "points_str" involviert ist? – user2357112

+0

Ja, ich habe den Ausdruck (len (points_str)) hinzugefügt, um zu überprüfen, wie groß die Länge war, nämlich 1. – Laptic

+0

Das ist nur das Drucken der Länge des endgültigen Wertes, der 'points_str' zugewiesen wurde, keiner der vorherigen Werte. – user2357112

Antwort

-1

Nun, weil es von Länge 1 ist. Zumindest in Ihrer ersten Iteration.

Ihre erste Linie "6" ist, so points_str ist [ "6"], die eine Länge von 1

hat Sie wirklich einen Debugger verwenden soll.

+0

Ich bin nicht sehr vertraut mit Debuggern, könnten Sie das erklären? – Laptic

+0

Es ist das Ergebnis der letzten Iteration, nicht der ersten, die gedruckt wird. –

+0

Die letzte Zeile ist 0. Verwenden Sie einen Debugger. – zmbq

0

Zuerst durchlaufen Sie Ihre Schleife durch alle Iterationen, dann drucken Sie len(points_str). Jetzt erhält points_str einen neuen Wert in jeder Iteration, aber da Sie nur am Ende drucken, erhalten Sie die Länge des letzten Wertes, der points_str zugewiesen wurde. Dies ist das letzte Element von string_input.split("\n"), welches '0' ist. Die Länge ist in der Tat '0' 1.

Try die Linie

print(len(points_str)) 

Innenseite der Schleife zu bewegen (das heißt, nur vier Räume addiert) und den Ausgang überprüfen. Sie sollten auch versuchen, points_str auszudrucken, nicht nur seine Länge.

Verwandte Themen