好友管理系统--课后程序(Python程序开发案例教程-黑马程序员编著-第4章-课后作业)

news2024/11/17 15:45:29

实例3:好友管理系统

如今的社交软件层出不穷,虽然功能千变万化,但都具有好友管理系统的基本功能,包括添加好友、删除好友、备注好友、展示好友等。下面是一个简单的好友管理系统的功能菜单,如图1所示。

 

图1 好友管理系统的功能菜单

图1中的好友管理系统中有5个功能,每个功能都对应一个序号,用户可根据提示“请输入您的选项”选择序号执行相应的操作,包括:

  1. 添加好友:用户根据提示“请输入要添加的好友:”输入要添加好友的姓名,添加后会提示“好友添加成功”。
  2. 删除好友:用户根据提示“请输入删除好友姓名:”输入要删除好友的姓名,删除后提示“删除成功”。
  3. 备注好友:用户根据提示“请输入要修改的好友姓名:”和“请输入修改后的好友姓名:”分别输入修改前和修改后的好友姓名,修改后会提示“备注成功”。
  4. 展示好友:若用户还没有添加过好友,提示“好友列表为空”,否则返回每个好友的姓名。
  5. 退出:关闭好友管理系统。

本实例要求编写程序,模拟实现如上所述的好友管理系统。

实例目标

  1. 能熟练地增加、删除、修改、查看列表元素
  2. 掌握控制程序始终运行的方式

实例分析

本实例的好友管理系统的作用是存储好友姓名,并且该系统具有添加、删除、修改、查看等基本功能,因此这里可以将好友管理系统视为一个列表,系统中的各个选项对应着列表中的基本操作,它们的对应关系如下所示:

(1)添加好友:相当于往列表中添加元素的操作,可通过列表的append()方法实现;

(2)删除好友:相当于从列表中删除元素的操作,可通过列表的remove()方法实现;

(3)备注好友:相当于修改列表元素的操作,可通过重新对列表元素赋值的方式实现;

(4)展示好友:相当于遍历列表元素的操作,可通过for循环遍历列表元素实现;

(5)退出:相当于退出程序的操作,可通过break语句结束程序实现。

为保证程序能够始终运行(未选择退出选项),需要在程序中增加while True语句。本实例的具体实现思路如下所示:

(1)打印好友管理系统功能菜单;

(2)根据用户输入的序号执行相应的功能:若为1,执行添加好友的操作;若为2,执行删除好友的操作;若为3,执行备注好友的操作;若为4,执行展示好友的操作;若为5,执行程序退出的操作。

代码实现

本实例的具体代码如下所示:

friends = []

print("欢迎使用好友系统")

print("1:添加好友")

print("2:删除好友")

print("3:备注好友")

print("4:展示好友")

print("5:退出")

while True:

    num = int(input("请输入您的选项:"))

    if num == 1:

        add_friend = input("请输入要添加的好友:")

        friends.append(add_friend)

        print('好友添加成功')

    elif num == 2:

        del_friend = input("请输入删除好友姓名:")

        friends.remove(del_friend)

        print("删除成功")

    elif num == 3:

        before_friend = input("请输入要修改的好友姓名:")

        after_friend = input("请输入修改后的好友姓名:")

        friend_index = friends.index(before_friend)

        friends[friend_index] = after_friend

        print("备注成功")

    elif num == 4:

        if len(friends) == 0:

            print("好友列表为空")

        else:

            for i in friends:

                print(i)

    elif num == 5:

        break

以上代码首先定义了一个空的列表friends,然后使用print()函数打印好友管理系统的功能菜单,最后在死循环中不断地执行重复地操作:接收用户的输入,并根据不同的输入执行不同的操作。

代码测试

运行程序,在控制台输入“1”执行添加好友的功能,结果如下所示。

欢迎使用好友系统

1:添加好友

2:删除好友

3:备注好友

4:展示好友

5:退出

请输入您的选项:1

请输入要添加的好友:Tom

好友添加成功

请输入您的选项:1

请输入要添加的好友:Jerry

好友添加成功

在控制台中输入“2”执行删除好友的功能,结果如下所示。

请输入您的选项:2

请输入要删除的好友姓名:Jerry

删除成功

在控制台中输入“3”执行备注好友的功能,结果如下所示。

请输入您的选项:3

请输入要修改的好友姓名:Tom

请输入修改后的好友姓名:Jane

修改成功

在控制台中输入“4”执行展示好友的功能,结果如下所示。

请输入您的选项:4

Jane

在控制台中输入“5”之后退出程序。

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

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

相关文章

api接口详解大全

api接口详解大全?优秀的设计是产品变得卓越的原因设计API意味着提供有效的接口,可以帮助API使用者更好地了解、使用和集成,同时帮助人们有效地维护它每个产品都需要使用手册,API也不例外在API领域,可以将设计视为服务器和客户端之…

【SpringCloud】SpringCloud教程之Nacos实战(三集群配置)

目录前言一.Nacos集群逻辑图二.Nacos集群搭建1.搭建数据库,初始化数据库表结构2.下载Nacos3.配置Nacos3.启动Nacos4.配置启动nginx5.测试是否成功6.设置服务的nacos地址7.新增一个配置,查看数据看是否进行持久化了前言 在我前面两篇讲的都是单个nacos&a…

Activity的启动和结束

onCreate:创建活动。此时会把页面布局加载进内存,进入了初始状态。onStart:开启活动。此时会把活动页面显示在屏幕上,进入了就绪状态。onResume:恢复活动。此时活动页面进入活跃状态,能够与用户正常交互&am…

