Python Forum
[solved] unexpected character after line continuation character
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[solved] unexpected character after line continuation character
#1
Hi

To higlight reading by adding comments, I'm looking for a way to split function arguments into several lines; nevertheless using backslash I'm facing to an error (I'm still digging on internet in how to fix it): is there a workaround?

Thanks

Paul

mymodule.myfunction(path, file, arg1, arg2)

mymodule.myfunction(path,   \# comment1
                    file,     \# comment2
                    arg1,   \# comment3
                    arg2)
Error:
SyntaxError: unexpected character after line continuation character
Reply
#2
remove the comments
Reply
#3
Hi @paul18fr ,
The backslash ( \ ) takes away the special meaning of the following character. It "escapes" the following character. (Or in some cases, it adds a special meaning to the following character (like "\r") but that is not the case here.)
Usually you can continue a line by putting a backslash before the newline. This takes away the special meaning of the newline: "execute the line".
But this is not needed here because a parenthesis is opened and Python understands it must continue until the closing parenthesis is seen.

So in this case you can just omit the backslashes. (In your example you placed the backslash before the hash sign (#), taking away the special meaning of the hash: "start comment".)
Reply
#4
Thanks ibreeden for your help; at least a relevant advise
Reply
#5
I agree with the "remove the comments" suggestion. If you need a comment to describe each argument I see this as a naming problem more than a comment problem. You should have a nice docstring describing the purpose of a module. A nice docstring describing how to use a function. For a class you should document each visible attribute. After that, I don't think good code should have many comments. Code should be obvious. If you find yourself having to comment the code to make the meaning clear, take some time to think about ways to improve the code. Well documented confusing code is still confusing code.

Using named arguments goes a long way towards clearing any confusion about function arguments. This is a function I wrote for a Connect 4 game.
def drop(column:int, player:int)->tuple[int, int]:
    '''Drop player's marker in column.  Marker falls to first open row.
    return resting spot.

    Arguments:
        column : Column chosen to play the marker. 0..COLUMNS-1
        player : Player 0 or 1

    Returns
        row and column where marker is located or None if
        column is full.
    '''
    for row in range(ROWS):
        if BOARD[column][row] is EMPTY:
            BOARD[column][row] = player
            return(column, row)
    return None
From an interactive environment I can ask to see the documentation for this function.
Output:
>>> help(drop) Help on function drop in module __main__: drop(column: int, player: int) -> tuple Drop player's marker in column. Marker falls to first open row. return resting spot. Arguments: column : Column chosen to play the marker. 0..COLUMNS-1 player : Player 0 or 1 Returns row and column where marker is located or None if column is full.
The function is called like this in the code:
    while True:
        try:
            col = int(input(f'{MARKERS[player]}: '))-1
        except ValueError:
            print(f'Enter integer [1:{COLUMNS}]')
        else:
            if spot := drop(column=col, player=player):
                return spot
            print(f'{col} is full')
There is no need to comment the arguments because they are obvious. col is the column argument and player is the player argument. If I want to find out what these arguments do I should look at the documentation for the drop() function, not some possibly incorrect comments where the function is used.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  width of Unicode character Skaperen 6 453 Sep-27-2021, 12:41 AM
Last Post: Skaperen
  How to do line continuation in Jupyter Notebook? Mark17 4 528 Sep-22-2021, 04:22 PM
Last Post: ibreeden
  [SOLVED] Why does regex fail cleaning line? Winfried 5 706 Aug-22-2021, 06:59 PM
Last Post: Winfried
  Gravity doesn't works, and my character just moves right and really fast izmamonke 1 426 Aug-08-2021, 02:55 AM
Last Post: deanhystad
Star I was making code for collision for my character izmamonke 2 484 Aug-06-2021, 04:30 PM
Last Post: izmamonke
  Regex: a string does not starts and ends with the same character Melcu54 5 710 Jul-04-2021, 07:51 PM
Last Post: Melcu54
  [Solved] Reading every nth line into a column from txt file Laplace12 7 1,235 Jun-29-2021, 09:17 AM
Last Post: Laplace12
  python error: bad character range \|-t at position 12 faustineaiden 0 665 May-28-2021, 09:38 AM
Last Post: faustineaiden
  fpdf star character issue KatMac 3 924 May-01-2021, 06:22 PM
Last Post: KatMac
  Reducing JSON character count in Python for a Twitter Bot johnmitchell85 2 824 Apr-28-2021, 06:08 PM
Last Post: johnmitchell85

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020