2016-05-17 13 views
1

Ich mache ein Programm, um verschiedene Arten von Graphen mit Matplotlib zu demonstrieren, und ich habe ein Problem mit Benutzereingaben.Eingabezeichenfolge Fehler EOF

Mein Programm arbeitet seit ich es erstellt, aber wenn ich es heute lief beim Start ich eine Störung erhalte und ich kann einfach nicht herausfinden, warum. Hier

ist der Code, der den Fehler hier wirft

if options == 0: 
      fileX = input("Enter the file of x coordinates > ") 
      fileY = input("Enter the file of y coordinates > ") 
      title = input("Enter title for the graph > ") 
      xlabel = input("Enter a name for the x-axis > ") 
      ylabel = input("Enter a name for the y-axis > ") 
      g.linegraph(title, xlabel, ylabel, fileX, fileY) 

wird der Fehler (meine Dateien Namen sind 10int1 und 10int2)

Traceback (most recent call last): 
    File "/home/sam/Documents/GraphDemo/src/GraphDemo.py", line 25, in <module> 
    fileX = input("Enter the file of x coordinates > ") 
    File "<string>", line 1 
    10int1 
     ^
SyntaxError: unexpected EOF while parsing 

kann jemand helfen, warum diese Fehler zu erklären, wird geworfen? Es hat bis jetzt funktioniert. Ich habe verschiedene Dateien und verschiedene Eingabemöglichkeiten ausprobiert, bekomme aber immer den gleichen Fehler.

Antwort

1

Führen Sie Python 2.7?

Wenn ja, input Versuche, die Eingabe als Python Ausdruck auszuwerten. Wenn Sie 10int1 als Eingabe eingeben, versucht es, dies als eine Zeichenfolge auszuwerten, was es nicht ist - es gibt keine öffnenden/schließenden Anführungszeichen.

Stattdessen sollten Sie raw_input, verwenden Sie die einfach einen String zurückgibt (ohne zu bewerten zu versuchen). Dann sollten Sie diese Eingabe in eine Ganzzahl oder den von Ihnen gewünschten Typ konvertieren.

+0

Das funktionierte, aber dann bekam ich noch einen Fehler, weil ich 'self' entfernt von' def Kantengraph (self, Titel, xlabel, ylabel, DateiX, filey): 'dann wieder es aufgehört zu arbeiten, wenn ich readded' self' zu beheben der Fehler – sbowde4

+1

Gernot den obigen Kommentar. Ich habe gerade den Code gereinigt und es hat funktioniert – sbowde4