SyntaxError EOL tijdens het scannen van String Literal?
syntaxisfouten worden gedetecteerd voordat de programma ‘ s worden uitgevoerd. Meestal is het gewoon een typefout of een syntactische fout. Een dergelijke fout in Python is de SyntaxError EOL tijdens het scannen van String letterlijke.
deze SyntaxError treedt op terwijl de interpreter de tekenreeksletters scant en de EOL(‘End Of Line’) raakt. Maar als het geen specifiek karakter vindt voor de EOL, wordt de fout opgeworpen.
laten we het beter begrijpen met behulp van een voorbeeld.
Wat is “SyntaxError EOL tijdens het scannen van string literal”?
een SyntaxError EOL (End Of Line) fout treedt op wanneer de Python interpreter geen bepaald teken of een set tekens vindt voordat de regel code eindigt. Wanneer de fout wordt opgeworpen, wordt de uitvoering van de code gestopt.
- ontbrekende aanhalingstekens voor het sluiten van de tekenreeks
- tekenreeks strekt zich uit over één regel
ontbrekende aanhalingstekens voor het sluiten van de tekenreeks:
bij het sluiten van een tekenreeks, zijn er vaak momenten waarop we vergeten een omgekeerde komma toe te voegen (enkel of dubbel). Als dit gebeurt, is de Python interpreter niet in staat om het einde van de regel te vinden tijdens het scannen van de tekenreeks. Dus de SyntaxError EOL fout optreedt.
Voorbeeld 1:
MyList = if not MyList: print("MyList is emptyelse: print("MyList is not empty")
uitvoer:
File "main.py", line 3 print("MyList is empty ^SyntaxError: EOL while scanning string literal
uitleg
in de bovenstaande code hebben we een lege lijstmylist geïnitialiseerd en een if-else blok gebruikt om af te drukken of ‘MyList’ leeg is of niet. In het if-blok wordt het afdrukstatement gebruikt om een tekenreeks af te drukken. Maar de snaar ontbreekt dubbel omgekeerde komma ‘ s aan het einde. En vanwege de ontbrekende komma ‘ s, de Python interpreter is niet in staat om het einde van de string te vinden.
dus de SyntaxError error wordt aangetroffen.
oplossing
zorg ervoor dat de string altijd gesloten moet worden binnen enkele of dubbele aanhalingstekens.
correcte Code
llist = if not llist: print("List is empty")else: print("List is not empty")
uitvoer
MyList is empty
tekenreeks strekt zich uit langs één regel
in Python kunnen we onze tekenreeks niet verlengen die is ingesloten in een enkele of dubbele komma die is omsloten door een enkele regel. Als we proberen om dit te doen de fout “SyntaxError EOL tijdens het scannen van de string letterlijke optreedt” zal verschijnen. Als we willen dat onze string uit te breiden in meerdere lijnen, dan moeten ze worden ingesloten in drievoudige omgekeerde komma ‘ s (enkele of dubbele).
Voorbeeld 2:
ttuple = ()if not ttuple: print("Tuple isempty")else: print("Tuple is not empty")
Uitvoer :
file "main.py", line 3 print("MyTuple is ^SyntaxError: EOL while scanning string literal
verklaring
in de bovenstaande code hebben we een lege tupel ‘MyTuple’ geïnitialiseerd en if-else blok gebruikt om af te drukken of ‘MyTuple’ leeg is of niet. In het if-blok wordt het afdrukstatement gebruikt om een tekenreeks af te drukken. Maar de string wordt uitgebreid in meerdere regels. En wordt niet geïnterpreteerd door de Python interpreter. Zo is de dwaling ontstaan.
oplossing
probeer de hele tekenreeks binnen één regel te houden.
juiste Code:
MyTuple = ()if not MyTuple: print("MyTuple is empty")else: print("MyTuple is not empty")
uitvoer:
MyTuple is empty
Notes: als u wilt dat de tekenreeks in meerdere regels wordt geïnitialiseerd. Gebruik dan triple inverted komma’ s ofwel single (“‘Single quotes”‘) of double(“””Double quotes “”””) om uw string te omsluiten.
voorbeeld:
MyTuple = ()if not MyTuple: print("""MyTuple is empty""")else: print("MyTuple is not empty")
uitvoer:
MyTuple isempty
conclusie
we hopen dat alle hierboven beschreven scenario ‘ s u zullen helpen de SyntaxError EOL te voorkomen tijdens het scannen van String letterlijke fout. Een andere fout die u moet vermijden is het gebruik van niet-overeenkomende citaten. Zorg er bij het sluiten van tekenreeksen voor dat als het begint met enkele aanhalingstekens, het moet eindigen met dubbele aanhalingstekens.