SyntaxError EOL szkennelés közben String Literal?
szintaktikai hibákat észlel a program futtatása előtt. Általában ez csak gépelési hiba vagy szintaktikai hiba. Ilyen hiba a Pythonban a SyntaxError EOL a string literal beolvasása közben.
ez a Szintaxerror akkor fordul elő, amikor az interpreter beolvassa a string literálokat, és eléri az EOL-t(‘sor vége’). De ha nem talál konkrét karaktert az EOL előtt, akkor a hiba felmerül.
értsük meg jobban egy példa segítségével.
mi az a “SyntaxError EOL string literal szkennelés közben”?
SyntaxError EOL(sor vége) hiba akkor fordul elő, ha a Python tolmács nem talál egy adott karaktert vagy karakterkészletet a kódsor vége előtt. Amikor a hiba felmerül, a kódfuttatás leáll.
- hiányzó idézetek a karakterlánc bezárásához
- a karakterlánc egy soron túlnyúlik
hiányzó idézetek a karakterlánc bezárásához:
a karakterlánc bezárása közben gyakran előfordul, hogy elfelejtünk egy fordított vesszőt (egy vagy kettős) hozzáadni. Amikor ez megtörténik, a Python tolmács nem tudja megtalálni a sor végét a karakterlánc beolvasása közben. Így a SyntaxError EOL hiba lép fel.
példa 1:
MyList = if not MyList: print("MyList is emptyelse: print("MyList is not empty")
kimenet:
File "main.py", line 3 print("MyList is empty ^SyntaxError: EOL while scanning string literal
magyarázat
a fenti kódban inicializáltunk egy üres mylist listát, és egy if-else blokkot használtunk a nyomtatáshoz, ha a ‘MyList’ üres vagy sem. Az if blokk belsejében a nyomtatási utasítás egy karakterlánc nyomtatására szolgál. De a karakterláncból hiányzik a kettős fordított vessző a végén. A hiányzó vesszők miatt a Python tolmács nem találja a karakterlánc végét.
így a SyntaxError hiba lép fel.
megoldás
győződjön meg arról, hogy a string mindig zárva belül egyetlen vagy dupla idézőjelek.
helyes kód
llist = if not llist: print("List is empty")else: print("List is not empty")
Output
MyList is empty
String kiterjeszti múlt egy sorban
a Python, nem tudjuk kiterjeszteni a húr, amely zárt egy vagy két fordított vessző már egy sorban. Ha ezt megpróbáljuk megtenni, akkor megjelenik a “SyntaxError EOL a string literal beolvasása közben” hiba. Ha azt akarjuk, hogy a karakterláncunk több sorban meghosszabbodjon, akkor azokat hármas fordított vesszőbe kell zárni (egyszeres vagy kettős).
Példa 2:
ttuple = ()if not ttuple: print("Tuple isempty")else: print("Tuple is not empty")
Kimenet :
file "main.py", line 3 print("MyTuple is ^SyntaxError: EOL while scanning string literal
magyarázat
a fenti kódban inicializáltunk egy üres tuple ‘MyTuple’-t, és az if-else blokkot használtuk a nyomtatáshoz, ha a ‘MyTuple’ üres vagy sem. Az if blokk belsejében a nyomtatási utasítás egy karakterlánc nyomtatására szolgál. De a karakterlánc több sorban bővül. A python tolmács nem értelmezi. Így felmerül a hiba.
megoldás
próbálja meg a teljes karakterláncot egyetlen sorban tartani.
helyes kód:
MyTuple = ()if not MyTuple: print("MyTuple is empty")else: print("MyTuple is not empty")
kimenet:
MyTuple is empty
Megjegyzés: Ha azt szeretné, hogy a karakterlánc több sorban inicializálódjon. Ezután használjon hármas fordított vesszőt, akár egyszeres (“‘egyetlen idézőjelek”‘), akár dupla (“””dupla idézőjelek””””) a karakterlánc csatolásához.
példa:
MyTuple = ()if not MyTuple: print("""MyTuple is empty""")else: print("MyTuple is not empty")
kimenet:
MyTuple isempty
következtetés
reméljük, hogy a fent ismertetett összes forgatókönyv segít megelőzni a SZINTAXERROR EOL-t a String literal hiba beolvasása közben. Egy másik hiba, amelyet el kell kerülnie, a nem megfelelő idézetek használata. A karakterláncok bezárása közben győződjön meg arról, hogy ha egyetlen idézőjelekkel kezdődik, akkor dupla idézőjelekkel kell végződnie.