'f-string: unmatched '(' in line with function call
I'm trying to use f-strings in python to substitute some variables into a string that I'm printing, and I'm getting a syntax error. Here's my code:
print(f"{index+1}. {value[-1].replace("[Gmail]/", '')}")
I only started having the problem after I added the replace. I've checked plenty of times and I'm certain that I'm not missing a parenthesis. I know that there are plenty of other ways to accomplish this, some of which are probably better, but I'm curious why this doesn't work.
Solution 1:[1]
Your problem is double quotes inside double quotes. This one should work correctly:
print(f"{index+1}. {value[-1].replace('[Gmail]/', '')}")
Out of scope but still I do not advise you to use replace inside f-string. I think that it would be better to move it to a temp variable.
Solution 2:[2]
Seems like this does not work
x = 'hellothere'
print(f"replace {x.replace("hello",'')}")
error
print(f"replace {x.replace("hello",'')}")
^
SyntaxError: f-string: unmatched '('
Try this instead
x = 'hellothere'
print(f"replace {x.replace('hello','')}")
single quotes 'hello'
output is
replace there
Solution 3:[3]
Another way to do some string formatting (which in my opinion improves readability) :
print("{0}. {1}".format(index+1,
value[-1].replace("[Gmail]/", "")))
Solution 4:[4]
I had the same issue,change all the double quote within the parenthesis to single quotes.It should work
eg from
print( f" Water : {resources["water"] } " )
to
print( f" Water : {resources['water'] } " )
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Oleksandr Dashkov |
| Solution 2 | BuddyBob |
| Solution 3 | Charles Dupont |
| Solution 4 | user17597998 |
