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

第一个综合应用-名片管理系统

  • 1框架搭建
  • 2完善功能

综合应用,名片管理系统
欢迎界面,不同选项,1.新建名片,2.显示全部,3 查询名片(查到之后可以修改名片信息),0 退出系统
在这里插入图片描述
程序开发流程:

  1. 框架搭建
  2. 分步骤完成功能
  3. 程序文件名运行

1框架搭建

开发一个功能复杂的系统,先搭建一个框架能够简单运行,再一步一步完善功能。

1.1 准备文件:一个系统中有多个文件:
1.cards_main.py:程序的入口,循环执行提示代码,用户输入,简单判断操作。
2.cards_tools.py:所有功能函数

1.2 提示用户输入选项的功能:

acrion_str=input("请选择希望执行的操作:")
print("您选择的操作是:【%d】"%acrion_str)if acrion_str in [1,2,3]:pass#不现在编写代码用pass占位,能够保证程序代码结构正确#在运行的时候pass不会执行任何操作
#0退出系统
elif acrion_str==0:pass
#其他内容输入错误,需要提示用户
else:print("您输入的不正确,请重新输入1")

1.3 无限循环
保证用户能够重复选择操作,用户选择0时,使用break退出循环

1.4 if 嵌套
判断用户具体操作预留代码位置

1.5小结
1.字符串判断 成员运算符或者用or来拼接复杂的逻辑表达式.(不需要对用户输入的数据转换成整数,因为输入奇怪的符号会报错)

2.Pass占位符保证结构完整,随着功能完整后不断补足代码

3.无限循环,程序周而复始的不断执行

4.TODO注释,提示自己下一步需要做什么。单行注释在阅读时容易被忽略,可以用TODO注释使注释更加明显。多个人共同开发,可以在TODO(cyy)后面新增一个名字表示谁要做的事情,开发完成后,直接删除TODO注释即可,语法格式:

# TODO 注释内容

在这里插入图片描述
在pycharm中查看TODO注释的方法:
在这里插入图片描述

1.6 显示欢迎界面
连续使用多个Print函数输出多个信息,那么while循环内的代码就会不断的增加,一点都不简洁,不行。
工具文件cards_tools.py,定义提示信息输出函数,主函数调用信息输出函数即可。

1.7名片操作函数
准备名片操作函数,修改主文件中pass调用

2完善功能

2.1数据结构确定

程序用来处理数据,变量用来储存数据。
列表保存字典,该变量应该是一个全局变量。

2.2新增名片功能

pycharm重命名的技巧:避免混淆,name 添加后缀,一下子修改所有变量名技巧(避免一些修改另一些没有修改)
在这里插入图片描述
在这里插入图片描述

2.3 遍历列表输出每个名片信息

直接输出字典体验感十分不好,希望通过列表的形式输出:
直接输出:
在这里插入图片描述
列表输出:
在这里插入图片描述
(老师在长度为0时用一个if语但是并没有,用else)

2.4查询名片
查询到名片后,可以支持:1修改 ,2删除 ,0返回上级菜单(主菜单)等操作,没找到提示输出。

找到名片后,编写一个名片处理函数,传入对应的参数,

0不用判断,默认返回主菜单
2删除名片用remove()
1修改名片直接修改键对应的值就可以。不希望修改的需要再输入一次,十分不方便,希望不修改的直接回车输入就行。再编写一个程序实现这个功能。(Python2.7直接输入回车会有问题)

2.5新增文档注释,删除todo注释
整个函数开发完成,并且已经测试通过之后,给开发完成之后的函数添加文档注释:函数名-》小灯泡-》插入文档注释

