为什么这一直报错啊 python
class Person:
def __init__(self, name, height, weight):
self.name = name
self.height = height
self.weight = weight
def say_name(self):
print("我的名字叫" + self.name)
def say_weight(self):
print("我" + self.weight)
person1 = Person("老张", 170, 100)
person2 = Person("James", 160, 80)
person1.say_name()
person2.say_weight()
在给出的代码中,Person
类的定义和实例化看起来是正确的,但是在调用person2.say_weight()
方法时会报错。错误出现在say_weight
方法的print
语句中,您缺少了字符串连接的操作符。
要修复这个问题,您需要在say_weight
方法中添加一个字符串连接操作符,将字符串连接起来。下面是修改后的代码:
class Person:
def __init__(self, name, height, weight):
self.name = name
self.height = height
self.weight = weight
def say_name(self):
print("我的名字叫" + self.name)
def say_weight(self):
print("我体重" + str(self.weight) + "公斤")
# 或者使用 f-string 格式化字符串
# print(f"我体重{self.weight}公斤")
person1 = Person("老张", 170, 100)
person2 = Person("James", 160, 80)
person1.say_name()
person2.say_weight()
现在,say_weight
方法中的字符串连接问题得到了修复,代码应该能够正常运行,输出正确的结果。记得在say_weight
方法中,我们需要将self.weight
转换为字符串,因为print
函数只能打印字符串。
大概需要做个类型转换
class Person:
def __init__(self, name, height, weight):
self.name = name
self.height = height
self.weight = weight
def say_name(self):
print("我的名字叫" + str(self.name))
def say_weight(self):
print("我" + str(self.weight))
person1 = Person("老张", 170, 100)
person2 = Person("James", 160, 80)
person1.say_name()
person2.say_weight()
print("我" + str(self.weight))
不知道你这个问题是否已经解决, 如果还没有解决的话:问题解答如下:
在你的代码中可能存在以下问题:
say_weight
函数中,你试图将一个整数值self.weight
与一个字符串连接起来。这会导致类型错误。正确的做法是将self.weight
转换为字符串,然后再与其他字符串连接起来。修复建议:
def say_weight(self):
print("我" + str(self.weight) + "斤")
person2.say_weight()
时,你可能意图调用的是person2.say_name()
函数。这是一个拼写错误。修复建议:
person2.say_name()
综上所述,修改后的代码如下:
class Person:
def __init__(self, name, height, weight):
self.name = name
self.height = height
self.weight = weight
def say_name(self):
print("我的名字叫" + self.name)
def say_weight(self):
print("我" + str(self.weight) + "斤")
person1 = Person("老张", 170, 100)
person2 = Person("James", 160, 80)
person1.say_name()
person2.say_name()
person1.say_weight()
person2.say_weight()
请尝试运行修改后的代码,看看是否能够正常执行了。如果还有其他问题,欢迎继续提问。