Vulnhub系列:FristLeaks

一、配置靶机环境以往的靶机,本人是在virtual box中,去配置,和vm上的kali进行联动,但是这个靶机需要DHCP,以往的方式可能不太行了,或者可以在virtual box中桥接成统一网卡。下面介绍下本人最有用的方法&…

2021牛客OI赛前集训营-提高组(第三场) T4扑克

2021牛客OI赛前集训营-提高组(第三场) 题目大意 小A和小B在玩扑克牌游戏,规则如下: 从一副52张牌(没有大小王)的扑克牌中随机发3张到每个玩家手上,每个玩家可以任意想象另外两张牌&#xff0…

Allegro如何知道单个操作命令的拼写

Allegro如何知道单个操作命令的拼写 在用Allegro做PCB设计的时候,时常需要给某些命令设置一些快捷键,但是有时候无法知道命令的拼写是什么,就无法定义到env文件里面去 如下图 如何知道上方图标的命令拼写,下面介绍两种方法 方法一 鼠标左键移动到图标的位置,就会出现命令…

【动态规划】背包问题(01背包,完全背包)

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…

JavaWeb学习-Tomcat

常用的Web服务器 ①IIS:Microsoft的Web服务器产品为Internet Information Services (IIS),IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。ⅡS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在…

二进制转换之命理学习

什么是十神 运用儒家学说: 克我者官也:古代没有民主思想,官不是为民服务的,官就是克的。 对男命来说克我的是儿女,女儿是正官,儿子是偏官(七杀)克的厉害,对父亲来说有了…

图解七大排序算法,面试超高频考点,java实现

前言 排序算法在面试中属于超高频的考点了,至少要学会如何手写各种排序算法,其中快速排序尤为重要 看完了本文以后,大家可以自己尝试着去手写一下这些排序算法啦,leetcode题号:75颜色分类 多努力点,活的…

体验用arduino来实现PLC编程器的功能

是不是想自己临时做个PLC的测试,但又不想卖西门子三菱的PLC,那就可以用这个,把arduino变成一个PLC的编程器。 文章目录一、下载与安装1、下载2、安装二、初次使用1、打开范例程序学习2、调试运行3、下载到arduino板中文章出处: ht…

科技成果赋智中小企业深度行 边界无限靖云甲ADR入选十大优秀案例

近日,国家工业信息安全发展研究中心、青岛市工业和信息化局、青岛市民营经济发展局、青岛市即墨区人民政府、青岛蓝谷管理局联合举办的科技成果赋智中小企业“深度行”活动(青岛站)成功举办,同步举行了赋智“深度行”活动&#xf…

最短路径Dijkstra算法的分析与具体实现(思路加代码)

❤️作者主页:微凉秋意 ✅作者简介:后端领域优质创作者🏆,CSDN内容合伙人🏆,阿里云专家博主🏆 ✨精品专栏:C面向对象 🔥系列专栏:数据结构与课程设计 文章目录…

Gson序列化Class对象报错解决办法

1. 背景 昨天在写RPC的基础Demo的时候,使用JSON作为序列化方式,然后在序列化对象的时候,报错了。 我复现一下该报错: public class GsonTest {public static void main(String[] args) {new Gson().toJson(String.class);}}具体…

C/C++每日一练(20230309)

目录 1. 罗马数字转整数 ★ 2. 最大数 ★★ 3. 有效数字 ★★★ 🌟 每日一练刷题专栏 C/C 每日一练 ​专栏 Python 每日一练 ​专栏 1. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C&…

达梦关系型数据库

达梦关系型数据库一、DM8 安装1. 安装包下载2. Docker 安装3. Linux 安装4. Windows 安装二、DM 管理工具三、命令行交互工具 DIsql四、DM8 SQL使用1. 创建模式2. 创建表3. 修改表4. 读写数据5. 查看库下所有的表名6. 查看表字段信息GitHub: link. 欢迎star国产自主研发的大型…

数据挖掘(2.2)--数据预处理

目录 二、数据描述 1.描述数据中心趋势 1.1平均值和截断均值 1.2加权平均值 1.3中位数(Median)和众数(Mode) 2.描述数据的分散程度 2.1箱线图 2.2方差和标准差 2.3正态分布 3.数据清洗 3.1数据缺失的处理 3.2数据清洗 二、数据描述 描述数…

自动化测试实战篇(9),jmeter常用断言方法,一文搞懂9种测试字段与JSON断言

Jmeter常用的断言主要有,JSON断言和响应断言这两种方式。 断言主要就是帮助帮助人工进行快速接口信息验证避免繁杂的重复的人工去验证数据 第一种响应断言Apply to:表示应用范围测试字段:针对响应数据进行不同的匹配响应文本响应代码响应信息…

【Go自学第一节】GoLang 数据类型

和Java类型,go拥有多种数据类型,可以把它分为四个大类基础类型、聚合类型、引用类型和接口类型 一、基本数据类型 基本数据类型又可以细分为:数字类型(整型、浮点型)、布尔类型、字符串类型 整型 Go 的整型分为有符号…

计算机网络的166个概念你知道几个 第十一部分

计算机网络数据链路层和物理层节点:一般指链路层协议中的设备。链路:一般把沿着通信路径连接相邻节点的通信信道称为链路。MAC 协议:媒体访问控制协议,它规定了帧在链路上传输的规则。奇偶校验位:一种差错检测方式&…