为什么错误:语法错误:f-string:代码块中的不匹配'(','{'或'['在Python中发生?



我尝试制作一个Person类,在使用f字符串打印时,出现了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:不匹配的"("、"{"或"[">

有人知道为什么会发生这种情况吗?(就像打字错误(我想我只是没有仔细看,或者这是有原因的吗?

†一些随机数,而不是我的真实年龄

由于使用'作为f字符串的分隔符,{之后的'将终止该字符串,导致{不匹配。在字符串周围使用不同的分隔符,并对内部的字符串使用分隔符。

此外,不需要在{}中使用{}。这将创建一个set对象。使用()进行分组。

firstPart = f"My name is {self.firstName + (' ' if self.lastName != '' else '') + self.lastName} and I am {self.age}"

最新更新