age=input() class Person: def __init__(self, age): self.name=input() self.age=age def print_info(self): print(f"{self.name} {self.age} years old!") p=Person(age) p.printName()这个代码有错误,怎么改
时间: 2023-06-14 09:06:05 浏览: 150
这个代码中有几个错误:
1. 在 `p.printName()` 中,应该调用 `p.print_info()` 方法而不是 `printName()`。
2. 在 `Person` 类中,应该先接收 `name` 参数,再接收 `age` 参数。
3. 在 `print_info()` 方法中,应该使用 `self.age` 而不是 `age`。
下面是修改后的代码:
```python
age = input()
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def print_info(self):
print(f"{self.name} {self.age} years old!")
name = input()
p = Person(name, age)
p.print_info()
```
请注意,我还添加了一个 `name` 参数,以便在创建 `Person` 对象时传递该参数。
相关问题
编写一个学生和教师相关数据输入和显示程序。设计三个类 person, student 和 teacher 类,其中 student 和 teacher 是由 person 类派生出来的。学生(student)数据有 学号、姓名、性别、年龄、班级号和期末三门功课总分;教师(teacher)数据有职工号、 姓名、性别、年龄、职称和系别。 在主程序中,定义两个学生和两个教师,从键盘输入他们相关的数据,并将输入数据输 出显示在屏幕上。(提示:person 类有两个公有成员函数:void input();输入学生或教师 的姓名、性别和年龄;显示输出函数 void display();显示学生和教师的姓名、性别和年 龄。该类中有三个私有数据成员:姓名 char name[20]、性别和年龄。Person 类定义已经 给出,请设计其他两个类和主函数。(程序和运行结果写入实验报告) class Person { char name[20]; char gender; int age; public: Person() {} Person(char* Name,char Gender,char Age) { cout<<"Constructing "<<Name<<endl; strcpy(name,Name); gender=Gender; age=Age; } void input() { cout<<"请输入姓名:"<<endl; cin>>name; cout<<"性别:"<<endl; cin>>gender; cout<<"年龄:"<<endl; cin>>age; } void display() { cout<<"姓名:"<<name<<endl; cout<<"性别:"<<gender<<endl; cout<<"年龄:"<<age<<endl; }
好的,这是一个比较典型的面向对象编程问题,我来为您提供一下代码实现。
```python
class Person:
def __init__(self):
self.name = ''
self.gender = ''
self.age = 0
def input(self):
self.name = input('请输入姓名:')
self.gender = input('请输入性别:')
self.age = input('请输入年龄:')
def display(self):
print('姓名:', self.name)
print('性别:', self.gender)
print('年龄:', self.age)
class Student(Person):
def __init__(self):
super().__init__()
self.id = ''
self.class_num = ''
self.score = 0
def input(self):
super().input()
self.id = input('请输入学号:')
self.class_num = input('请输入班级号:')
self.score = input('请输入期末三门功课总分:')
def display(self):
super().display()
print('学号:', self.id)
print('班级号:', self.class_num)
print('期末三门功课总分:', self.score)
class Teacher(Person):
def __init__(self):
super().__init__()
self.id = ''
self.job_title = ''
self.department = ''
def input(self):
super().input()
self.id = input('请输入职工号:')
self.job_title = input('请输入职称:')
self.department = input('请输入系别:')
def display(self):
super().display()
print('职工号:', self.id)
print('职称:', self.job_title)
print('系别:', self.department)
# 测试代码
s1 = Student()
s1.input()
s2 = Student()
s2.input()
t1 = Teacher()
t1.input()
t2 = Teacher()
t2.input()
s1.display()
s2.display()
t1.display()
t2.display()
```
运行上述代码后,您可以依次输入两个学生和两个教师的信息,程序将会自动将输入的数据保存到对应的类实例中,并且可以通过调用 `display` 方法,将实例的数据打印出来。
编写python代码,定义一个类Human,类中三个属性:name,age,adress,定义方法input_info录入信息,使用方法show_info显示信息,使用方法update_info修改年龄,使某人年龄增加1岁
以下是代码实现:
```python
class Human:
def __init__(self, name, age, address):
self.name = name
self.age = age
self.address = address
def input_info(self):
self.name = input("请输入姓名:")
self.age = input("请输入年龄:")
self.address = input("请输入地址:")
def show_info(self):
print("姓名:", self.name)
print("年龄:", self.age)
print("地址:", self.address)
def update_info(self):
self.age = int(self.age) + 1
if __name__ == '__main__':
person = Human("张三", 20, "北京")
person.input_info()
person.show_info()
person.update_info()
person.show_info()
```
在上述代码中,我们定义了一个类`Human`,包括三个属性`name`、`age`、`address`和三个方法`input_info`、`show_info`、`update_info`。
其中`__init__`方法为类的构造方法,用于初始化对象的属性。`input_info`方法用于录入人员信息,`show_info`方法用于显示人员信息,`update_info`方法用于更新人员信息。
在`update_info`方法中,我们将输入的年龄转换为整数类型,并加1,更新对象的`age`属性值。
最后,我们创建了一个`person`对象,调用了`input_info`方法录入信息,调用了`show_info`方法显示信息,然后调用了`update_info`方法更新年龄,再次调用了`show_info`方法显示更新后的信息。
阅读全文