python基础(一)之python简介与数据基本运算
python基础(二)之语句(选择与循环)
python基础(三)之容器类型(字符串,列表,元组,字典,集合,固定集合,双for循环,通用操作)
python基础(四)之函数与作用域
文章目录
- 系列文章目录
- 前言
- 一、综合练习1
- 二、综合练习2
- 三、综合练习3(精华)
- 购物系统
前言
前面四章介绍了python基础知识,并且每个知识都有对应的练习,同时也能够通过内存图很好的帮助我们掌握知识点,接下来是运用python基础知识做综合练习,在之后章节中完成一个游戏系统。
补充前四章知识点:
一、综合练习1形式参数是自右向左运行
形式参数的位置有讲究,看python基础(四)
字符串:" 校 训∶自强不息、厚德载物。 "
查找空格的数量
删除字符串前后空格
删除字符串所有空格
查找"载物"的位置
判断字符串是否以"校训"开头
str01 = " 校 训∶自强不息、厚德载物。 "
print(str01.count(" "))
print(str01.rstrip().lstrip())
print(str01.replace(" ",""))
print(str01.index("载物")+1)
print(str01.startswith("校训"))
运行结果:10
校 训∶自强不息、厚德载物。
校训∶自强不息、厚德载物。
13
False
#位置实参无限十关键字实参无限
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 True
def 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]
方法总结:
三、综合练习3(精华) 购物系统当自己写完一个函数之后,想要使函数实现分而治之的效果,可以借助Ctrl+Alt+M生成内嵌函数。
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_price
def 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 cid
def 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元。
方法总结:
函数体内部代码不超过十行
弱语法,重本质,重思想,重设计
变量命名,见名知意



