Som vi vet at et programmeringsspråk som Python er et tolket språk, noe som i hovedsak innebærer at hver blokk eller linje med kode blir behandlet en etter en, i stedet for å endre hele programmet til en lavnivåkode helt.
Når tolken av Python skanner en kodelinje og legger merke til noe uvanlig, oppstår en feil kjent som syntaksfeil. Vanligvis er en manglende hakeparentes, manglende sluttanførselstegn og andre grunnleggende anomalier i syntaksen grunnen til at feilene ble reist.
I den følgende opplæringen skal vi oppdage en av syntaksfeilene i Python kjent som EOL, som vanligvis økes når vi prøver å skanne en streng bokstavelig.
Forstå betydningen av EOL
Vi må forstå betydningen av EOL effektivt før vi løser et problem. EOL er forkortelse for 'End of Line'. EOL-feilen betyr at Python-tolken nådde slutten av linjen mens han skannet strengen bokstavelig.
Strengliteralene, også kjent som konstanter, må omsluttes av enkle eller doble anførselstegn. Å nå 'Slutt på linjen' når vi prøver å skanne betyr at vi har nådd det siste tegnet i strengen og ikke har møtt de avsluttende anførselstegnene.
La oss vurdere et grunnleggende eksempel som viser hvordan EOL-feilen oppstår.
Eksempel:
# defining a string value my_string = 'This is my string literal, and it is broken... # printing the string value print('String:', my_string)
Produksjon:
File 'D:Python ernarypy.py', line 2 my_string = 'This is my string literal, and it is broken... ^ SyntaxError: EOL while scanning string literal
Forklaring:
I kodebiten ovenfor har vi definert en streng bokstavelig; imidlertid har vi savnet et anførselstegn på slutten av strengen, som hevet syntaksfeil kalt EOL mens du skriver ut den strengen for brukerne.
I utdatadelen kan vi observere en liten pil som peker til det siste tegnet i strengen, som viser at feilen oppsto da programmet prøvde å analysere det segmentet av setningen.
Nå som vi har forstått problemet, la oss forstå noen tilfeller der denne feilen kan vises mens du kjører en python-kode.
Retting av 'Syntaksfeil: EOL under skanning av streng bokstavelig.'
Vi kan støte på denne feilen i fire hovedsituasjoner mens vi jobber med et Python-program. Disse fire hovedsituasjonene er som vist nedenfor:
- Mangler sluttanførselstegn
- Bruk av feil sluttanførselstegn
- Strengen strekker seg konstant til flere linjer
- Bruke omvendt skråstrek før sluttanførselstegn
La oss begynne å forstå hver av disse situasjonene og prøve å omgå dem.
Mangler sluttanførselstegn
Som diskutert i den forrige kodebiten, reiser Python-tolkeren en syntaksfeil hver gang den når slutten av strengen og oppdager at anførselstegn mangler.
Eksempel:
# defining a string value my_string = 'This is my string literal, and it is broken... # printing the string value print('String:', my_string)
Forklaring:
Vi kan observere at anførselstegnet på slutten av den bokstavelige strengen mangler, noe som også rettferdiggjør syntaksfeilen. Hvert språk har få grunnleggende regler for syntaks, som, når de brytes, resulterer i feil.
La oss nå vurdere følgende syntaks som løsningen på problemet ovenfor.
Løsning:
# defining a string value my_string = 'This is my string literal, and it is broken...' # printing the string value print('String:', my_string)
Produksjon:
String: This is my string literal, and it is broken...
Forklaring:
I kodebiten ovenfor kan vi se at vi har tatt med anførselstegnet på slutten av den bokstavelige strengen. Som et resultat blir strengen skrevet ut for brukerne uten at det oppstår noen syntaksfeil.
Bruk av feil sluttanførselstegn
Vi kan benytte oss av ' ' i tillegg til ' ' for å omslutte en bestemt strengkonstant i Python. Imidlertid bruker en programmerer ofte et feil anførselstegn på slutten av strengverdien. En slik situasjon fører til at programmet viser en syntaksfeil når det gjelder EOL.
La oss vurdere en slik situasjon i følgende eksempel:
Eksempel:
# defining a string value my_string = 'This is my string literal with wrong quotation mark at the end.' # printing the string value print('String:', my_string)
Produksjon:
File 'D:Python ernarypy.py', line 2 my_string = 'This is my string literal with wrong quotation mark at the end.' ^ SyntaxError: EOL while scanning string literal
Forklaring:
I kodebiten ovenfor har vi brukt feil anførselstegn på slutten av strengverdien som resulterer i syntaksfeilen.
Vi kan unngå et slikt problem ved å bruke samsvarende anførselstegn på slutten av strengen, som vist i følgende kodebit.
Løsning:
# defining a string value my_string = 'This is my string literal with wrong quotation mark at the end.' # printing the string value print('String:', my_string)
Produksjon:
String: This is my string literal with wrong quotation mark at the end.
Forklaring:
I kodebiten ovenfor, som vi kan observere, har vi brukt det matchende anførselstegnet på slutten av strengen som hjelper oss å unngå EOL-feil.
Strengen strekker seg konstant til flere linjer
Det er forskjellige nybegynnere Python-programmerere som gjør feilen ved å strekke utsagn til mer enn én linje. Python tar hensyn til en ny linje som slutten av setningen, i motsetning til andre språk som C++ og Java som vurderer ';' som slutten på uttalelser.
La oss se på et eksempel som viser det samme problemet.
Eksempel på problem:
# defining a string value my_string = 'This is my string literal... this is my new line' # printing the string value print('String:', my_string)
Produksjon:
File 'D:Python ernarypy.py', line 2 my_string = 'This is my string literal... ^ SyntaxError: EOL while scanning string literal
Forklaring:
powershell admin
I kodebiten ovenfor kan vi se at koden kan se vanlig ut; men så snart neste linje er påbegynt, setter Python-tolkeren en stopper for den setningen og reiser en syntaksfeil for ikke å omslutte strengkonstanten.
Vi kan imidlertid løse dette problemet ved å bruke forskjellige metoder som vist nedenfor:
Løsning 1: Bruk ' ' for å gi effekten av en ny linje til strengkonstanten
# defining a string value my_string = 'This is my string literal... this is my new line' # printing the string value print('String:', my_string)
Produksjon:
String: This is my string literal... this is my new line
Forklaring:
I kodebiten ovenfor har vi inkludert ' ' i strengkonstanten for å gi effekten av en ny linje til den. Som et resultat deler strengkonstanten setningen i flere linjer.
La oss nå vurdere en annen løsning.
Løsning 2: Bruk trippel anførselstegn, ''' eller ''' for å lagre flerlinjes strengkonstanter
# defining a string value my_string = '''This is my string literal... this is my new line''' # printing the string value print('String:', my_string)
Produksjon:
String: This is my string literal... this is my new line
Forklaring:
I kodebiten ovenfor har vi brukt det tredoble anførselstegn, ''' for å lagre flerlinjes strengkonstanter.
Bruke omvendt skråstrek før sluttanførselstegn
Omvendt skråstrek '' er ansvarlig for å unnslippe strengen og forårsaker syntaksfeilen.
La oss vurdere følgende eksempel.
Eksempel:
# storing a directory path my_string = 'D:PythonMy_Folder' # printing the string value print('String:', my_string)
Produksjon:
File 'D:Python ernarypy.py', line 2 my_string = 'D:PythonMy_Folder' ^ SyntaxError: EOL while scanning string literal
Forklaring:
I kodebiten ovenfor har vi brukt til å skråstrek '' for å skille banene til mappen fra hverandre. Imidlertid, under kjøringen av programmet, reiste Python-tolken syntaksfeilen.
Den siste skråstreken før anførselstegn unnslipper strengkonstanten, og Python-tolkeren vurderer ' som et enkelt tegn. Denne escape-sekvensen oversettes til et anførselstegn (') .
Vi kan løse dette problemet ved å bruke følgende kodebit.
Løsning:
# storing a directory path my_string = 'D:\Python\My_Folder\' # printing the string value print('String:', my_string)
Produksjon:
String: D:PythonMy_Folder
Forklaring:
I kodebiten ovenfor har vi brukt '\' i strengkonstanten. Som et resultat kjører Python-tolken den strengen uten å oppstå en feil.