如何用Python做好友管理系统

article/2025/8/22 0:36:48

--------------------------------------------------------总代码在最下面-----------------------------------------------------------

(1)好友管理系统中不仅需要保存好友名称,还需要保存分组以及分组中的好友,因此,我们需要明确以什么结构保存数据。根据功能的描述,我们可以将数据以['王五', '张三', '赵柳', {'家人': ['李四','刘备']},{'同事': ['李龙','张飞']}]结构保存。

(2)功能展示。功能展示用于向用户展示该程序中所包含的功能,以及接收用户输入的功能选项,实现用户人机交互的入口。

(3)添加好友。该功能逻辑相对简单,只需要将用户输入的好友名称添加到好友列表中即可。

(4)获取所有好友。该功能用于获取好友列表中的所有数据,包括分组中的数据,便于后期对好友列表中的数据操作。

(5)获取所有分组及其分组好友。该功能用于获取好友列表中分组的名称和分组的好友,不包括未分组的好友。

(6)获取分组名称。该功能仅仅用于获取所有的分组名称,用于后期判断用户输入的分组名是否合法。

(7)删除好友。此功能分为两种情况进行判断,一是:删除的好友未在分组内,二是:删除的好友在分组内。如果删除的好友未在分组内,那么直接在好友列表中删除;如果删除的好友在分组内,那么需要先获取所有分组和分组内的好友,根据用户输入的好友名称在对应的分组内进行删除。

(8)备注好友。备注好友功能与删除好友逻辑类似,需要分为两种情况修改好友的备注名称,若修改备注的好友未在分组内,则直接获取好友名称并对其重新赋值;若修改备注的好友在分组内,则需要找到该好友对应的分组并进行修改。

(9)展示好友。展示好友功能分为展示所有好友和展示指定分组的好友,展示所有好友,直接调用已经定义好的获取所有好友方法即可,展示指定分组的好友,需要根据用户输入的分组名进行展示分组内的好友名称。

(10)好友分组。好友分组功能是将好友划分为不同的组,在使用好友分组功能时,会询问用户是否创建新的分组,如果用户选择创建新的分组,那么由用户输入新的分组名并创建,新的分组会以{'家人': ['李四','刘备']}结构添加到好友列表中;如果用户选择使用已存在的分组,那么需要由用户输入具体的分组名和具体的好友名,在将好友名添加到分组前需要分别对分组名和好友名进行正确性校验,只有当分组名和好友名均存在时,才可以将好友名移动到指定的分组中。

(11)所有功能完成后,需要将定义的类实例化并调用入口函数

 (初始化界面)

期望功能实现:

['王五', '张三', '赵柳', {'家人': ['李四','刘备']},{'同事': ['李龙','张飞']}]

(1)添加好友

*因为前面的功能都会用到好友分组所有先行介绍好友分组

 (5)好友分组 

 其中有三种方式,第一种为创建新的分组,创建分组时会让您输入分组的名字与要放入分组的好友.

用一个字典来接收创建的分组与好友

并且将字典复制添加到好友总列表中

并且利用split()可以实现多个好友的输入

不想添加好友,形成只有键没有值的字典,只需要直接回车

代码实现

第二种,即实现将未分组的好友放入分组中.

思考要将好友放到分组中,我们必须要取到字典的值.怎么实现呢?

****************************重要理解,能理解下列就可以基本理解分组的含义******************************

 首先利用for 循环遍历总列表,因为未分组的好友存放类型都是字符串,所以要进行一个if 语句的判断

利用type()判断 i 是否为字典,其次利用keys()与values()获取对应的分组名字与原本存在对应分组中的好友.接而判断移动的好友名称是否在列表内,要移动到的分组名称是否为 i 字典的键(即判断分组名一不一样),最后将字典的值进行遍历(因为此次遍历的 j 类型为列表)这样就可以获取到字典的值了,这下可以对里面进行删除,添加等操作

我们已经可以获取到里面的值,接下来直接remove()将要移动的那位好友移除,再添加到字典值对应的列表中即可

代码实现:

 第三种 实现将一个分组中的好友移动到另一个分组.思路:将分组中的好友放到总列表中,让他成为未分组的好友,之后再执行一次第二种的功能即可.也会用到上面说过的重要理解

定义为一个移出的函数(为了避免for 循环的重复)下面再调用,将要移动的好友从字典值的列表中删除,再添加到总列表中,就实现了把分组好友变为未分组好友

再调用一次第二种方法:

代码实现: (2)删除好友

 第一种,删除没有分组的好友,直接对总列表使用remove(好友名称)即可

