The Line Continuation Character is a
This is about the Python syntax error unexpected character after line continuation character.
This error occurs when the back slash character \ is used incorrectly.
You'll learn:
- The meaning of the error
- How to solve the error (9 examples)
- Lots more
So if you want to understand this error in Python and how to solve it, then you're in the right place.
Keep reading!
SyntaxError: Unexpected Character After Line Continuation Character in Python
So you got SyntaxError: unexpected character after line continuation character?—don't be afraid this article is here for your rescue and this error is easy to fix:
Syntax errors are usually the easiest to solve because they appear immediately after the program starts and you can see them without thinking about it much. It's not like some logical rocket science error.
However, when you see the error SyntaxError: unexpected character after line continuation character for the first time, you might be confused:
What Is a Line Continuation Character in Python?
A line continuation character is just a backslash \—place a backlash \ at the end of a line, and it is considered that theline is continued, ignoring subsequent newlines.
You can use it for explicit line joining, for example. You find more information about explicit line joining in the official documentation of Python. Another use of the backslash \ is to escape sequences—more about that further below.
However, here is an example of explicit line joining:
print("This is a huge line. It is very large, "\ "but it needs to be printed on the screen "\ "in one line as it is. For this, "\ "the backslash character is used.")
This is a huge line. It is very large, but I want to print it on the screen in one line as it is. For this, I use the slash character
So as you can see the output is: This is a huge line. It is very large, but it needs to be printed on the screen in one line. For this, the backslash character is used. No line breaks.
The backslash \ acts like a glue and connects the strings to one string even when they are on different lines of code.
When to Use a Line Continuation Character in Phython?
You can break lines of code with the backslash \ for the convenience of code readability and maintainability:
The PEP 8 specify a maximum line length of 79 characters—PEP is short for Python Enhancement Proposal and is a document that provides guidelines and best practices on how to write Python code.
However, you don't need the backslash \ when the string is in parentheses. Then you can just do line breaks without an line continuation character at all. Therefore, in the example above, you didn't need to use the backslash character, as the entire string is in parentheses ( … ).
However, in any other case you need the backslash \ to do a line break. For example (the example is directly from the official Python documentation):
with open('/path/to/some/file/you/want/to/read') as file_1, \ open('/path/to/some/file/being/written', 'w') as file_2: file_2.write(file_1.read())
--------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) <ipython-input-1-68f8b9fb51ba> in <module>() ----> 1 with open('/path/to/some/file/you/want/to/read') as file_1, open('/path/to/some/file/being/written', 'w') as file_2: 2 file_2.write(file_1.read()) FileNotFoundError: [Errno 2] No such file or directory: '/path/to/some/file/you/want/to/read'
Why all that talking about this backslash? Here is why:
The error SyntaxError: unexpected character after line continuation character occurs when the backslash character is incorrectly used. The backslash is the line continuation character mentioned in the error!
Examples of "SyntaxError: Unexpected Character After Line Continuation Character" in Python
Here are examples of the character after line continuation character error:
Example #1
The error occurs when you add an end-of-line character or line continuation character as a list item:
)lst = [1, 2, 3] lst.append(\n) lst
File "<ipython-input-3-d34db7a971ff>", line 2 lst.append(\n) ^ SyntaxError: unexpected character after line continuation character
Easy to fix—just put the backslash \ in quotes:
lst = [1, 2, 3] lst.append("\n") lst
[1, 2, 3, '\n']
Example #2
You want to do a line break after printing something on the screen:
st = "python" print(st, \n)
File "<ipython-input-31-8b8b9a0ca1c2>", line 2 print(st, \n) ^ SyntaxError: unexpected character after line continuation character
Easy to fix, again—the backslash \ goes in to quotes:
st = "python" print(st, "\n")
python
Perhaps you want to add a new line when printing a string on the screen, like this.
Example #3
Mistaking the slash / for the backslash \—the slash character is used as a division operator:
print(16\4)
File "<ipython-input-7-736f22f93e09>", line 1 print(16\4) ^ SyntaxError: unexpected character after line continuation character
Another easy syntax error fix—just replace the backslash \ with the slash /:
print(16/4)
4.0
Example #5
However, when a string is rather large, then it's not always that easy to find the error on the first glance.
Here is an example from Stack Overflow:
length = 10 print("Length between sides: " + str((length * length) * 2.6) + " \ 1.5 = " + str(((length * length) * 2.6) \ 1.5) + " Units")
File "<ipython-input-11-7ea3023b0bea>", line 2 print("Length between sides: " + str((length*length)*2.6) + " \ 1.5 = " + str(((length*length)*2.6)\1.5)+ " Units") ^ SyntaxError: unexpected character after line continuation character
The line of code contains several backslashes \—so you need to take a closer look.
Split the line of code into logical units and put each unit on separate line of code. This simplifies the debugging:
st = "Length between sides: " st += str((length * length) * 2.6) st += " \ 1.5 = " x = ((length * length) * 2.6) \ 1.5 st += str(x) st += " Units" print(st)
File "<ipython-input-14-6e37321ec16d>", line 4 x = ((length*length)*2.6)\1.5 ^ SyntaxError: unexpected character after line continuation character
Now you can easily see where the backslash \ is missing—with a sharp look at the code itself or through the debugger output. A backslash \ misses after the 1.5 in line of code #4.
So let's fix this:
st = "Length between sides: " st += str((length * length) * 2.6) st += " \ 1.5 = " x = ((length * length) * 2.6) \ 1.5 \ st += str(x) st += " Units" print(st)
Example #6
Another common case of this error is writing the paths to Windows files without quotes. Here is another example from Stack Overflow:
f = open(C\\python\\temp\\1_copy.cp,"r") lines = f.readlines() for i in lines: thisline = i.split(" ")
File "<ipython-input-16-b393357b8e86>", line 1 f = open(C\\python\\temp\\1_copy.cp,"r") ^ SyntaxError: unexpected character after line continuation character
The full path to the file in code of line #1 must be quoted "". Plus, a colon : is to be placed after the drive letter in case of Windows paths:
f = open("C:\\python\\temp\\1_copy.cp","r") lines = f.readlines() for i in lines: thisline = i.split(" ")
The Backslash \ as Escape Character in Python
The backslash \ is also an escape character in Python:
Use the backslash \ to escape service characters in a string.
For example, to escape a tab or line feed service character in a string. And because the backslash \ is a service character on its own (remember, it's used for line continuation), it needs to be escaped too when used in a string—\\.
This is why in the last example the path contains double backslashes \\ instead of a single backslash \ in line of code #1.
However, you don't need any escapes in a string when you use a raw string. Use the string literal r to get a raw string. Then the example from above can be coded as:
f = open(r"C:\python\temp\1_copy.cp","r")
No backslash \ escapes at all, yay!
Another use case for an escape are Unicode symbols. You can write any Unicode symbol using an escape sequence.
For example, an inverted question mark ¿ has the Unicode 00BF, so you can print it like this:
print("\u00BF")
Additional Examples of "SyntaxError: Unexpected Character After Line Continuation Character" in Python
Here are more common examples of the unexpected character after line continuation character error:
Example #7
Often, you don't have a specific file or folder path and have to assemble it from parts. You can do so via escape sequences \\ and string concatenations \. However, this manual piecing together regularly is the reason for the unexpected character after line continuation character error.
But the osmodule to the rescue! Use the path.join function. The path.join function not only does the path completion for you, but also determines the required separators in the path depending on the operating system on which you are running your program.
#os separator examples?
For example:
import os current_path = os.path.abspath(os.getcwd()) directory = "output" textfile = "test.txt" filename = os.path.join(current_path, directory, textfile)
Example #8
You can get the line continuation error when you try to comment out # a line after a line continuation character \—you can't do that in this way:
sonnet = "From fairest creatures we desire increase,\n"\ #line one "That thereby beauty's rose might never die,\n"\ #line two "But as the riper should by time decease,\n"\ #line three "His tender heir might bear his memory\n" #line four print(sonnet)
File "<ipython-input-21-0a5c2224492e>", line 1 sonnet = "From fairest creatures we desire increase,\n"\ #line one ^ SyntaxError: unexpected character after line continuation character
Remember from above that within parenthesis () an escape character is not needed? So put the string in parenthesis (), easy as that—and voila you can use comments # where ever you want.
You can put dummy parentheses, simply for hyphenation purposes:
sonnet = ("From fairest creatures we desire increase,\n" #line one "That thereby beauty's rose might never die,\n" #line two "But as the riper should by time decease,\n" #line three "His tender heir might bear his memory\n") #line four print(sonnet)
From fairest creatures we desire increase, That thereby beauty's rose might never die, But as the riper should by time decease, His tender heir might bear his memory
Example #9
Another variation of the unexpected character after line continuation character error is when you try to run a script from the Python prompt. Here is a script correctly launched from the Windows command line:
c:\temp>python c:\temp\helloworld.py
Hello, World!
However, if you type python first and hit enter, you will be taken to the Python prompt.
Here, you can directly run Python code such as print("Hello, World!"). And if you try to run a file by analogy with the Windows command line, you will get an error:
d:\temp>python Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> d:\temp\helloworld.py
File "", line 1 d:\temp\helloworld.py ^ SyntaxError: unexpected character after line continuation character
Here's more Python support:
- 3 Ways to Solve Series Objects Are Mutable and Cannot be Hashed
- How to Solve 'Tuple' Object Does Not Support Item Assignment
- How to Solve SyntaxError: Invalid Character in Identifier
- ImportError: Attempted Relative Import With No Known Parent Package
- IndentationError: Unexpected Unindent in Python (and 3 More)
keithwercusittoon.blogspot.com
Source: https://techwithtech.com/unexpected-character-after-line-continuation-character/
0 Response to "The Line Continuation Character is a"
Post a Comment