Why does the error: SyntaxError: f-string: mismatched '(', '{', or '[' in a block of code occur in Python?
Why does the error: SyntaxError: f-string: mismatched '(', '{', or '[' in a block of code occur in Python?
我试图制作一个 Person
class 并且在使用 f-strings 打印时出现了一个 SyntaxError
。你知道为什么吗?
class Person:
def __init__(self, age, firstName, lastName='', hobbies=None):
self.age = age
self.firstName = firstName
self.lastName = lastName
self.hobbies = hobbies
def printDescription():
firstPart = f'My name is {self.firstName + {' ' if self.lastName != '' else ''} + self.lastName} and I am {self.age}'
secondPart = f', also I like {self.hobbies}' if self.hobbies else ''
print(firstPart + secondPart)
me = Person.__init__(me, 500†, 'Ken', 'Tran', 'programming')
me.printDescription()
SyntaxError: f-string: mismatched '(', '{', or '['
有谁知道为什么会这样? (像一个错字)我想我只是没有仔细看,或者这是有原因的吗?
† 一些随机数,不是我的真实年龄
由于您使用 '
作为 f 字符串的分隔符,因此 {
之后的 '
将终止字符串,从而导致不匹配的 {
.在字符串周围和内部字符串使用不同的分隔符。
此外,{}
中不需要使用 {}
。这将创建一个 set
对象。使用 ()
进行分组。
firstPart = f"My name is {self.firstName + (' ' if self.lastName != '' else '') + self.lastName} and I am {self.age}"
我试图制作一个 Person
class 并且在使用 f-strings 打印时出现了一个 SyntaxError
。你知道为什么吗?
class Person:
def __init__(self, age, firstName, lastName='', hobbies=None):
self.age = age
self.firstName = firstName
self.lastName = lastName
self.hobbies = hobbies
def printDescription():
firstPart = f'My name is {self.firstName + {' ' if self.lastName != '' else ''} + self.lastName} and I am {self.age}'
secondPart = f', also I like {self.hobbies}' if self.hobbies else ''
print(firstPart + secondPart)
me = Person.__init__(me, 500†, 'Ken', 'Tran', 'programming')
me.printDescription()
SyntaxError: f-string: mismatched '(', '{', or '['
有谁知道为什么会这样? (像一个错字)我想我只是没有仔细看,或者这是有原因的吗?
† 一些随机数,不是我的真实年龄
由于您使用 '
作为 f 字符串的分隔符,因此 {
之后的 '
将终止字符串,从而导致不匹配的 {
.在字符串周围和内部字符串使用不同的分隔符。
此外,{}
中不需要使用 {}
。这将创建一个 set
对象。使用 ()
进行分组。
firstPart = f"My name is {self.firstName + (' ' if self.lastName != '' else '') + self.lastName} and I am {self.age}"