一、
1、创建Person类,属性有姓名、年龄、性别,创建方法printInfo,打印这个人的信息
2、创建Student类,继承Person类,属性有学院college
,班级class,重写父类printInfo方法,调用父类方法打印个人信息外,将学生的学院、班级信息也打印出来,创建方法learn,参数为Teacher对象,调用Teacher类的teach方法,接收老师教授的知识点,然后打印‘老师xxx,我终于学会了!’xxx为老师的teach方法返回的信息
3、创建Teacher类,继承Person类,属性有学院college,专业professional
,重写父类printInfo方法,调用父类方法打印个人信息外,将老师的学院、专业信息也打印出来。创建teach方法,返回信息为‘今天讲了如何用面向对象设计程序’
4、创建三个学生对象,分别打印其详细信息
5、创建一个老师对象,打印其详细信息
6、学生对象调用learn方法
class Person(object):
def __init__(self,name,age,sex):
self.name = name
self.age = age
self.sex = sex
def personInfo(self):
print('我叫%s,年龄:%d,性别:%s'%(self.name,self.age,self.sex))
class Student(Person):
def __init__(self,name,age,sex,college,myclass):
super().__init__(name,age,sex)
self.college = college
self.myclass = myclass
def personInfo(self):
super().personInfo()
print('我是%s的%s的学生'%(self.college,self.myclass))
def study(self,teacher):
print('我是%s,老师%s,我终于学会了!'%(self.name,teacher.teachObj()))
def __str__(self):
return '我是一名叫做%s的学生,我的年龄是:%d,我的性别是:%s'%(self.name,self.age,self.sex)
class Teacher(Person):
def __init__(self,name,age,sex,college,professional):
super().__init__(name,age,sex)
self.college = college
self.professional = professional
def personInfo(self):
super().personInfo()
print('我是来自%s的一名%s讲师'%(self.college,self.professional))
def teachObj(self):
return '今天讲了如何用面向对象设计程序'
stuA = Student(‘张三’,18,‘男’,‘软工学院’,‘人工智能专业’)
stuA.personInfo()
stuB = Student(‘李四’,19,‘男’,‘软工学院’,‘人工智能专业’)
stuB.personInfo()
stuC = Student(‘小红’,20,‘女’,‘软工学院’,‘人工智能专业’)
stuC.personInfo()
teacher = Teacher(‘王昀东’,30,‘男’,‘软工学院’,‘Python’)
teacher.personInfo()
stuA.study(teacher)
stuB.study(teacher)
stuC.study(teacher)
stus = []
stus.append(stuA)
stus.append(stuB)
stus.append(stuC)
for stu in stus:
print(stu)
二、
创建ComputerShop类,参数:list列表,存储内容有库存、品牌、价格(例如:list = [{‘count’:11,'brand
':‘拯救者’,‘price’:5999},{‘count’:21,‘brand’:‘外星人’,‘price’:7999]),money为用户开店进货后剩余金额,创建对象时需要指定该金额。
方法有:
1、查找商品,让用户输入指定品牌,查找到后打印该品牌电脑的信息;
2、售卖商品,用户输入商品名称后,在库存中查找信息,判断库存,然后卖出(默认一台一台的卖),卖出结果为库存该商品-1,店铺余额money增加;
3、商品进货,输入进货名称,进货价为商品价格-1000,判断店铺金额是否满足进货金额,不满足重新输入,满足后,店铺余额减少,指定商品数量增加
4、打印店铺信息,将剩余商品的名称、价格、库存以及店铺余额
打印出来
class ComputerShop:
def __init__(self,list,money):
self.list = list
self.money = money
def __str__(self):
msg = ""
for dict in list:
for key in dict.keys():
if key == 'brand':
msg += "品牌:"+dict[key]+','
if key == 'price':
msg += "单价:%d"%dict[key]+','
if key == 'count':
msg += "库存:%d"%dict[key]+','
msg = msg.strip(',')
msg+='\n'
msg += '店铺余额:%d'%self.money
return msg
def search_computer(self):
a = 1#假设当前查找的电脑不存在
print('请输入要查找的电脑品牌:')
brand = input()
for dict in list:
if brand in dict.values():
print('您要查找的品牌为%s,单价为%d'%(dict['brand'],dict['price']))
a = 2
break
if a == 1:
print('对不起,本店没有您要的电脑品牌!')
def sell_computer(self):
isExist = False
print('请输入您要购买的电脑品牌:')
brand = input()
for dict in list:
if brand in dict.values():
print('您要查找的品牌为%s,单价为%d'%(dict['brand'],dict['price']))
count = dict['count']
if count == 0:
print('对不起,该品牌的电脑暂时无货')
else:
print('恭喜您购买成功,付款%d元'%dict['price'])
dict['count'] = count - 1
self.money += dict['price']
isExist = True
break
if not isExist:
print('对不起,本店没有您要的电脑品牌!')
def buy_computer(self):
canBuy = False
print('请输入您要进货的电脑品牌:')
brand = input()
for dict in list:
if brand in dict.values():
canBuy = True
break
if canBuy:
number = int(input('请输入进货数量:'))
for dict in list:
if brand in dict.values():
totalPrice = (dict['price'] - 1000) * number
print('总价为:%d'%totalPrice)
break
if totalPrice > self.money:
print('对不起,您的金额不足!')
else:
self.money -= totalPrice
for dict in list:
if brand in dict.values():
dict['count'] += number
break
else:
print('您要进货的品牌不再授权范围内!')
list = [
{‘count’:11,‘brand’:‘拯救者’,‘price’:5999},
{‘count’:21,‘brand’:‘外星人’,‘price’:7999},
{‘count’:20,‘brand’:‘飞行堡垒’,‘price’:4999}]
shop = ComputerShop(list,20000);
isExit = True;
while isExit:
num = int(input(‘请输入用户类型:’))
if num == 1:
print(‘欢迎光临本小店,请选择您要进行的操作:’)
while True:
print(‘1、查找商品’)
print(‘2、购买商品’)
print(‘3、退出’)
number = int(input())
if number == 1:
shop.search_computer()
elif number == 2:
shop.sell_computer()
else:
break
if num == 2:
print(‘欢迎光临本小店,请选择您要进行的操作:’)
while True:
print(‘1、店铺进货’)
print(‘2、查看店铺信息’)
print(‘3、退出’)
number = int(input())
if number == 1:
shop.buy_computer()
elif number == 2:
print(shop)
else:
isExit = False
print(‘Goodbye~~~~’)
break
三、
1、创建题库列表,例如
[{‘question’:‘取得驾照的最低年龄是?’,‘A’:‘18’,‘B’:‘19’,‘C’:‘20’,‘D’:‘21’,‘answer’:‘A’},
{‘question’:‘取得驾照的最低年龄是?’,‘A’:‘18’,‘B’:‘19’,‘C’:‘20’,‘D’:‘21’,‘answer’:‘B’}]
最少存储10道题(题目随便写)
2、用户进入答题系统,随机抽取五道题,每题20分,得分60及格,不及格就一直答题!
每次答题结束后,给出用户正确答案,符合分数要求,程序结束
import random
import time
questions = [
{‘question’:‘驾驶机动车在道路上违反道路交通安全法的行为,属于什么行为?’,
‘A’:‘违章行为’,
‘B’:‘违法行为’,
‘C’:‘过失行为’,
‘D’:‘违规行为’,
‘answer’:‘B’},
{‘question’:‘机动车驾驶人违法驾驶造成重大交通事故构成犯罪的,依法追究什么责任?’,
‘A’:‘刑事责任’,
‘B’:‘民事责任’,
‘C’:‘经济责任’,
‘D’:‘直接责任’,
‘answer’:‘A’},
{‘question’:‘机动车驾驶人造成事故后逃逸构成犯罪的,吊销驾驶证且多长时间不得重新取得驾驶证?’,
‘A’:‘5年内’,
‘B’:‘10年内’,
‘C’:‘终生’,
‘D’:‘20年内’,
‘answer’:‘C’},
{‘question’:‘驾驶机动车应当随身携带哪种证件?’,
‘A’:‘工作证’,
‘B’:‘驾驶证’,
‘C’:‘身份证’,
‘D’:‘职业资格证’,
‘answer’:‘B’},
{‘question’:‘未取得驾驶证的学员在道路上学习驾驶技能,下列哪种做法是正确的?’,
‘A’:‘使用所学车型的教练车由教练员随车指导’,
‘B’:‘使用所学车型的教练车单独驾驶学习’,
‘C’:‘使用私家车由教练员随车指导’,
‘D’:‘使用所学车型的教练车由非教练员的驾驶人随车指导’,
‘answer’:‘A’},
{‘question’:‘机动车驾驶人初次申领驾驶证后的实习期是多长时间?’,
‘A’:‘6个月’,
‘B’:‘12个月’,
‘C’:‘16个月’,
‘D’:‘18个月’,
‘answer’:‘B’},
{‘question’:‘在实习期内驾驶机动车的,应当在车身后部粘贴或者悬挂哪种标志?’,
‘A’:‘注意新手标志’,
‘B’:‘注意避让标志’,
‘C’:‘统一式样的实习标志’,
‘D’:‘注意车距标志’,
‘answer’:‘C’},
{‘question’:‘以欺骗、贿赂等不正当手段取得驾驶证被依法撤销驾驶许可的,多长时间不得重新申请驾驶许可?’,
‘A’:‘3年内’,
‘B’:‘终身’,
‘C’:‘1年内’,
‘D’:‘5年内’,
‘answer’:‘A’},
{‘question’:‘驾驶拼装机动车上路行驶的驾驶人,除按规定接受罚款外,还要受到哪种处理?’,
‘A’:‘处10日以下拘留’,
‘B’:‘暂扣驾驶证’,
‘C’:‘吊销驾驶证’,
‘D’:‘追究刑事责任’,
‘answer’:‘C’},
{‘question’:‘下列哪种证件是驾驶机动车上路行驶应当随车携带?’,
‘A’:‘机动车登记证’,
‘B’:‘机动车保险单’,
‘C’:‘机动车行驶证’,
‘D’:‘出厂合格证明’,
‘answer’:‘C’},]
score = 0
list = []
print(‘欢迎使用北财驾考题库系统’)
while score < 60:
print(‘三秒倒计时后开始答题:’)
time.sleep(1)
print(‘3’)
time.sleep(1)
print(‘2’)
time.sleep(1)
print(‘1’)
while True:#循环从问题列表中随机抽取五个字典
index = random.randint(1,len(questions)-1)
#如果问题列表的长度为0或者抽取的字典在问题列表中不存在 则直接将抽取的字典存入列表中
if len(list) == 0 or list.count(questions[index]) == 0:
list.append(questions[index])
#如果列表的长度为5 则终止循环
if len(list) == 5:
break
answers = []#用户的答案列表
for question in list:#遍历问题列表中的问题和选项 让用户选择答案
print(question[‘question’])
print(‘A:’+question[‘A’])
print(‘B:’+question[‘B’])
print(‘C:’+question[‘C’])
print(‘D:’+question[‘D’])
ans = input(‘请输入您的答案:’)
answers.append(ans)#将用户输入的答案存入答案列表中
print(‘标准答案’)
for ques in list:#从问题列表中输出正确答案
print(ques[‘answer’],end = ’ ‘)
print(’’)
print(‘您的答案’)
for ans in answers:#从答案列表中输出用户的答案
print(ans,end = ’ ‘)
print(’’)
for index in range(0,5):#从第一个答案开始判断 看看用户的答案和正确答案有几个是匹配的
if list[index][‘answer’] == answers[index].upper():#将用户输入的选项转换为大写字母
score += 20#答对一题 加20分
if score >= 60:#60分以上及格 此时外层while循环终止
print(‘您的成绩为:%d,恭喜过关’%score)
else:
print(‘您的成绩为:%d,抱歉,请继续答题’%score)
score = 0#成绩不合格,重新答题时成绩归零