第二种,删除分组中的好友,直接利用上述的重要理解,获取到要删除好友对应字典的列表值即可

要先获取所有分组和分组内的好友.

代码实现: 

 (3)备注好友因为刚学没多久,备注:我直接理解为将原本的名字删除再添加备注名.实现代码基本与删除好友相同

 

代码实现:

(4) 展示好友 展示好友也分为三种,展示所有好友 分组好友 以及获取所有分组名

展示所有好友直接打印好友总列表即可

展示分组好友,判断分组名,相同直接打印就可以了

获取所有分组名,这个需要我们创建一个新列表来接收所有字典的键(即分组名)

通过第二层遍历获取分组名,再添加到新列表

 代码实现:

实例化及其入口;

 

class Friend:def __init__(self):self.list = []def welcome(self):print('**欢迎使用好友管理系统**')print('1.添加好友\n''2.删除好友\n''3.备注好友\n''4.展示好友\n''5.好友分组\n''6.退出')while True:option = input("请选择功能:\n")# 添加好友if option == '1':self.add_friend()# 删除好友elif option == '2':self.del_friend()# 备注好友elif option == '3':self.modify_friend()# 展示好友elif option == '4':self.show_friend()# 分组好友elif option == '5':self.group_friend()elif option == '6':print('已停止好友管理系统')breakdef add_friend(self):name = input('请输入添加好友的姓名:')self.list.insert(0, name)    #为保持美观而使用insert()方法使得添加的好友处于前面的部分Sprint('添加成功')def del_friend(self):rname = input('请输入要删除的好友名称:')if rname in self.list:self.list.remove(rname)print('删除成功')else:for i in self.list:if type(i) == dict:print(i)l = i.values()for j in l:if rname in j:j.remove(rname)print('删除成功')def modify_friend(self):oldname = input('请输入要修改的好友名称:')newname = input(('请输入修改后的好友姓名:'))if oldname in self.list:self.list.remove(oldname)self.list.append(newname)print('修改成功')else:for i in self.list:if type(i) == dict:l = i.values()for j in l:if oldname in j:j.remove(oldname)j.append(newname)print('修改成功!')def show_friend(self):choice = int(input('展示所有好友请输入7,展示分组好友请输入8,获取所有分组名称请输入9.请输入:'))if choice == 7:print(self.list)elif choice == 8:grouping_name = input('请输入要展示的分组名称:')for i in self.list:if type(i) == dict:keyname = i.keys()print(i)elif choice == 9:list5 = []for i in self.list:if type(i) == dict:keyname = i.keys()for j in keyname:list5.append(j)print(f'分组名称有{list5}')def group_friend(self):selection = int(input('选择创建新分组请输入10\n选择使用已存在分组请选择11\n如果选择在两个分组进行操作请输入12.:'))if selection == 10:new_grouping_name1 = input('请输入新好友分组的名称:')new_grouping_name = {}friend_name = input('请输入要添加的好友名称:').split()new_grouping_name[new_grouping_name1] = friend_nameself.list.append(new_grouping_name.copy())print('添加成功!')elif selection == 11:def gai():movename1 = input('请输入要移动好友的名称:')grouping_name2 = input('请输入移动好友移动至的分组:')for i in self.list:if type(i) == dict:keyname = i.keys()valuename = i.values()if movename1 in self.list and grouping_name2 in keyname:self.list.remove(movename1)l = i.values()for j in l:j.append(movename1)breakprint('添加成功')gai()elif selection == 12:def yi_chu():for i in self.list:if type(i) == dict:keyname = i.keys()valuename = i.values()for j in valuename:if movename1 in j:j.remove(movename1)self.list.append(movename1)movename1 = input('请输入要移动好友的名称:')grouping_name2 = input('请输入移动好友移动至的分组:')yi_chu()for i in self.list:if type(i) == dict:keyname = i.keys()valuename = i.values()if movename1 in self.list and grouping_name2 in keyname:self.list.remove(movename1)l = i.values()for j in l:j.append(movename1)breakprint('添加成功')else:print('好友或好友分组不存在')if __name__ == "__main__":friend = Friend()friend.welcome()

 

 

 

 


http://chatgpt.dhexx.cn/article/BT9qhutZ.shtml

相关文章

怎么用python做网站?

python做网站方法步骤: 1、导入django包 可直接在pycharm下载,或者pip/easy_install Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。它最初是被开发来用于管理劳伦…

用python做一个简单GUI小软件

用python做一个简单软件 前言 这是一个课设,用python做一个扫描王软件 我主要做的GUI部分,记录分享一下。也是第一次用python做小软件,python的方便果然是名不虚传 遇到问题 1.python版本 下载了python3.7的编译器 由于最终软件要在wi…

