本代码一直给我错误,我是新手

时间:2016-11-14 11:37:10

标签: python class python-3.x

我正在学习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

2 个答案:

答案 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)