python高级练习题代码

一、

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#成绩不合格,重新答题时成绩归零

你可能感兴趣的:(python高级练习题代码)