python练习题
1、写一个函数,可以完成任意指定整数的相加,并返回结果
def addition(*args): sum = 0 for item in args: sum = sum + item return sum if __name__ == '__main__': res = addition(1, 2, 3, 10) print(res)
2、创建一个名为User的类,其中包含属性 frirst_name和last_name有用户简介通常会存储的其他几个属性,
在类User中定义一个名为describe_user()的方法,它打印用户信息摘要,
再定义一个名为greet_user()的方法,它向用户发出个性化的问候,
创建多个表示不同用户的实例,并对每个实例都调用上述两个方法
''' 创建一个名为User的类,其中包含属性 frirst_name和last_name 有用户简介通常会存储的其他几个属性,在类User中定义一个名为 describe_user()的方法,它打印用户信息摘要,再定义一个名为 greet_user()的方法,它向用户发出个性化的问候,创建多个表示不同用户 的实例,并对每个实例都调用上述两个方法 ''' class User: def __init__(self, fisrt_name, last_name, age): self.first_name = fisrt_name self.last_name = last_name self.age = age def describe_user(self,*args): print("这个人叫:{0}{1},年龄:{2}\n兴趣有:".format(self.first_name,self.last_name,self.age)) for item in args: # print(item) print(item , end='、') print('') def greet_user(self,content): print("亲爱的{0},{1}".format(self.first_name,content)) @classmethod def welcome_info(cls): print("欢迎大家的到来,谢谢大家!!!祝大家每天开开心心") @staticmethod def wish(): print("希望大家越来越好") if __name__ == '__main__': user = User("罗","方",19) user.describe_user("看书","看电视") user.greet_user("欢迎你!!!") user.welcome_info() print(150*"-") user1 = User("陈", "方", 19) user1.describe_user("看书", "看电视") user1.greet_user("今天你真漂亮!!!") print(150*"-") user1 = User("里", "方", 19) user1.describe_user("看书", "看电视") user1.greet_user("你看起来真精神") user.wish()
3、自动贩卖机:只接受1元、5元、10元的纸币或硬币;
可以1块,5元,10元。最多不超过10块钱。饮料只有橙计、椰汁、矿泉水、早餐奶,售价分别是3.5,4,2,4.5写一个函数用来表示贩卖机的功能:用户投钱和选择饮料,并通过判断之后,给用户吐出饮料和找零。
''' 自动贩卖机:只接受1元、5元、10元的纸币或硬币; 可以1块,5元,10元。 最多不超过10块钱。 饮料只有橙计、椰汁、矿泉水、早餐奶,售价分别是3.5,4,2,4.5 写一个函数用来表示贩卖机的功能:用户投钱和选择饮料,并通过判断之后,给用户吐出饮料和找零。 ''' class VendingMachine: def chose_product(self): product_info = {"橙汁": 3.5, "椰汁": 4, "矿泉水": 2, "早餐奶": 4.5} products = product_info.keys() # 所选商品总金额 goods_sum_amount = 0 goods_info = [] print("商品选择完成后,记得点击【OK】进行结账") while True: try: if 0 <= goods_sum_amount < 10: chose_product = input("请选择商品: ") if chose_product in products: # 查出所选商品的金额 goods_amount = product_info[chose_product] goods_info.append(chose_product) goods_sum_amount = goods_sum_amount + goods_amount # print(goods_sum_amount) # print(goods_info) elif chose_product == 'OK' or chose_product == 'ok': # print("你选择的商品总额为:{0}元".format(goods_sum_amount)) break else: print("没有该商品,请重新选择商品") elif goods_sum_amount == 10: # print("你选择的商品总额为:{0}元".format(goods_sum_amount)) break else: # print("你选择的商品总金额超过10元了,你的商品金额为{0}元".format(goods_sum_amount)) # print("你选择的商品总金额超过10元了,你的商品金额为元" + goods_sum_amount) break except Exception as e: print("错误信息:".format(e)) break print("您选择的商品有: ", end='') for item in goods_info: print(item, end='、') return goods_sum_amount def insert_coin(self): # 可找零的金额 bills = [0.5, 1, 5, 10] vending = VendingMachine() # 需付款金额 need_to_pay = vending.chose_product() if 0 < need_to_pay <= 10: print("你所选商品总额为:{0}元,请完成付款".format(need_to_pay)) # 实付款金额 actual_pay = 0 while True: if actual_pay < need_to_pay: please_insert_coin = input("请投币: ") actual_pay = actual_pay + int(please_insert_coin) # print("你已付金额{0}元".format(actual_pay)) elif actual_pay == need_to_pay: print("应付款:{0}元, 实付款:{1}元。\n付款已完成,欢迎下次光临!!!".format(need_to_pay, actual_pay)) break elif actual_pay > need_to_pay: give_change = actual_pay - need_to_pay print("你已付{0}元,进行找零:{1}元".format(actual_pay, give_change)) break elif need_to_pay == 0: print("你未选择商品,不需要付款") else: print("你选择商品总金额超过10元,请重新选择") if __name__ == '__main__': res = VendingMachine() # print(res.chose_product()) res.insert_coin() # res.chose_product()
4、写函数,将姓名、性别,城市作为参数,并且性别默认为f(女)。如果城市是在长沙并且性别为女,则输出姓名、性别、城市,并返回True否则返回 False
''' 写函数,将姓名、性别,城市作为参数,并且性别默认为f(女)。 如果城市是在长沙并且性别为女,则输出姓名、性别、城市,并返回True否则返回 False ''' def user_info(name,city,sex='f'): if sex == '女': print("用户信息:{0},性别为女,所在城市:{1}".format(name,city)) return True else: print("该用户不是女的,可能是个男的") return False if __name__ == '__main__': user_info("李四","上海",'女') user_info("李四", "上海", '男')
5、定义一个函数,成绩作为参数传入。如果成绩小于60,则输出不及格。如果成绩在60到80之间,则输出良好;如果成绩高于80分,则输出优秀,如果成绩不在0-100之间,则输出成绩输入错误。
''' 定义一个函数,成绩作为参数传入。 如果成绩小于60,则输出不及格。 如果成绩在60到80之间,则输出良好; 如果成绩高于80分,则输出优秀,如果成绩不在0-100之间,则输出成绩输入错误 ''' def check_scorre(grade): if 0 <= grade < 60: print("你的成绩为{0},成绩不及格,加油哦!".format(grade)) elif 60 <= grade < 80: print("你的成绩为{0},成绩良好,继续加油!".format(grade)) elif 80 <= grade <= 100: print("你的成绩为{0},成绩优秀,棒棒哒!".format(grade)) else: print("成绩为:{0},成绩输入错误".format(grade)) if __name__ == '__main__': check_scorre(310) check_scorre(0) check_scorre(60) check_scorre(80) check_scorre(100)
6、3人和机器猜拳游戏写成一个类,有如下几个函数
1)函数1: 选择角色1曹操 2张飞 3刘备
2)函数2: 角色猜拳1剪刀 2石头 3布 玩家输入一个1-3的数字
3)函数3: 电脑出拳随机产生1个1-3的数字,提示电脑出拳结果
4)函数4: 角色和机器出拳对战,对战结束后,最后出示本局对战结果,xxx赢xxx输,然后提示用户是否继续?按y继续,按n退出
5)最后结束的时候输出结果,角色赢几局、电脑赢几局、平局几次 ,游戏结束
7、按照以下要求定义一个游乐园门票类,并创建实例调用函数,完成儿童和大人的总票价统计(人数不定,由你输入的人数个数来决定)
1)平日票价100元
2)周末票价为平日票价120%
3)儿童半价
''' 按照以下要求定义一个游乐园门票类,并创建实例调用函数,完成儿童和大人的总票价统计(人数不定,由你输入的人数个数来决定) 1)平日票价100元 2)周末票价为平日票价120% 3)儿童半价 ''' class ParkTicket: def __init__(self, name, age, play_date,draw_num=1): self.name = name self.age = age self.play_date = play_date self.draw_num = draw_num def park_ticket(self): park_ticket_price = 100 if 0 < self.age < 12: if self.play_date == '周六' or self.play_date == '周日': park_ticket_price = park_ticket_price * 1.2 * 0.5 print("今天是{0},你还是个孩子,单票价为:{1}".format(self.play_date, park_ticket_price)) else: park_ticket_price = park_ticket_price * 0.5 print("你还是个孩子,单票价为:{0}".format(park_ticket_price)) elif 12 <= self.age <= 100: if self.play_date == '周六' or self.play_date == '周日': park_ticket_price = park_ticket_price * 1.2 print("今天是{0},你是个成年人,单票价为:{1}".format(self.play_date, park_ticket_price)) else: park_ticket_price = park_ticket_price print("你是个成年人,单票价为:{0}".format(park_ticket_price)) else: print("你不能去游乐园玩!!!!") ticket_price_sum = self.draw_num * park_ticket_price print("你有{0}个人同行,总票价为{1}".format(self.draw_num,ticket_price_sum)) return ticket_price_sum if __name__ == '__main__': pt = ParkTicket("李四", 20, '周六',10) pt.park_ticket()
8、操作excel
1)利用 openpyxl写一个专门读取Exce里面测试数据的类
2)结合课堂上老师讲解的单元测试方法,通过初始化函数传参的方法,完成单元测试
3)提交操作Exce的类,test_suite ,test_http类(类名可以你自己定,我提供的是老师上课写的类名)
越努力越幸运