栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【趁热打铁】python基础综合练习(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【趁热打铁】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
校 训∶自强不息、厚德载物。
校训∶自强不息、厚德载物。
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]

方法总结:

当自己写完一个函数之后,想要使函数实现分而治之的效果,可以借助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_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元。

方法总结:

函数体内部代码不超过十行
弱语法,重本质,重思想,重设计
变量命名,见名知意

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/822350.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号