【趁热打铁】python基础综合练习(一)
系列文章目录
python基础(一)之python简介与数据基本运算
python基础(二)之语句(选择与循环)
python基础(三)之容器类型(字符串,列表,元组,字典,集合,固定集合,双for循环,通用操作)
python基础(四)之函数与作用域
文章目录
- 系列文章目录
- 前言
- 一、综合练习1
- 二、综合练习2
- 三、综合练习3(精华)
-
- 购物系统
前言
前面四章介绍了python基础知识,并且每个知识都有对应的练习,同时也能够通过内存图很好的帮助我们掌握知识点,接下来是运用python基础知识做综合练习,在之后章节中完成一个游戏系统。
补充前四章知识点:
形式参数是自右向左运行
形式参数的位置有讲究,看python基础(四)
一、综合练习1
字符串:" 校 训∶自强不息、厚德载物。 "
查找空格的数量
删除字符串前后空格
删除字符串所有空格
查找"载物"的位置
判断字符串是否以"校训"开头
str01 = " 校 训∶自强不息、厚德载物。 "print(str01.count(" "))print(str01.rstrip().lstrip())print(str01.replace(" ",""))print(str01.index("载物")+1)print(str01.startswith("校训"))运行结果:10校 训∶自强不息、厚德载物。校训∶自强不息、厚德载物。13False
#位置实参无限十关键字实参无限def fun01(*args,**kwargs ): print(args) print(kwargs)fun01(1,2,3)print("--------------")fun01(1,2,3,a=4, c=5)print("--------------")fun01(a=4, c=5)print("--------------")运行结果:(1, 2, 3){}--------------(1, 2, 3){'a': 4, 'c': 5}--------------(){'a': 4, 'c': 5}--------------
方法总结:
不用刻意去记函数用法,如果需要用到去菜鸟教程去搜用法,同时也不用将此函数用法全部看尽,需要用什么看什么。
二、综合练习2
定义函数,计算指定范围内的素数。
def is_prime(number): """ 判断指定的数字是否为素数 :param number:指定的整数 :return:True表示是素数,False表示不是素数 """ for item in range(2, number): if number % item == 0: return False else: return Truedef get_prime(begin,end): """ 获取范围内的素数 :param begin:开始值(包含) :param end:结束值(不包含) :return:所有素数的列表 """ # list = [] # # 生成范围内的整数 # for number in range(begin,end): # if is_prime(number): # list.append(number) # return list return [number for number in range(begin,end) if is_prime(number)]print(get_prime(2,10))运行结果:[2, 3, 5, 7]
方法总结:
当自己写完一个函数之后,想要使函数实现分而治之的效果,可以借助
Ctrl+Alt+M
生成内嵌函数。
三、综合练习3(精华)
购物系统
shopping.py
#商品信息dict_commodity_info = { 101:{"name":"屠龙刀","price" :10000} , 102:{"name":"倚天剑","price" :10000} , 103:{"name" :"九阴白骨爪","price":8000}, 104:{"name" : "九阳神功","price":9000}, 105:{ "name":"降龙十八掌","price" :8000}, 106:{"name" :"乾坤大挪移","price" :10000}}#订单列表list_order = []def select_menu(): """ 选择菜单 """ while True: item = input("1键购买,2键结算。") if item == "1": buying() elif item =="2": settlement()def settlement(): """ 结算 """ print_orders() total_price = calculate_total_price() paying(total_price)def paying(total_price): """ 支付过程 :param total_price:需要支付的价格 """ while True: money = float(input("总价 % d元,请输入金额:" % total_price)) if money >= total_price: print(" 购买成功﹐找回∶ % d元。" % (money - total_price)) list_order.clear() break else: print("金额不足.")def calculate_total_price(): """ 计算总价格 """ total_price = 0 for order in list_order: commodity = dict_commodity_info[order["cid"]] total_price += commodity["price"] * order["count"] return total_pricedef print_orders(): """ 打印订单 """ for order in list_order: commodity = dict_commodity_info[order["cid"]] print("商品∶%s,单价∶%d ,数量:%d." % (commodity["name"], commodity["price"],order["count"]))def buying(): """ 购买 """ print_commodity_info() create_order() print("添加到购物车。")def create_order(): """ 创建订单 """ cid = input_commodity_id() count = int(input("请输入购买数量∶")) order = {"cid": cid, "count": count} list_order.append(order)def input_commodity_id(): """ 获取商品订单 """ while True: cid = int(input("请输入商品编号∶")) if cid in dict_commodity_info: break else: print("该商品不存在") return ciddef print_commodity_info(): """ 打印商品信息 """ for key, value in dict_commodity_info.items(): print("编号∶%d,名称∶%s,单价︰%d。" % (key, value["name"], value["price"]))select_menu()运行结果:1键购买,2键结算。1编号∶101,名称∶屠龙刀,单价︰10000。编号∶102,名称∶倚天剑,单价︰10000。编号∶103,名称∶九阴白骨爪,单价︰8000。编号∶104,名称∶九阳神功,单价︰9000。编号∶105,名称∶降龙十八掌,单价︰8000。编号∶106,名称∶乾坤大挪移,单价︰10000。请输入商品编号∶101请输入购买数量∶1添加到购物车。1键购买,2键结算。1编号∶101,名称∶屠龙刀,单价︰10000。编号∶102,名称∶倚天剑,单价︰10000。编号∶103,名称∶九阴白骨爪,单价︰8000。编号∶104,名称∶九阳神功,单价︰9000。编号∶105,名称∶降龙十八掌,单价︰8000。编号∶106,名称∶乾坤大挪移,单价︰10000。请输入商品编号∶102请输入购买数量∶1添加到购物车。1键购买,2键结算。1编号∶101,名称∶屠龙刀,单价︰10000。编号∶102,名称∶倚天剑,单价︰10000。编号∶103,名称∶九阴白骨爪,单价︰8000。编号∶104,名称∶九阳神功,单价︰9000。编号∶105,名称∶降龙十八掌,单价︰8000。编号∶106,名称∶乾坤大挪移,单价︰10000。请输入商品编号∶101请输入购买数量∶2添加到购物车。1键购买,2键结算。2商品∶屠龙刀,单价∶10000 ,数量:1.商品∶倚天剑,单价∶10000 ,数量:1.商品∶屠龙刀,单价∶10000 ,数量:2.总价 40000元,请输入金额:50000 购买成功﹐找回∶ 10000元。
方法总结:
函数体内部代码不超过十行
弱语法,重本质,重思想,重设计
变量命名,见名知意