手把手教你使用Python做数据分析

一、数据分析是什么 数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解并消化,以求最大化地开发数据的功能,发挥数据的作用,使得数据的价值最大化 二、数据分析是做什么的 数据分析是为了提取…

你究竟能用Python做什么?

中英文模式阅读 中文模式阅读 英文模式阅读 What exactly can you do with Python? Here are Pythons 3 main applications. 你究竟能用Python做什么?这是Python的3个主要应用。 If youre thinking of learning Python --- or if you recently started learnin…

用Python做图像处理

用Python做图像处理 最近在做一件比较 evil 的事情——验证码识别,以此来学习一些新的技能。因为我是初学,对图像处理方面就不太了解了,欲要利吾事,必先利吾器,既然只是做一下实验,那用 Python 来作原型开发…

python都能做什么

前言 一、python: Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序…

你都用 Python 来做什么?

你们都用python做些什么呢? 在开发中 python 这一个语言就像是小叮当,而 python 的第三方库则是“百宝箱”,你只要想着对某一个方向进行开发,那么这个“百宝箱”就会给你想要的东西。 由于我是在开发多年后接触到的 python&#…

怎样利用python做一个软件,python可以自己做软件吗

python能做什么软件? 主要可以做小程序,爬虫程序,用于系统编程等等还是很广泛的。Python 的应用领域分为下面几类。下文将介绍一些Python 具体能帮我们做的事情。 但我们不会对各个工具进行深入探讨,如果你对这些话题感兴趣&…

python可以做什么工作-python都能干什么用

一、Python可以做什么? 1、数据库:Python在数据库方面很优秀,可以和多种数据库进行连接,进行数据处理,从商业型的数据库到开放源码的数据库都提供支持。例如:Oracle, My SQL Server等等。有多种接口可以与…

学了python能干啥举例-Python主要用来做什么?

Python主要用来做什么?Python可以做web应用开发、网络爬虫、AI人工智能与机器学习、处理数据用来分析、数据科学:包括机器学习、数据分析和数据可视化、脚本等方面开发。 Python用来开发的有: 1、做Web应用开发 在国内豆瓣一开始就使用Pyth…

python怎么算列表的平方_总算明了python如何求平方

总算明了python如何求平方 日期:2019-08-25 12:22:17 浏览:341 核心提示:打开电脑上的计算器一看,居然没法求平方,是不是就没办法了呢?用python就可以啦,那么python如何求平方呢?一起来了解下吧: python如何求平方 1.计算乘方 pow(4,3) #结果64 2.计算平方 import…

Python 计算平方根

Python 计算平方根 文章目录 Python 计算平方根平方根封装为函数相关博客 平方根 平方根,又叫二次方根,表示为〔√ ̄〕,一个正数有两个实平方根,它们互为相反数,负数没有平方根,0的平方根是0 …

python中平方_python里平方

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我正在写一个函数,它将返回一个平方数列表,但如果该函数使用参数(appl…

python平方和计算技巧,python平方和计算技巧 Python算法练习题:四平方和

全栈记事交流群内一个同学的问题,正好收集一下解决方案; 四平方和的定理又称拉格朗日定理:每个正整数都可以表示至多4个正整数的平方和。如果把0包括进去,就可以表示为4个数的平方和。 比如: 50^20^21^22^2 71^21^21^2…

python中平方根_如何在Python中找到平方根

python中平方根 Hello everyone, in this tutorial, I’ll show 3 ways to find square root in Python. 大家好,在本教程中,我将展示3种在Python中找到平方根的方法。 Let’s see how to do it. 让我们来看看如何做。 1. Using Exponent 1.使用指数 number = int(input(&…

python编程a的x次方_python平方-Python,平方

本教程分享:《python平方》,Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开…

python里的平方_python中平方和

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 为什么python给出了“错误”的答案? x= 16 sqrt= x**(.5)returns 4 sqrt= x**(12)returns 1... 方法一:使用内置模块>>> import math >>> …

python平方数_python数字平方

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 还是要强调一下python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念 。 只有1,hello这一类对象…

python中平方_python中平方

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 为什么python给出了“错误”的答案? x 16 sqrt x**(.5)returns 4 sqrt x**(12)returns 1... …

python开平方根_python里开平方

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 所以忍不住分享一下给大家。 点这里https:www.cbedai.netialexanderi可以跳转到教程。 1,开平方python数字sqrt()函数返回x的平方根(x > 0)。 语法以下是sq…