2.6shebang符号(#!)
可以使用文件名直接执行

增加shebang符号(#!)python文件的第一行,再加上一个解释器完整路径。

如何查看完整路径:which python3

Chmod +x cards_main.py 增加文件的权限

本文的代码即相关注释可以在本人资料中心下载得到:https://download.csdn.net/download/sinat_40624829/11257716

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/445267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot1——spring相关入门

spring 随着我们开发,发现了一个问题: A---->B---->C---->D 在A中创建B的对象调用B的资源 在B中创建C的对象调用C的资源 在C中创建D的对象调用…

大数据学习(06)-- 云数据库

文章目录目录1.什么是云数据库?1.1 云计算和云数据库的关系1.2 云数据库的概念1.3 云数据库的特性1.4 云数据库应用场景1.5 云数据库和其他数据的关系2.云数据库产品有哪些?2.1 云数据库厂商概述2.2 亚马逊云数据库产品2.3 Google云数据库产品2.4 微软云…

Python(21)--变量进阶

变量的进阶使用1变量引用2可变、不可变数据类型3局部变量和全局变量4.Tips本系列博文来自学习《Python基础视频教程》笔记整理,视屏教程连接地址:http://yun.itheima.com/course/273.html在博文:https://blog.csdn.net/sinat_40624829/articl…

机器学习知识总结系列-机器学习中的数学-矩阵(1-3-2)

矩阵 SVD 矩阵的乘法状态转移矩阵状态转移矩阵特征值和特征向量 对称阵 正交阵 正定阵数据白化矩阵求导 向量对向量求导 标量对向量求导 标量对矩阵求导一.矩阵1.1 SVD奇异值分解(Singular Value Decomposition),假设A是一个mn阶矩阵&#xf…

面试中海量数据处理总结

教你如何迅速秒杀掉:99%的海量数据处理面试题 前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获&…

redis——旧版复制

Redis 的复制功能分为同步(sync)和命令传播(command propagate)两个操作: 同步操作用于将从服务器的数据库状态更新至主服务器当前所处的数据库状态。命令传播操作用于在主服务器的数据库状态被修改, 导致…

Linux(3)-网-ifconfig,ping,ssh

终端命令网-ping,ssh1. ifconfig -a2. ping3. ssh3.1安装3.2 连接3.3 配置登入别名防火墙端口号,todo1. ifconfig -a 查看IP地址, 还可以用于配置网口。 ifconfig -a 2. ping ping命令: 检测到IP地址的连接是否正常。命令开始后由本机发送数据包a&…

redis——相关问题汇总

什么是redis? Redis 本质上是一个 Key-Value 类型的内存数据库, 整个数据库加载在内存当中进行操作, 定期通过异步操作把数据库数据 flush 到硬盘上进行保存。 因为是纯内存操作, Redis 的性能非常出色, 每秒可以处理…

一文搞定面试中的二叉树问题

一文搞定面试中的二叉树问题 版权所有,转载请注明出处,谢谢! http://blog.csdn.net/walkinginthewind/article/details/7518888 树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点…

无数踩坑系列(1)--Brightness Controller

Brightness Controller1.尝试找回系统自带亮度调节条1.1 配置grub文件,无效1.2 使用命令调节屏幕亮度,无效2.安装应用程序Brightness Controller2.1许多博文都写出了如下方案,无效:2.2 github 手动安装https://github.com/LordAmi…

springboot2——MyBatis入门

原生缺陷: 数据库dao层操作缺陷: ①jdbc的增删改查代码的冗余过大,查询的时候需要遍历。 ②Sql语句和数据库相关参数和代码的耦合性过高。 解决:使用Mybatis 业务层缺陷: ①业务层和数据…

Linux(4)-资源-du,top,free,gnome

Linux终端命令1.磁盘资源1.1 df -hl1.2 du1.3 统计文件数量2.缓存资源2.1 top2.2 free -m3.Gnome3.1系统监视器-gnome-system-monitor3.2 截屏--screenshot查看文件系统资源的一些命令1.磁盘资源 1.1 df -hl 查看分区磁盘使情况 硬盘空间不够时,跑程序会报错&…

redis——Java整合

redis官网 微软写的windows下的redis 我们下载第一个 额案后基本一路默认就行了 安装后&#xff0c;服务自动启动&#xff0c;以后也不用自动启动。 出现这个表示我们连接上了。 redis命令参考链接 Spring整合Redis 引入依赖 - spring-boot-starter-data-redis <depend…

一文理解KMP算法

一文理解KMP算法 作者&#xff1a;July 时间&#xff1a;最初写于2011年12月&#xff0c;2014年7月21日晚10点 全部删除重写成此文&#xff0c;随后的半个多月不断反复改进。后收录于新书《编程之法&#xff1a;面试和算法心得》第4.4节中。 1. 引言 本KMP原文最初写于2年多前的…

小猫的java基础知识点汇总(下)

1、线程和进程有什么区别&#xff1f; 进程是操作系统资源分配的基本单位&#xff0c;而线程是任务调度和执行的基本单位 线程是进程的子集&#xff0c;一个进程可以有很多线程&#xff0c;每条线程并行执行不同的任务。 不同的进程使用不同的内存空间&#xff0c;而所有的线…

小猫的java基础知识点汇总(上)

1、一个".java"源文件中是否可以包括多个类&#xff08;不是内部类&#xff09;&#xff1f;有什么限制&#xff1f; 可以有多个类&#xff0c;但只能有一个public的类&#xff0c;并且public的类名必须与文件名相一致。 2、short s1 1; s1 s11; 有没有错&#xff…

后端 分页组件实例

/*** 分页相关信息*/ public class Page {//当前页码private int current1;//显示的上限private int limit10;//数据总数//用于计算页数private int rows;//路径private String path;public int getCurrent() {return current;}public void setCurrent(int current) {if (curre…

大数据学习(07)--MapReduce

文章目录目录1.MapReduce介绍1.1 什么是分布式并行编程&#xff1f;1.2 MapReduce模型介绍1.3 map和reduce函数2.MapReduce体系架构3.MapReduce工作流程3.1 概述3.2 MapReduce各个阶段介绍3.3 shuffle过程介绍3.3.1 shuffle过程简介3.3.2 map中的shuffle过程3.3.3 reduce中的sh…

Pytorch(4)-模型保存-载入-eval()

模型保存与提取1. 整个模型 保存-载入2. 仅模型参数 保存-载入3. GPU/CPU模型保存与导入4. net.eval()--固定模型随机项神经网络模型在线训练完之后需要保存下来&#xff0c;以便下次使用时可以直接导入已经训练好的模型。pytorch 提供两种方式保存模型:方式1&#xff1a;保存整…

大数据学习(08)--Hadoop中的数据仓库Hive

文章目录目录1.什么是数据仓库&#xff1f;1.1数据仓库概念1.2传统数据仓库面临的挑战1.3 Hive介绍1.4 Hive与传统数据库的对比1.5 Hive在企业中的部署与应用2.Hive系统架构3.Hive工作原理3.1 SQL转换为MapReduce作业的基本原理3.2 Hive中SQL查询转换MapReduce作业的过程4.Hive…