黑马程序员技术交流社区

标题: 加强笔记__day1(上) [打印本页]

作者: 小江哥    时间: 2018-10-10 14:25
标题: 加强笔记__day1(上)
6.加强练习                0
模块的基本使⽤               
学⽣管理系统               
setlisttuple               
列表推导式               
匿名函数               
递归函数(了解)               
给程序传参       
01.模块
模块是 Python 程序架构的⼀个核⼼概念
模块 就好⽐是 ⼯具包,要想使⽤这个⼯具包中的⼯具,就需要 导⼊import 这个模块        每⼀个以扩展名 py 结尾的 Python 源代码⽂件都是⼀个 模块
在模块中定义的 全局变量 函数 都是模块能够提供给外界直接使⽤的⼯具
1.1第⼀个模块体验
步骤
新建 hm_10_分隔线模块.py
复制 hm_09_打印多条分隔线.py 中的内容,最后⼀⾏ print 代码除外
增加⼀个字符串变量
name = "⿊⻢程序员"
新建 hm_10_体验模块.py ⽂件,并且编写以下代码:
import hm_10_分隔线模块
hm_10_分隔线模块.print_line("-", 80)
print(hm_10_分隔线模块.name)
体验⼩结
可以 在⼀个 Python ⽂件 中 定义 变量 或者 函数
然后在 另外⼀个⽂件中 使⽤ import 导⼊这个模块
导⼊之后,就可以使⽤ 模块名.变量 / 模块名.函数 的⽅式,使⽤这个模块中定义的变        量或者函数
模块可以让 曾经编写过的代码 ⽅便的被 复⽤!
1.2模块名也是⼀个标识符
标示符可以由 字⺟、下划线 数字 组成
不能以数字开头 不能与关键字重名
注意:如果在给 Python ⽂件起名时,以数字开头 是⽆法在 PyCharm 中通过导⼊这个模块的
02.综合应⽤—— 名⽚管理系统
系统需求
程序启动,显示名⽚管理系统欢迎界⾯,并显示功能菜单
**************************************************
欢迎使⽤【名⽚管理系统】V1.0
1.新建名⽚
2.显示全部
3.查询名⽚
0. 退出系统
**************************************************
⽤户⽤数字选择不同的功能
根据功能选择,执⾏不同的功能
⽤户名⽚需要记录⽤户的 姓名、电话、QQ、邮件
如果查询到指定的名⽚,⽤户可以选择 修改 或者 删除 名⽚
步骤
1.框架搭建
2.新增名⽚
3.显示所有名⽚
4.查询名⽚
5.查询成功后修改、删除名⽚
6.Python 程序能够直接运⾏
2.1框架搭建
⽬标
搭建名⽚管理系统 框架结构
1.准备⽂件,确定⽂件名,保证能够 在需要的位置 编写代码
2.编写 主运⾏循环,实现基本的 ⽤户输⼊和判断
2.2⽂件准备
1.新建 cards_main.py 保存 主程序功能代码程序的⼊⼝
每⼀次启动名⽚管理系统都通过 main 这个⽂件启动
2.新建 cards_tools.py 保存 所有名⽚功能函数
将对名⽚的 新增、查询、修改、删除 等功能封装在不同的函数中

2.3编写主运⾏循环
cards_main 中添加⼀个 ⽆限循环
while True:
# TODO(⼩明) 显示系统菜单
action = input("请选择操作功能:")
print("您选择的操作是:%s" % action)
# 根据⽤户输⼊决定后续的操作
if action in ["1", "2", "3"]: pass
elif action == "0":
print("欢迎再次使⽤【名⽚管理系统】")
break else:
print("输⼊错误,请重新输⼊")
字符串if action in ["1", "2", "3"]:判断
if action == "1" or action == "2" or action == "3":
1.使⽤ in 针对 列表 判断,避免使⽤ or 拼接复杂的逻辑条件
2.没有使⽤ int 转换⽤户输⼊,可以避免 ⼀旦⽤户输⼊的不是数字,导致程序运⾏出错
pass
pass 就是⼀个空语句,不做任何事情,⼀般⽤做占位语句是为了保持程序结构的完整性
⽆限循环
在开发软件时,如果 不希望程序执⾏后 ⽴即退出可以在程序中增加⼀个 ⽆限循环
由⽤户来决定 退出程序的时机
TODO 注释
# 后跟上 TODO ,⽤于标记需要去做的⼯作
# TODO(作者/邮件) 显示系统菜单
cards_tools 中增加四个新函数
def show_menu():
"""显示菜单"""
pass
def new_card():
"""新建名⽚"""
print("-" * 50)
print("功能:新建名⽚")
def show_all():
"""显示全部"""
print("-" * 50)
print("功能:显示全部")
def search_card():
"""搜索名⽚"""
print("-" * 50)
print("功能:搜索名⽚")
2.5导⼊模块
cards_main.py 中使⽤ import 导⼊ cards_tools 模块 import cards_tools
修改 while 循环的代码如下:
import cards_tools
while True:
cards_tools.show_menu()
action = input("请选择操作功能:")
print("您选择的操作是:%s" % action)
# 根据⽤户输⼊决定后续的操作
if action in ["1", "2", "3"]:
if action == "1": cards_tools.new_card()
elif action == "2": cards_tools.show_all()
elif action == "3": cards_tools.search_card()
elif action == "0":
print("欢迎再次使⽤【名⽚管理系统】")
break else:
print("输⼊错误,请重新输⼊:")
⾄此:cards_main 中的所有代码全部开发完毕!
2.6完成 show_menu 函数
def show_menu():
"""显示菜单"""
print("*" * 50)
print("欢迎使⽤【菜单管理系统】V1.0") print("")
print("1. 新建名⽚")
print("2. 显示全部")
print("3. 查询名⽚")
print("")
print("0. 退出系统")
print("*" * 50)
2.7保存名⽚数据的结构
程序就是⽤来处理数据的,⽽变量就是⽤来存储数据的
使⽤ 字典 记录 每⼀张名⽚ 的详细信息使⽤ 列表 统⼀记录所有的 名⽚字典
定义名⽚列表变量
cards_tools ⽂件的顶部增加⼀个 列表变量
# 所有名⽚记录的列表
card_list = []
注意
所有名⽚相关操作,都需要使⽤这个列表,所以应该 定义在程序的顶部程序刚运⾏时,没有数据,所以是 空列表






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2