2017-03-20 1 views
0

Ich versuche, "Wie man Python auf die harte Tour lernt" zu verfolgen und stoße schon sehr früh auf Probleme. Wenn ich versuche, mein erstes Programm 'Hallo Welt' zu starten, bekomme ich einen Syntaxfehler.SyntaxError: EOL beim Scannen von String-Literal - Warum werden meine Anführungszeichen ignoriert?

Fehlermeldung:

File "ex1.py", line 1 

print "Hello World! 
       ^
SyntaxError: EOL while scanning string literal 

Der Code in meiner Textdatei geschrieben:

print "Hello World!" 
print "Hello Again" 

Ich habe die Datei als .py gespeichert. Ich habe den Code etwa fünf Mal neu geschrieben. Ich habe sogar den Autoren-Code kopiert und eingefügt und bekomme immer noch denselben Fehler. Aus der Fehlermeldung geht hervor, dass ich nach "World!" Kein Anführungszeichen gesetzt habe. Allerdings gibt es dort ein Zitat.

Ich bemerkte auch, dass der Fehler das erste Anführungszeichen druckte - kurz vor dem Hallo von Hallo. Ich denke, dass diese Probleme zusammenhängen müssen. Irgendwie denke ich, dass der Parser meine Anführungszeichen ignoriert.

+0

Ich sehe kein Zitat in dem Code, den Sie gepostet haben. –

+0

Der genaue Code, wie in Atom geschrieben (der Texteditor ich verwende) ist wie folgt - print "Hallo Welt!" // print "Hallo wieder" // print "Ich mag es, dies zu tippen." // print "Das macht Spaß." // print 'Yay! Drucken.' // print "Ich würde dir lieber nicht gefallen." // print "Ich" sagte "berühre das nicht." –

+1

Es wäre besser, den genauen Code in die Frage zu setzen - Sie sollten in der Lage sein, es zu bearbeiten. Auf diese Weise können Sie die Formatierung beibehalten. Zur Bestätigung: Der Pfeil unter der Linie zeigt auf das Ausrufezeichen? Was passiert, wenn Sie das Ausrufezeichen löschen? –

Antwort

0

Ihr die Endung Doppel qoutes fehlt print "Hello World!"

UPDATE: Es funktioniert gut. Speichern Sie das in Atom. Mit Drucken auf jeder Zeile "Nicht eine Zeile". ex: Speichern Sie es in "test.py" ohne Qoutes. Und python test.py

print "Hello World!" 
print "Hello Again" 
print "I like typing this." 
print "This is fun." 
print 'Yay! Printing.' 
print "I'd much rather you 'not'." 
print 'I "said" do not touch this.' 

Keine Leerzeichen vor der Print-Anweisung auszuführen.

+0

Ich habe es so in meiner Textdatei geschrieben. Meine Frage ist, warum meine Textdatei-Zitate nicht in meine Befehlszeile übertragen werden. –

+0

@EnzoCnop: Nein, Ihre Frage ist "Warum bekomme ich einen' SyntaxError: EOL beim Scannen von String-Literal' ". Vielleicht bearbeiten Sie eine andere Datei als Sie gerade ausführen. – Matthias

+0

Diese Fragen sind eine in der gleichen. Ich habe die Zitate um "Hallo Welt!" geschrieben wie in meiner Textdatei empfohlen, aber der Fehler sagt mir, dass ich diese Zitate nicht habe. Ich versuche herauszufinden, warum ich diesen Fehler bekomme, wenn die Zitate korrekt in der Textdatei platziert sind. –

0

Überprüfen Sie das Ende Anführungszeichen ist wirklich ein ASCII-Anführungszeichen ". Überprüfen Sie das Ausrufezeichen ist wirklich ein ASCII-Ausrufezeichen. Löschen Sie die gesamte Zeile und wiederholen Sie es bei Bedarf. Es ist möglich, dass Sie spezielle Unicode-Zeichen anstelle des ASCII verwendet Allerdings Zeichen

, wenn ich das versuchen.

print "dddddd” 

ich:

$ python abc 
    File "abc", line 1 
SyntaxError: Non-ASCII character '\xe2' in file abc on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 

Wenn ich die UTF-8 characte erklären jedoch setzen r (etwas, das Sie nicht angezeigt haben Sie getan haben):

-*- coding: utf-8 -*- 
print "dddddd” 

Dann habe ich einen ähnlichen Fehler erhalten (wenn auch ein wenig anders):

File "abc", line 2 
    print "dddddd” 
       ^
SyntaxError: EOL while scanning string literal 
+0

Atom zeigt an, dass ich in UTF-8 bin. Obwohl dies nützlich ist, und gut zu wissen, vorwärts. Vielen Dank! –

0

Haben Sie versucht, Klammern mit dem ‚Drucken mit ' Erklärung? Wie folgt aus:

print('Hello') 

BR

+2

Wahrscheinlich gut für Python 3-Kompatibilität, aber diese Frage war über Python 2.7. Python 2.7 benötigt keine Klammern für die print-Anweisung. Obwohl es hilfreich sein könnte zu sehen, ob sich der Fehler ändert ... –

0

Ich bin mir nicht sicher, was es festgelegt, aber ich landete Löschen der Datei und Host-Ordner über das Terminal mit „rm -R“, einen Neustart meines Computers, und die Schaffung von ein neuer Ordner, um von Atom aus zu arbeiten. Ich folgte dann den gleichen Schritten, auf die gleiche Weise, und es lief. Danke für Ihre Geduld Jungs. Wenn Sie daran festhalten, versuchen Sie einfach alles zu löschen und starten Sie Ihren Computer neu.

Verwandte Themen