我正在学习python 3并且正在尝试学习课程。这段代码给了我麻烦。它应该是一个非常基本的虚拟宠物:
class Critter(object):
def __init__(self, name):
print("I am born")
self.name = name
def talk (self, speech):
pass
这是代码的开头,似乎没有错误。然后我有:
crit1 = Critter(input("Choose a name for me "))
crit2 = Critter(input("Choose a name for me "))
crit1.talk(speech = input("Hello. I am ", self.name, ". What shall I say? ")
print("\n", speech))
crit2.talk(speech = input("Hello. I am ", self.name, ". What shall I say? ")
print("\n", speech,))
这会出错:
line 13
print("\n", speech))
SyntaxError: invalid syntax
答案 0 :(得分:0)
除了另一个答案之外,你的意图似乎也是错误的。 尝试更改
class Critter(object):
def __init__(self, name):
print("I am born")
self.name = name
def talk (self, speech):
pass
进入
class Critter(object):
def __init__(self, name):
print("I am born")
self.name = name
def talk (self, speech):
pass
答案 1 :(得分:0)
在此致电talk
:
crit1.talk(speech = input("Hello. I am ", self.name, ". What shall I say? ")
print("\n", speech))
您也可以使用input
打开另一个括号。因此,Python认为您仍在尝试将参数传递给talk
。传递参数时,你不能只有一个换行符,然后在不关闭它的情况下使用其他东西,因此该行的语法错误。
我建议你这样关闭你的电话:
crit1.talk(speech = input("Hello. I am ", self.name, ". What shall I say? "))
然后有你的print语句,没有额外的括号:
print("\n", speech)