SyntaxError Eol medan du skannar sträng bokstavlig?
syntaxfel upptäcks innan programmen körs. Vanligtvis är det bara ett skrivfel eller ett syntaktiskt misstag. Ett sådant fel i Python är Syntaxenfel EOL medan skanning sträng bokstavlig.
detta syntaxfel inträffar medan tolken skannar strängbokstäverna och träffar EOL(’End Of Line’). Men om det inte hittar ett specifikt tecken före EOL, uppstår felet.
Låt oss förstå det mer med hjälp av ett exempel.
Vad är ”SyntaxError EOL medan du skannar sträng bokstavlig”?
ett SyntaxError EOL-fel(end of Line) uppstår när Python-tolken inte hittar ett visst tecken eller en uppsättning tecken innan kodrad slutar. När felet höjs stoppas kodkörningen.
- saknade citat för att stänga strängen
- strängen sträcker sig förbi en rad
saknade citat för att stänga strängen:
när du stänger en sträng finns det ofta tillfällen då vi glömmer att lägga till ett inverterat komma (singel eller dubbel). När detta händer kan Python-tolken inte hitta slutet på raden medan du skannar strängen. Således inträffar SyntaxError EOL-felet.
exempel 1:
MyList = if not MyList: print("MyList is emptyelse: print("MyList is not empty")
utgång:
File "main.py", line 3 print("MyList is empty ^SyntaxError: EOL while scanning string literal
förklaring
i ovanstående kod har vi initierat en tom lista MyList och använt ett if-else-block för att skriva ut om ’MyList’ är tom eller inte. Inuti if-blocket används utskriftssatsen för att skriva ut en sträng. Men strängen saknar dubbla inverterade kommatecken i slutet. Och på grund av de saknade kommatecken kan Python-tolken inte hitta slutet på strängen.
således uppstår SyntaxError-felet.
lösning
se till att strängen alltid ska stängas inom enkla eller dubbla citat.
rätt kod
llist = if not llist: print("List is empty")else: print("List is not empty")
utgång
MyList is empty
sträng sträcker sig förbi en rad
i Python kan vi inte förlänga vår sträng som är innesluten i ett enda eller dubbelt inverterat komma förbi en enda rad. Om vi försöker göra det kommer felet ”SyntaxError EOL medan du skannar strängen bokstavlig inträffar” att dyka upp. Om vi vill att vår sträng ska sträcka sig i flera rader, bör de vara inneslutna i trippel inverterade kommatecken (singel eller dubbel).
Exempel 2:
ttuple = ()if not ttuple: print("Tuple isempty")else: print("Tuple is not empty")
Utgång :
file "main.py", line 3 print("MyTuple is ^SyntaxError: EOL while scanning string literal
förklaring
i ovanstående kod har vi initierat en tom tupel ’MyTuple’ och använt if-else-block för att skriva ut om ’MyTuple’ är tom eller inte. Inuti if-blocket används utskriftssatsen för att skriva ut en sträng. Men strängen expanderas i flera rader. Och tolkas inte av python-tolken. Således uppstår felet.
lösning
försök att hålla hela strängen inom en enda rad.
rätt kod:
MyTuple = ()if not MyTuple: print("MyTuple is empty")else: print("MyTuple is not empty")
utgång:
MyTuple is empty
Obs!: Om du vill att strängen ska initieras i flera rader. Använd sedan trippel inverterade kommatecken antingen singel(”’ Single quotes ”’) eller dubbel(”””Double quotes ””””) för att bifoga din sträng.
exempel:
MyTuple = ()if not MyTuple: print("""MyTuple is empty""")else: print("MyTuple is not empty")
utgång:
MyTuple isempty
slutsats
vi hoppas att alla scenarier som förklaras ovan hjälper dig att förhindra SyntaxError EOL medan du skannar sträng bokstavligt fel. Ett annat misstag du måste undvika är att använda felaktiga citat. När du stänger strängar, se till att om det börjar med enkla citat måste det sluta med dubbla citat.