手机类 属性有 颜色 屏幕大小 价格 品牌 创建一个对象打印信息
创建一个手机类 属性有 颜色 屏幕大小 价格 品牌 创建一个对象打印信息
代码
# 创建一个手机类 属性有 颜色 屏幕大小 价格 品牌 创建一个对象打印信息
class Phone:
def __init__(self, color, screen_size, price, brand):
self.color = color
self.screen_size = screen_size
self.price = price
self.brand = brand
pass
def __str__(self):
return f'color: {self.color} screen size: {self.screen_size} price: {self.price} brand: {self.brand}'
my_phone = Phone('blue', '5.7', 4999, 'Xiaomi')
print(my_phone)
输出
记录学生信息/统计不及格学生以及打印其信息
-
封装 Student 类
- 属性有 name、age、tel、score、sex
- 方法有 getScore(打印 name score)、getStudent(打印个人全部信息)
-
使用 list 存储 10 个学生对象 迭代所有学生信息
-
打印不及格学生信息以及统计不及格学生数量
代码
# 学生信息
# 1 封装 Student 类
class Student:
def __init__(self, name, age, tel, score, sex):
self.name = name
self.age = age
self.tel = tel
self.score = score
self.sex = sex
pass
def getScore(self):
return f'name: {self.name} score: {self.score}'
def getStudent(self):
return f'name: {self.name} age: {self.age} tel: {self.tel} score: {self.score} sex: {self.sex}'
girl = Student('张三', 20, '130', 98, '女')
print(girl.getScore())
print(girl.getStudent())
# 2 使用 list 存储 10 个学生对象 迭代所有学生信息
stds = []
idx = 0
cnt = 10
while idx < cnt:
print(f'当前输入次数是:{idx + 1} 需要输入总次数是:{cnt}')
name = input('name: ')
age = int(input('age: '))
tel = input('tel: ')
score = int(input('score: '))
sex = input('sex: ')
stds.append(Student(name, age, tel, score, sex))
idx += 1
pass
print('学生列表信息如下:')
for std in stds:
print(std.getStudent())
# 3 打印不及格学生信息以及统计不及格学生数量
fail_student = []
fail_cnt = 0
for std in stds:
if std.score < 60:
fail_student.append(std)
fail_cnt += 1
print(f'不及格学生数量有:{fail_cnt}个,不及格学生信息如下:')
for fail_std in fail_student:
print(fail_std.getStudent())
输出
父类 徒弟Prentice 子类 孙悟空/猪八戒/沙和尚
徒弟信息
孙悟空
属性 name、age、武器weapon、紧箍咒formula
方法 吃斋doMaigre、念佛buddha、取经doPilgrimage、战斗fight、降妖extDevil
猪八戒
属性 name、age、武器、媳妇wife
方法 念佛、取经、战斗、牵马holdHorse
沙和尚
属性 name、age、武器、流沙河sandRiver
方法 念佛、取经、战斗、挑行李pickUpLuge
代码
# 徒弟 Prentice 父类
class Prentice:
def __init__(self, name, age, weapon):
self.name = name
self.age = age
self.weapon = weapon
pass
def buddha(self):
return '念佛'
def doPilgrimage(self):
return '取经'
def fight(self):
return '战斗'
class MonkeyKing(Prentice):
def __init__(self, name, age, weapon, formula):
self.formula = formula
super().__init__(name, age, weapon)
pass
def getMonkeyKing(self):
return f'name: {self.name} age: {self.age} weapon: {self.weapon} formula: {self.formula}'
def doMaigre(self):
return '吃斋'
def extDevil(self):
return '降妖'
mk = MonkeyKing('monkey_king', 500, 'golden_hoop', True)
print(mk.getMonkeyKing())
print(mk.doMaigre())
print(mk.buddha())
print(mk.doPilgrimage())
print(mk.fight())
print(mk.extDevil())
输出
情侣 男生想看电影 女生想学习 猜拳三局两胜 输出获胜方
代码
# 情侣 男生想看电影 女生想学习 猜拳三局两胜 输出获胜方
# 石头 > 剪刀 > 布 > 石头 > ...
import random
class Person:
mora_choice = ['stone', 'scissors', 'cloth']
def __init__(self, name, sex):
self.name = name
self.sex = sex
pass
def watchMoive(self):
return '看电影'
def learning(self):
return '学习'
def getMoraChoice(self):
return random.choice(self.mora_choice)
def mora(self, mora_choice1, mora_choice2):
cnt = len(self.mora_choice)
for i, tmp_choice in enumerate(self.mora_choice):
if tmp_choice != mora_choice1:
continue
if i + 1 < cnt:
return mora_choice2 == self.mora_choice[i + 1]
else:
return mora_choice2 == self.mora_choice[0]
boy = Person('Tom', '男')
girl = Person('Anna', '女')
win_cnt_girl = 0
win_cnt_boy = 0
while win_cnt_girl < 2 or win_cnt_boy < 2:
choice_boy = boy.getMoraChoice()
choice_girl = girl.getMoraChoice()
win_flag = boy.mora(choice_boy, choice_girl)
if win_flag:
win_cnt_boy += 1
else:
win_cnt_girl += 1
pass
if win_cnt_girl > win_cnt_boy:
print(f'winner: {girl.name}')
print(f'{girl.name}和{boy.name}一起{girl.learning()}')
else:
print(f'winner: {boy.name}')
print(f'{girl.name}和{boy.name}一起{boy.watchMoive()}')
输出
人体关键点描述
人:姓名、年龄、关键点
关键点:x、y
代码
# 人体关键点描述
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
self.landmarks = []
pass
class Marks:
def __init__(self, x, y):
self.x = x
self.y = y
pass
person = Person('Anna', 20)
# lm1 = [10, 20]
# lm2 = [20, 50]
# lm3 = [40, 80]
# person.landmarks.append(lm1)
# person.landmarks.append(lm2)
# person.landmarks.append(lm3)
#
# for idx, lm in person.landmarks:
# print(idx, lm)
lm1 = Marks(10, 20)
lm2 = Marks(20, 50)
lm3 = Marks(40, 80)
person.landmarks.append(lm1)
person.landmarks.append(lm2)
person.landmarks.append(lm3)
for idx, lm in enumerate(person.landmarks):
print(idx, lm.x, lm.y)
输出
人体关键点描述plus 增加眼部关键点 手部关键点
人:姓名、年龄、关键点、眼睛、手
关键点:x、y
眼睛:左右类型、关键点
手:左右类型、关键点
分别遍历:眼部、手部
代码
# 人体关键点描述plus 增加眼部关键点 手部关键点
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
self.landmarks = []
self.eyes = []
self.hands = []
pass
class Eye:
def __init__(self):
# 默认是左眼
self.type = 'left'
self.landmarks = []
pass
class Hand:
def __init__(self):
# 默认是左手
self.type = 'left'
self.landmarks = []
pass
class Marks:
def __init__(self, x, y):
self.x = x
self.y = y
pass
person = Person('Anna', 20)
left_eye = Eye()
right_eye = Eye()
right_eye.type = 'right'
left_hand = Hand()
right_hand = Hand()
right_hand.type = 'right'
lm1 = Marks(10, 20)
lm2 = Marks(20, 50)
lm3 = Marks(40, 80)
left_eye.landmarks.append(lm1)
left_eye.landmarks.append(lm2)
left_eye.landmarks.append(lm3)
left_hand.landmarks.append(lm1)
left_hand.landmarks.append(lm2)
left_hand.landmarks.append(lm3)
lm1 = Marks(10, 20)
lm2 = Marks(20, 50)
lm3 = Marks(40, 80)
right_eye.landmarks.append(lm1)
right_eye.landmarks.append(lm2)
right_eye.landmarks.append(lm3)
right_hand.landmarks.append(lm1)
right_hand.landmarks.append(lm2)
right_hand.landmarks.append(lm3)
person.eyes.append(left_eye)
person.eyes.append(right_eye)
person.hands.append(left_hand)
person.hands.append(right_hand)
for eye in person.eyes:
for idx, lm in enumerate(eye.landmarks):
print(f'eye_type: {eye.type} index: {idx} marks: {lm.x} {lm.y}')
print('-------------------------')
for hand in person.hands:
for idx, lm in enumerate(hand.landmarks):
print(f'hand_type: {hand.type} index: {idx} marks: {lm.x} {lm.y}')
输出
人体关键点描述plus++ 区分关键点在哪只手的哪个手指头
人:姓名、年龄、关键点、眼睛
关键点:x、y
眼睛:左右类型、关键点
手指:手指类型、关键点
手指类型:thumb、index、middle_finger、ring_finger、little_finger
输出
# 人体关键点描述plus++ 区分关键点在哪只手的哪个手指头
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
self.landmarks = []
self.eyes = []
self.hands = []
pass
class Hand:
def __init__(self):
# 默认是左手
self.type = 'left'
self.landmarks = []
self.fingers = []
pass
class Finger:
def __init__(self):
# 默认是拇指
self.type = 'thumb'
self.landmarks = []
pass
class Marks:
def __init__(self, x, y):
self.x = x
self.y = y
pass
person = Person('Anna', 20)
thumb = Finger()
# index = Finger()
# index.type = 'index'
# middle_finger = Finger()
# middle_finger.type = 'middle_finger'
# ring_finger = Finger()
# ring_finger.type = 'ring_finger'
# little_finger = Finger()
# little_finger.type = 'little_finger'
left_hand = Hand()
lm1 = Marks(10, 20)
lm2 = Marks(20, 50)
thumb.landmarks.append(lm1)
thumb.landmarks.append(lm2)
left_hand.fingers.append(thumb)
person.hands.append(left_hand)
print('-------------------------')
for hand in person.hands:
for finger in hand.fingers:
for idx, lm in enumerate(finger.landmarks):
print(f'finger_type: {finger.type} index: {idx} marks: {lm.x} {lm.y}')
输出
商城有很多店铺 店铺有很多商品
商城Mall:name、店铺
店铺Shop:name、商品
商品Goods:name、price、brand、商品位置
遍历:商城下面的店铺、店铺下的商品
代码
# 商城有很多店铺 店铺有很多商品
class Mall:
def __init__(self, name):
self.name = name
self.shops = []
pass
class Shop:
def __init__(self, name):
self.name = name
self.goods = []
pass
class Goods:
def __init__(self, name, price, brand):
self.name = name
self.price = price
self.brand = brand
self.marks = []
pass
class Marks:
def __init__(self, x, y):
self.x = x
self.y = y
pass
# 商城
mail = Mall('center_mail')
# 店铺
phone_shop = Shop('phone_shop')
book_shop = Shop('book_shop')
# 商品
XM = Goods('XM', 2999, 'Xiaomi')
HW = Goods('HW', 1999, 'Huawei')
IT_book = Goods('IT_book', 100, '计算机丛书')
food_book = Goods('food_book', 80, '食谱丛书')
# 商品位置
goods_lm1 = Marks(10, 20)
goods_lm2 = Marks(20, 50)
# 位置定位商品
XM.marks.append(goods_lm1)
HW.marks.append(goods_lm2)
IT_book.marks.append(goods_lm1)
food_book.marks.append(goods_lm2)
# 商品放入店铺
phone_shop.goods.append(XM)
phone_shop.goods.append(HW)
book_shop.goods.append(IT_book)
book_shop.goods.append(food_book)
# 店铺放商城
mail.shops.append(phone_shop)
mail.shops.append(book_shop)
print(f'mail_name: {mail.name}')
print('----------------------')
for shop in mail.shops:
print(f'shop_name: {shop.name}')
for goods in shop.goods:
for idx, lm in enumerate(goods.marks):
print(f'goods_info: name: {goods.name} price: {goods.price} brand: {goods.brand} marks: {idx} {lm.x} {lm.y}')
print('----------------------')