Syntakserror EOL under Scanning String Literal?
syntaksfejl opdages, før programmerne kører. Normalt er det bare en skrivefejl eller en syntaktisk fejl. En sådan fejl i Python er Syntakserror EOL under scanning streng bogstavelig.
denne Syntakserror opstår, mens tolken scanner strenglitteralerne og rammer EOL(‘End Of Line’). Men hvis det ikke finder en bestemt karakter før EOL, hæves fejlen.
lad os forstå det mere ved hjælp af et eksempel.
Hvad er “Syntakserror EOL under scanning string bogstavelig”?
en syntaksfejl EOL(End Of Line) – fejl opstår, når Python-tolken ikke finder et bestemt tegn eller et sæt tegn, før kodelinjen slutter. Når fejlen hæves, stoppes kodeudførelsen.
- Manglende Citater til lukning af strengen
- streng strækker sig forbi en linje
Manglende Citater til lukning af strengen:
mens vi lukker en streng, er der ofte tidspunkter, hvor vi glemmer at tilføje et omvendt komma (enkelt eller dobbelt). Når dette sker, er Python-tolken ikke i stand til at finde slutningen af linjen, mens du scanner strengen. Således forekommer Syntakserror EOL-fejlen.
eksempel 1:
MyList = if not MyList: print("MyList is emptyelse: print("MyList is not empty")
Output:
File "main.py", line 3 print("MyList is empty ^SyntaxError: EOL while scanning string literal
forklaring
i ovenstående kode har vi initialiseret en tom liste MyList og brugt en If-else-blok til at udskrive, hvis ‘MyList’ er tom eller ej. Inde i If-blokken bruges udskriftserklæringen til at udskrive en streng. Men strengen mangler dobbelt inverterede kommaer i slutningen. Og på grund af de manglende kommaer kan Python-tolken ikke finde slutningen af strengen.
således opstår Syntaksfejlen.
løsning
sørg for, at strengen altid skal lukkes inden for enkelt-eller dobbelt-citater.
korrekt kode
llist = if not llist: print("List is empty")else: print("List is not empty")
Output
MyList is empty
String strækker sig forbi en linje
i Python kan vi ikke udvide vores streng, der er lukket inden for et enkelt eller dobbelt omvendt komma forbi en enkelt linje. Hvis vi forsøger at gøre det, vises fejlen “Syntakserror EOL under scanning af strengen bogstavelig forekommer”. Hvis vi ønsker, at vores streng skal strække sig i flere linjer, skal de være lukket inden for tredobbelt inverterede kommaer (enkelt eller dobbelt).
Eksempel 2:
ttuple = ()if not ttuple: print("Tuple isempty")else: print("Tuple is not empty")
Output :
file "main.py", line 3 print("MyTuple is ^SyntaxError: EOL while scanning string literal
forklaring
i ovenstående kode har vi initialiseret en tom tuple ‘MyTuple’ og brugt if-else-blok til at udskrive, hvis ‘MyTuple’ er tom eller ej. Inde i If-blokken bruges udskriftserklæringen til at udskrive en streng. Men strengen udvides i flere linjer. Og tolkes ikke af python-tolken. Således er fejlen rejst.
løsning
prøv at holde hele strengen inden for en enkelt linje.
korrekt kode:
MyTuple = ()if not MyTuple: print("MyTuple is empty")else: print("MyTuple is not empty")
Output:
MyTuple is empty
Bemærk: Hvis du vil have strengen initialiseret i flere linjer. Brug derefter tredobbelt inverterede kommaer enten enkelt (“‘enkelt citater”‘) eller dobbelt (“””dobbelt citater””””) for at vedlægge din streng.
eksempel:
MyTuple = ()if not MyTuple: print("""MyTuple is empty""")else: print("MyTuple is not empty")
Output:
MyTuple isempty
konklusion
vi håber, at alle de scenarier, der er forklaret ovenfor, hjælper dig med at forhindre Syntakserror EOL under scanning af streng bogstavelig fejl. En anden fejl, du skal undgå, er at bruge uoverensstemmende citater. Mens du lukker strenge, skal du sørge for, at hvis det begynder med enkelt citater, skal det ende med dobbelt citater.