文章目录

    • 写在开头的话
  • 综合应用 —— 名片管理系统
    • 00.目标
    • 01. 系统需求
    • 02.步骤
    • 03.框架搭建
      • 3.1 文件准备
      • 3.2 编写菜单帮助函数
      • 3.3 编写主运行循环
    • 04. 保存名片数据的结构
    • 05. 新建名片
      • 5.1 编写思路
      • 5.2 函数功能编写
    • 06. 删除名片
      • 6.1 思路分析
      • 6.2 函数功能编写
    • 07.修改名片
      • 7.1 编写思路
      • 7.2 函数功能编写
    • 08.查询名片
      • 8.1 编写思路
      • 8.2 函数功能编写
    • 09. 显示所有名片
      • 9.1 编写思路
      • 9.2 函数功能编写
    • 10. 编写主函数
      • 10.1 编写思路
      • 10.2 主程序编写
    • 11. 最终程序
      • 11.1 程序概述
      • 11.2 程序内容
      • 10.3 程序运行
    • 12. LINUX上的Shebang符号(#!)
      • 12.1 使用Shebang的步骤
    • 写在最后的话:

这里是一段防爬虫文本,请读者忽略。
本文原创首发于CSDN,作者IDYS
博客首页:https://blog.csdn.net/weixin_41633902/
本文链接:https://blog.csdn.net/weixin_41633902/article/details/107355242
未经授权,禁止转载!恶意转载,后果自负!尊重原创,远离剽窃!

写在开头的话

  • 请记住:实践是掌握知识的最快方法
  • 如果你只是怀着看看的态度去快速浏览文章,而不去认认真真的把文章里面讲的任何一个知识点去实践一遍,那么你永远也掌握不了它
  • 生命不息,折腾不止!

综合应用 —— 名片管理系统

00.目标

综合应用已经学习过的知识点

  • 变量
  • 流程控制
  • 函数
  • 模块

开发名片管理系统


01. 系统需求

  1. 程序启动,显示名片管理系统欢迎界面,并显示功能菜单
 print("**********************************")print("***********名片管理系统开始*********")print("1.添加名片")print("2.删除名片")print("3.修改名片")print("4.查询名片")print("5.显示所有名片")print("6.查看帮助菜单")print("0.退出系统")print("**********************************")
  1. 用户用数字选择不同的功能

  2. 根据功能选择,执行不同的功能

  3. 用户名片需要记录用户的 姓名、职业、电话

  4. 如果查询到指定的名片、用户可以选择修改或者删除名片

  5. 对用户的输入,需要做到智能化,防止用户输入空值或者用户的非法输入。比如:电话号码输入了其他除了数字以外的其他字符时需要提示输入,并且该输入无效

  6. 将所有的功能函数化


02.步骤

  1. 框架搭建
  2. 新建名片
  3. 显示所有名片
  4. 查询名片
  5. 删除名片
  6. 修改名片
  7. 查询成功后修改、删除名片
  8. 查看帮助菜单
  9. 退出名片管理系统
  10. 让Python程序能够直接运行

03.框架搭建

目标

  • 搭建名片管理系统框架结构

    1.准备文件,确定文件名,保证能够在需要的位置编写代码

    2.编写主运行循环,实现基本的用户输入和判断

3.1 文件准备

  1. 新建card_main.py保存主程序功能代码
  • 程序的入口
  • 每一次启动名片管理系统都通过运行card_main这个文件启动
  1. 新建cards_modules.py保存所有名片功能函数
  • 将对名片的新增、查询、修改、删除、查看帮助菜单、显示所有名片等功能封装在不同的函数中

3.2 编写菜单帮助函数

  • 在card_modules中新建函数menu()
def menu():print("**********************************")print("***********名片管理系统开始*********")print("1.添加名片")print("2.删除名片")print("3.修改名片")print("4.查询名片")print("5.显示所有名片")print("6.查看帮助菜单")print("0.退出系统")print("**********************************")

3.3 编写主运行循环

  • 在card_modules中添加一个无限循环函数exec_main()
def exec_main(all_card):  #all_card 为列表,用来保存名片信息menu()   #首先打印菜单,提示用户输入while True:num = input("请输入您要执行的对应操作编号\t 输入 6 可以查看帮助菜单\n")  #如果用户想继续查看菜单可以键入6num = num.strip()  # 去除num前后的空格if num == '1':add_card(all_card)  # 添加名片elif num == '2':del_card(all_card)   # 删除名片elif num == '3':alter_card(all_card)  # 修改名片elif num == '4':select_card(all_card)  # 查询名片elif num == '5':show_card(all_card)  # 显示所有名片elif num == '6':menu()   # 显示菜单elif num == '0':  # 退出循环print("***********名片管理系统结束*********")breakelse:  # 如果输入的字符和以上的都不匹配,那么提示用户print("输入的编号不符合要求,请重新输入")
  • 如果在开发程序时,不希望立刻编写分支内部的代码,可以使用pass关键字,表示一个占位符,能够保证程序的代码结构正确!程序运行时,pass 关键字不会执行任何的操作
  • 用列表保存所有名片的信息

字符串判断

if action in ["1","2","3"]:
  • 等同于
if action == "1" or action == "2" or action == "3":
  1. 使用in针对列表判断,避免使用or拼接复杂的逻辑条件
  2. 没有使用int转换用户输入,可以避免一旦用户输入的不是数字,导致程序运行出错,当然了,也可以使用try、except组合来把错误抛出,避免异常退出程序

pass

  • pass就是一个空语句,不做任何事情,一般用作占位语句
  • 是为了保持程序结构的完整性

无限循环

  • 在开发软件时,如果不希望程序执行后立即退出
  • 可以在程序中增加一个无限循环
  • 由用户来决定退出程序的时机

TODO注释

  • 在#后面跟上TODO,用于标记需要去做的工作
# TODO(作者/邮件) 显示系统菜单

04. 保存名片数据的结构

程序就是用来处理数据的,而变量就是用来存储数据的

  • 使用字典记录每一张名片的详细信息
  • 使用列表统一记录所有的名片字典

定义名片列表变量

  • 在card_main文件的程序入口处增加一个列表变量
# 所有名片记录的列表
all_card = []

注意

  1. 所有名片相关操作,都需要使用这个列表,所以应该定义在程序的顶部
  2. 程序刚运行时没有数据,所以是空列表
  3. 如果return 后面没有任何的内容,表示会返回到调用函数的位置,并且不会返回任何的结果

05. 新建名片

  • 在card_modules中添加add_card()函数

5.1 编写思路

  1. 对姓名和职业的输入进行判断,首先保存用户对姓名和职业输入,然后使用strip()函数将字符行首行尾两端的空格去掉,如果用户输入为空,则提示用户为空,并且要求用户继续输入
  2. 对电话号码的输入进行上述操作,只不过这次要增加一个是否全部为数字的判断,如果输入里面含有非数字字符,那么提示用户,重新继续输入。直到符合条件为止
  3. 查看名片列表里面是否含有和用户同名的名片,如果没有。则添加信息。如果有则提示用户,输入信息重复。

5.2 函数功能编写

  • add_card()函数内容如下:
def add_card(all_card):while True:name = input("请输入姓名\n")name = name.strip()if len(name) == 0:print("您的输入为空,请重新输入")else:breakwhile True:working = input("请输入从事业务\n")working = working.strip()if len(working) == 0:print("您的输入为空,请重新输入")else:breakwhile True:phone_num = input("请输入手机号码\n")phone_num = phone_num.strip()if phone_num.isdigit():breakelse:print("您的输入有误,请重新输入")for i in all_card:if i["name"] == name:print("该名片已经存在不用添加了")returnelse:card = {"name": name, "working": working, "phone_num": phone_num}all_card.append(card)

06. 删除名片

  • 在card_modules中添加del_card()函数

6.1 思路分析

  1. 首先判断名片列表是否为空,如果名片列表为空,则直接返回,退出该函数
  2. 要求用户输入要删除名片对应的姓名
  3. 取出姓名首位空格,然后对姓名进行非空判断
  4. 查找名片列表中是否含有对应名字的名片,如果有直接删除,如果没有则提示提示用户

6.2 函数功能编写

  • del_card()函数内容如下
def del_card(all_card):if len(all_card) == 0:print("您的名片列表已经为空")returnwhile True:name = input("请输入您要删除名片对应的人物的姓名\n")name = name.strip()if len(name) == 0:print("您输入的名字为空,请重新输入")continueelse:breakfor card in all_card:if card["name"] == name:all_card.remove(card)returnelse:print("经过查询,列表中没有您所输入姓名对应的名片")return

07.修改名片

  • 在card_modules中添加alter_card()函数

7.1 编写思路

  1. 判断名片列表是否为空,为空不用判断,直接返回

  2. 接收用户所要删除名片对应的姓名,同时对姓名输入进行去空格,和非空判断。

  3. 查询名片列表是否含有对应姓名的名片,含有则询问用户是否修改职业和电话号码。没有则提示用户

  4. 对职业、电话号码修改的输入进行判断

7.2 函数功能编写

  • alter_card内容如下
def alter_card(all_card):count = Falseif len(all_card) == 0:print("您的名片菜单为空,不用修改信息")returnwhile True:name = input("请键入您要修改名片信息的姓名\n")name = name.strip()if len(name) == 0:print("您的输入为空,请重新输入")else:breakfor i in all_card:if i["name"] == name:a_num = all_card.index(i)count = Truewhile True:is_working = input("是否修改职业  Y / N")if is_working == 'y' or is_working == 'Y':while True:working = input("请输入职业")working = working.strip()if len(working) == 0:print("您的输入为空,请重新输入")else:breakall_card[a_num]["working"] = workingbreakelif is_working == 'N' or is_working == 'n':breakelse:print("您的输入有误,请重新输入")while True:is_phone_num = input("是否修改电话号码  Y / N")if is_phone_num == 'Y' or is_phone_num == 'y':while True:phone_num = input("请输入电话号码")phone_num = phone_num.strip()if len(phone_num) == 0:print("您的输入为空,请重新输入")elif 1 - phone_num.isdigit():print("你的输入包含其他字符,请重新输入")else:breakall_card[a_num]["phone_num"] = phone_numbreakelif is_phone_num == 'n' or is_phone_num == 'N':breakelse:print("您的输入有误,请重新输入")if 1 - count:print("您输入的姓名未能查找到")

08.查询名片

  • 在card_modules中添加select_card()函数

8.1 编写思路

  1. 判断名片列表是否为空,为空则提示用户,然后返回
  2. 提示用户输入姓名查找名片,对姓名进行去空格,然后非空判断
  3. 查找命令列表是否有对应名片的信息,如果有则询问用户是否对该名片进行删除和修改操作,如果没有则返回

8.2 函数功能编写

  • select_card()函数内容
def select_card(all_card):is_find = Falseif len(all_card) == 0:print("名片为空,不用查询")returnwhile True:name = input("请输入您要查找的人物的姓名\n")name = name.strip()if len(name) == 0:print("您输入的信息为空,请重新输入")continueelse:breakfor card in all_card:if card["name"] == name:is_find = Truefor key in card:if key == "name":print("名字  %s" % card[key])elif key == "working":print("工作  %s" % card[key])elif key == "phone_num":print("手机号码  %s" % card[key])while True:my_choice_num = input("您现在可以选择对该名片执行的操作\n""1.删除该名片 2.修改该名片 3.退出")my_choice_num = my_choice_num.strip()if my_choice_num == '1':all_card.remove(card)elif my_choice_num == '2':alter_num = all_card.index(card)while True:working = input("请输入职业")working = working.strip()if len(working) == 0:print("您的输入为空,请重新输入")else:breakwhile True:phone_num = input("请输入电话号码")phone_num = phone_num.strip()if len(phone_num) == 0:print("您的输入为空,请重新输入")elif not phone_num.isdigit():print("您的输入必须只含有数字,输入其他字符无效")else:breakall_card[alter_num]["working"] = workingall_card[alter_num]["phone_num"] = phone_numelif my_choice_num == '3':breakelse:print("您的输入有误,请重新输入")else:continueif 1 - is_find:print("未能查找到该名片对应的姓名")

09. 显示所有名片

  • 在card_modules中添加show_card()函数

9.1 编写思路

  1. 对于名片列表进行非空判断

  2. 对名片列表和列表里面的字典进行循环遍历

9.2 函数功能编写

  • show_card()函数内容
def show_card(all_card):if len(all_card) == 0:print("名片为空")returnfor card in all_card:for k in card:if k == "name":print("名字  %s" % card[k])elif k == "working":print("工作  %s" % card[k])elif k == "phone_num":print("手机号码  %s" % card[k])else:print()

10. 编写主函数

  • 在card_main中编写主函数

10.1 编写思路

  1. 导入card_modules里面所有的函数
  2. 确定程序入口
  3. 程序入口处定义空列表
  4. 将空列表对函数进行传参

10.2 主程序编写

  • 主程序内容
from cardManage.card_modules import *if __name__ == '__main__':all_card = []exec_main(all_card)

11. 最终程序

11.1 程序概述

  • 程序分为两个文件card_main和card_modules
  • card_main为主模块
  • card_modules为程序功能模块

11.2 程序内容

  • card_main文件内容
from cardManage.card_modules import *if __name__ == '__main__':all_card = []exec_main(all_card)
  • card_modules内容
def exec_main(all_card):  # all_card 为列表,用来保存名片信息menu()  # 首先打印菜单,提示用户输入while True:num = input("请输入您要执行的对应操作编号\t 输入 6 可以查看帮助菜单\n")  # 如果用户想继续查看菜单可以键入 6num = num.strip()  # 去除num前后的空格if num == '1':add_card(all_card)elif num == '2':del_card(all_card)elif num == '3':alter_card(all_card)elif num == '4':select_card(all_card)elif num == '5':show_card(all_card)elif num == '6':menu()elif num == '0':print("***********名片管理系统结束*********")breakelse:print("输入的编号不符合要求,请重新输入")def menu():print("**********************************")print("***********名片管理系统开始*********")print("1.添加名片")print("2.删除名片")print("3.修改名片")print("4.查询名片")print("5.显示所有名片")print("6.查看帮助菜单")print("0.退出系统")print("**********************************")def add_card(all_card):while True:name = input("请输入姓名\n")name = name.strip()if len(name) == 0:print("您的输入为空,请重新输入")else:breakwhile True:working = input("请输入从事业务\n")working = working.strip()if len(working) == 0:print("您的输入为空,请重新输入")else:breakwhile True:phone_num = input("请输入手机号码\n")phone_num = phone_num.strip()if phone_num.isdigit():breakelse:print("您的输入有误,请重新输入")for i in all_card:if i["name"] == name:print("该名片已经存在不用添加了")returnelse:card = {"name": name, "working": working, "phone_num": phone_num}all_card.append(card)def show_card(all_card):if len(all_card) == 0:print("名片为空")returnfor card in all_card:for k in card:if k == "name":print("名字  %s" % card[k])elif k == "working":print("工作  %s" % card[k])elif k == "phone_num":print("手机号码  %s" % card[k])else:print()def del_card(all_card):if len(all_card) == 0:print("您的名片列表已经为空")returnwhile True:name = input("请输入您要删除名片对应的人物的姓名\n")name = name.strip()if len(name) == 0:print("您输入的名字为空,请重新输入")continueelse:breakfor card in all_card:if card["name"] == name:all_card.remove(card)returnelse:print("经过查询,列表中没有您所输入姓名对应的名片")returndef alter_card(all_card):count = Falseif len(all_card) == 0:print("您的名片菜单为空,不用修改信息")returnwhile True:name = input("请键入您要修改名片信息的姓名\n")name = name.strip()if len(name) == 0:print("您的输入为空,请重新输入")else:breakfor i in all_card:if i["name"] == name:a_num = all_card.index(i)count = Truewhile True:is_working = input("是否修改职业  Y / N")if is_working == 'y' or is_working == 'Y':while True:working = input("请输入职业")working = working.strip()if len(working) == 0:print("您的输入为空,请重新输入")else:breakall_card[a_num]["working"] = workingbreakelif is_working == 'N' or is_working == 'n':breakelse:print("您的输入有误,请重新输入")while True:is_phone_num = input("是否修改电话号码  Y / N")if is_phone_num == 'Y' or is_phone_num == 'y':while True:phone_num = input("请输入电话号码")phone_num = phone_num.strip()if len(phone_num) == 0:print("您的输入为空,请重新输入")elif 1 - phone_num.isdigit():print("你的输入包含其他字符,请重新输入")else:breakall_card[a_num]["phone_num"] = phone_numbreakelif is_phone_num == 'n' or is_phone_num == 'N':breakelse:print("您的输入有误,请重新输入")if 1 - count:print("您输入的姓名未能查找到")def select_card(all_card):is_find = Falseif len(all_card) == 0:print("名片为空,不用查询")returnwhile True:name = input("请输入您要查找的人物的姓名\n")name = name.strip()if len(name) == 0:print("您输入的信息为空,请重新输入")continueelse:breakfor card in all_card:if card["name"] == name:is_find = Truefor key in card:if key == "name":print("名字  %s" % card[key])elif key == "working":print("工作  %s" % card[key])elif key == "phone_num":print("手机号码  %s" % card[key])while True:my_choice_num = input("您现在可以选择对该名片执行的操作\n""1.删除该名片 2.修改该名片 3.退出")my_choice_num = my_choice_num.strip()if my_choice_num == '1':all_card.remove(card)elif my_choice_num == '2':alter_num = all_card.index(card)while True:working = input("请输入职业")working = working.strip()if len(working) == 0:print("您的输入为空,请重新输入")else:breakwhile True:phone_num = input("请输入电话号码")phone_num = phone_num.strip()if len(phone_num) == 0:print("您的输入为空,请重新输入")elif not phone_num.isdigit():print("您的输入必须只含有数字,输入其他字符无效")else:breakall_card[alter_num]["working"] = workingall_card[alter_num]["phone_num"] = phone_numelif my_choice_num == '3':breakelse:print("您的输入有误,请重新输入")else:continueif 1 - is_find:print("未能查找到该名片对应的姓名")

10.3 程序运行

  • card_main运行演示
**********************************
***********名片管理系统开始*********
1.添加名片
2.删除名片
3.修改名片
4.查询名片
5.显示所有名片
6.查看帮助菜单
0.退出系统
**********************************
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
1
请输入姓名
刘德华
请输入从事业务
演员
请输入手机号码
135234234345
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
1
请输入姓名
ellon
请输入从事业务
主持人
请输入手机号码
10145345
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
6
**********************************
***********名片管理系统开始*********
1.添加名片
2.删除名片
3.修改名片
4.查询名片
5.显示所有名片
6.查看帮助菜单
0.退出系统
**********************************
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
5
名字  刘德华
工作  演员
手机号码  135234234345名字  ellon
工作  主持人
手机号码  10145345请输入您要执行的对应操作编号     输入 6 可以查看帮助菜单
3
请键入您要修改名片信息的姓名
刘德华
是否修改职业  Y / NY
请输入职业歌手+演员
是否修改电话号码  Y / Nn
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
6
**********************************
***********名片管理系统开始*********
1.添加名片
2.删除名片
3.修改名片
4.查询名片
5.显示所有名片
6.查看帮助菜单
0.退出系统
**********************************
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
5
名字  刘德华
工作  歌手+演员
手机号码  135234234345名字  ellon
工作  主持人
手机号码  10145345请输入您要执行的对应操作编号     输入 6 可以查看帮助菜单
3
请键入您要修改名片信息的姓名
ellon
是否修改职业  Y / Ny
请输入职业国外主持人
是否修改电话号码  Y / Nn
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
6
**********************************
***********名片管理系统开始*********
1.添加名片
2.删除名片
3.修改名片
4.查询名片
5.显示所有名片
6.查看帮助菜单
0.退出系统
**********************************
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
5
名字  刘德华
工作  歌手+演员
手机号码  135234234345名字  ellon
工作  国外主持人
手机号码  10145345请输入您要执行的对应操作编号     输入 6 可以查看帮助菜单
4
请输入您要查找的人物的姓名
ellon
名字  ellon
工作  国外主持人
手机号码  10145345
您现在可以选择对该名片执行的操作
1.删除该名片 2.修改该名片 3.退出2
请输入职业主持人
请输入电话号码10134234
您现在可以选择对该名片执行的操作
1.删除该名片 2.修改该名片 3.退出3
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
5
名字  刘德华
工作  歌手+演员
手机号码  135234234345名字  ellon
工作  主持人
手机号码  10134234请输入您要执行的对应操作编号     输入 6 可以查看帮助菜单
2
请输入您要删除名片对应的人物的姓名
ellon
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
5
名字  刘德华
工作  歌手+演员
手机号码  135234234345请输入您要执行的对应操作编号     输入 6 可以查看帮助菜单
s
输入的编号不符合要求,请重新输入
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
6
**********************************
***********名片管理系统开始*********
1.添加名片
2.删除名片
3.修改名片
4.查询名片
5.显示所有名片
6.查看帮助菜单
0.退出系统
**********************************
请输入您要执行的对应操作编号   输入 6 可以查看帮助菜单
0
***********名片管理系统结束*********

12. LINUX上的Shebang符号(#!)

  • #!这个符号叫做Shebang或者Sha-bang
  • Shebang通常在Unix系统脚本中的第一行开头使用
  • 指明执行这个脚本文件解释程序

12.1 使用Shebang的步骤

  1. 使用which查询python3解释器所在路径
$ which python3
  1. 修改要运行的主python文件,在第一行增加以下内容
#! /usr/bin/python3
  1. 修改主python文件的文件权限,增加执行权限
$ chmod +x cards_main.py
  1. 在需要时执行程序即可
./cards_main.py

写在最后的话:

  • 无论每个知识点的难易程度如何,我都会尽力将它描绘得足够细致
  • 欢迎关注我的CSDN博客,IDYS’BLOG
  • 持续更新内容:
    linux基础 | 数据通信(路由交换,WLAN) | Python基础 | 云计算
  • 如果你有什么疑问,或者是难题。欢迎评论或者私信我。你若留言,我必回复!
  • 虽然我现在还很渺小,但我会做好每一篇内容。谢谢关注!

Python之综合应用 —— 名片管理系统相关推荐

  1. python代码案例详解-Python综合应用名片管理系统案例详解

    本文实例讲述了Python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...

  2. 名片管理系统python详解_Python综合应用名片管理系统案例详解

    本文实例讲述了Python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...

  3. Python 综合应用 —— 名片管理系统

    综合应用 -- 名片管理系统 目标 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ************ ...

  4. python名片管理器实验步骤_Python综合应用名片管理系统案例详解

    本文实例讲述了python综合应用名片管理系统.分享给大家供大家参考,具体如下: 综合应用已经学习过的知识点: 变量 流程控制 函数 模块 开发 名片管理系统 系统需求 程序启动,显示名片管理系统欢迎 ...

  5. python综合应用名片管理系统_综合应用——名片管理系统

    目的: 综合应用已经学过的 变量 流程控制 函数 模块 开发名片管理系统 系统需求 1.程序启动,显示名片管理系统欢迎界面,并显示功能菜单 ****************************** ...

  6. python入门之综合应用--名片管理系统

    目录 一.框架搭建 二.保存名片数据的结构 三.新增名片 四.显示所有名片 五.查询名片 六.修改和删除 七.Linux上的Shebang符号(#!) 系统需求 1.程序启动,显示名片管理系统欢迎界面 ...

  7. Python语言课程设计名片管理系统

    目标:搭建名片管理系统 框架结构 通过本项目的学习,学员可以了解项目开发的流程,掌握项目需求分析.设计与功能的代码实现.提高同学们独立分析需求与功能实现的能力. 项目知识点:变量.流程控制.函数.模块 ...

  8. 用Python实现简单的名片管理系统

    首先新建项目,包含主程序cards_main和工具库cards_tools: 如下: main函数主主要使用while和if实现4功能切换,切换的具体操作由cards_tools中的函数执行.不说了直 ...

  9. Python综合应用(1)--名片管理系统开发

    第一个综合应用-名片管理系统 1框架搭建 2完善功能 综合应用,名片管理系统 欢迎界面,不同选项,1.新建名片,2.显示全部,3 查询名片(查到之后可以修改名片信息),0 退出系统 程序开发流程: 框 ...

最新文章

  1. php mysql execute语法_PHP PDOStatement::execute讲解
  2. 如何编写一个webpack插件
  3. 斐波那契 (Standard IO)
  4. elasticsearch使用优化备忘
  5. jq之text() html()
  6. android 好看的输入法,好看更好用的搜狗手机输入法Android v7.5
  7. linux elf文件格式
  8. JSON——入门语法、对象、数组
  9. 与台风相伴,他们是前行的逆风者
  10. android水印添加水印,android 增加背景文字 水印效果(仿钉钉)
  11. 比特币与莱特币的区别
  12. Python机器学习工具箱
  13. c++ 一个h文件里面定义一个主类,然后定义多个子类
  14. 标签打印软件中标签间距以及边距如何设置
  15. 学习记录:python快递价格计算器练习7.12
  16. python获取今日头条搜索信息_python 爬取今日头条关键词搜索
  17. 三大语言关于负数除整数余数和商的总结
  18. 以太坊宠物商店 - 记录第一个Dapp
  19. 注解@Value取值取不到问题
  20. Visual studio2022还原VC6环境设置

热门文章

  1. Java 封装介绍之猫狗案例
  2. oracle查询时间交集,ORACLE SQL日期范围交集
  3. gcoord: 转换WGS84、GCJ02、BD09坐标,解决百度地图高德地图坐标系不统一的问题
  4. python画曲线代码_在Python里画曲线
  5. 树莓派Python3安装pip3教程
  6. vue实战-mockjs模拟数据
  7. vue 搜索文本让搜索的字体高亮显示
  8. 信号干扰效果(波形变形)
  9. 2022年10月中国数据库排行榜:达梦冲刺IPO热度不减,PolarDB立足创新夺锦才
  10. 来让产品经理告诉你,如何有逻辑的看懂《信条》?