创建类,转换字符串,排序,计算
创建一个类people
包含属性name,city,可以转换为字符串形式(str)
包含方法moveto(self, newcity)
创建4个人对象,放到列表中进行排序
class People:
def __init__(self, name, city):
self.name = name
self.city = city
# People的易读字符串表示
def __str__(self):
return "(%s, %s)" % (self.name, self.city)
def moveto(self, newcity):
self.city = newcity
# 对city进行排序
def __lt__(self, other):
return self.city < other.city
# 人看得懂的方式表示name和city
__repr__ = __str__
# 构造一个Python List对象
P = list()
# 创建4个people
a = People("狗哥", "重庆")
b = People("安然", "重庆")
c = People("大力姣", "重庆")
d = People("马田", "重庆")
# 添加People对象到List中
P.append(a)
P.append(b)
P.append(c)
P.append(d)
print("原始排列方式:", P)
# 对List进行排列
P.sort()
# 查看排列后的结果
print("重新排列方式:", P)
d.moveto('不知道')
b.moveto('英国')
P.sort()
print("新城市重新排列方式:", P)
创建一个类teacher,是people的子类,新增属性school,
moveto方法改为newschool,
按照school进行排序,
创建4个教师对象,放到列表进行排序
class Teacher(People):
def __init__(self, name, city, school):
super().__init__(name, city)
self.school = school
def newschool(self, newschool):
self.school = newschool
def __lt__(self, other):
return self.school < other.school
def __str__(self):
return "(%s, %s)" % (self.name, self.school)
__repr__ = __str__
t = []
a = Teacher("小陈", "Shanghai", "地大")
b = Teacher("小万", "Beijing", "北外")
c = Teacher("小朱", "Shenzhen", "贵大")
d = Teacher("小金", "Guangzhou", "林大")
t.append(a)
t.append(b)
t.append(c)
t.append(d)
print("原始排列方式:", t)
# 对List进行排列
t.sort()
# 查看排列后的结果
print("重新排列方式:", t)
d.newschool('不知道')
b.newschool('南大')
t.sort()
print("新学校重新排列方式:", t)
创建一个mylist类
继承自内置数据类型list(列表)
增加一个方法“累乘”product,def product(self):返回所有数据项的乘积
引入map函数控制输入
class Mylist(list):
def product(self):
p = 1
for i in self:
p *= i
return p
'''
map()的原型是map(function, iterable, …),返回一个列表
function:传的是一个函数名,可以是python内置的,如str、int,也可以是自定义的
iterable:传的是一个可以迭代的对象,例如列表,元组,字符串这样的'''
# 以空格控制输入
list1 = map(int, input().split())
# 类名.方法
print(Mylist.product(list1))