Python编程--个人信息修改小程序
一个练习题,本人又做了一些功能的增加和完善。题目是:个人信息修改小程序。
IDE: Pycharm
OS: mac
功能需求:
1.输入管理员和密码,正确后登录系统,打印:
1. 打印个人信息
2. 修改个人信息
3. 修改密码
4. 添加个人信息
源码如下:
# 个人信息修改,查询小程序def print_personal_info(account_dic, username):"""print user info:param account_dic: all account's data:param username: username:return: None"""person_data = account_dic[username]info = '''------------------------Name: %sAge: %sJob: %sDept: %sPhone: %s-------------------------'''%(person_data[0],person_data[2],person_data[3],person_data[4],person_data[5],)print(info)def save_back_to_file(account_dic):"""把account_dic 转成字符串格式, 写回文件:param account_dic::return:"""with open('account.txt', mode='a', encoding='utf-8') as f:f.seek(0) # 回到文件头f.truncate() # 清空原文件for k in account_dic:row = ','.join(account_dic[k])f.write('%s\n'%row)f.flush()def change_personal_info(account_dic, username):"""change user info,思路如下1.把这个人的每个信息打印出来,让其选择改哪个字段,用户选择了的数字,正好是字段的索引,这样直接把字段找出来改掉就可以了2.改完后,还要把这个新数据重新写回到account.txt,由于改完后的新数据是dict类型,还需把dict转成字符串后,再写回硬盘:param account_dic:all account's data:param username:username:return:None"""person_data = account_dic[username]# print('person data:', person_data)column_names = ['Name', 'Password', 'Age', 'Job', 'Dept', 'Phone']print('1. ' + person_data[0])for index, k in enumerate(person_data):if index > 1: #0 is username and 1 is passwordprint('%s. %s:%s'%(index, column_names[index],k))choice = input('[select column id to change]:').strip()if choice.isdigit():choice = int(choice)if choice > 0 and choice < len(person_data): # index不能超出列表长度边界column_data = person_data[choice] # 拿到修改的数据print('current value>:', column_data)new_val = input('new value>:').strip()if new_val: # 不能为空person_data[choice] = new_valprint(person_data)save_back_to_file(account_dic) # 改完写回文件else:print('不能为空....')# 修改密码
def change_password(account_dic, username):"""修改个人密码:param account_dic: 用户信息字典:param username: 用户名:return: None"""new_password = input('new password>:').strip()if new_password: # 不能为空account_dic[username][1] = new_passwordsave_back_to_file(account_dic) # 改完写回文件else:print('不能为空....')def add_personal_info(account_dic, username):"""增加个人信息:param account_dic: 用户信息字典:return: None"""# 要添加的个人信息password = input('请输入密码:')age = input('请输入年龄:')position = input('请输入工作:')depart = input('请输入部门')phone = input('请输入电话:')info = '''------------------------Name: %s,Password: %s,Age: %s,Job: %s,Dept: %s,Phone: %s-------------------------'''%(username, password, age, position, depart, phone)print(info)account_dic[username] = [username, password, age, position, depart, phone]save_back_to_file(account_dic)# 便于查询操作,把文件变成字典
account_file = 'account.txt'
accounts = {}
# 把账户数据从文件里读出来,变成dict,这样后面就好查询了
with open(account_file, 'r+', encoding='utf-8') as f:raw_data = f.readlines() # 读取所有的行数据,列表形式for line in raw_data:line = line.strip()if not line.startswith('#'):items = line.split(',') # 行数据变成列表accounts[items[0]] = items # 用首个元素name当作accounts字典的键,行数据列表变成值# 主界面
menu = '''
1. 打印个人信息
2. 修改个人信息
3. 修改密码
4. 添加个人信息
'''
count = 0
while count < 3:username = input('Administrator:').strip()password = input('Password:').strip()if username in accounts:if password == accounts[username][1]: # 字典的值的第2项是密码print('welcome %s'.center(50, '-') %username)while True:print(menu)user_choice = input('>>>').strip()if user_choice.isdigit():user_choice = int(user_choice)if user_choice == 1:print_personal_info(accounts, username)elif user_choice == 2:change_personal_info(accounts, username)elif user_choice == 3:change_password(accounts, username)elif user_choice == 4:username = input('请输入姓名:')add_personal_info(accounts, username)elif user_choice == 'q':exit('bye.')else:print('Wrong username or password!')else:print('Username does not exist!')count += 1
else:print('too many attempts')
运行结果如下图:
Python编程--个人信息修改小程序相关推荐
- 使用python完成的一个烟花小程序-厉害了,我用Python写了一个自动回复拜年信息的小程序!...
大年三十到年初一,有没有也被拜年短信(大部分是群发)搞得很焦虑?不回复似乎显得很没有礼貌,一一回复又累心劳神.一位大神程序员今年就用python拯救了自己的新年假期.这里分享这位社区博主happycc ...
- python自动填写小程序表单_新年好!教大家用Python写一个自动回复拜年信息的小程序!...
原标题:新年好!教大家用Python写一个自动回复拜年信息的小程序! 过年期间,想必大家都收到很多拜年信息吧!有没有也被拜年短信(大部分是群发)搞得很焦虑?不回复似乎显得很没有礼貌,一一回复又累心劳神 ...
- 纯 python 开发批量读取照片 Exif 信息的小程序
自己动手写一些小程序解决工作中的问题,是学习 python 的高效途径.这中间会遇到一些不动手想不到的问题,一个一个地解决它们,你 python 开发水平就会突飞猛进! 本文总结一下实战 python ...
- 计算机毕业设计Python+uniapp校园服务微信小程序(小程序+源码+LW)
计算机毕业设计Python+uniapp校园服务微信小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...
- 学生学python编程---实现贪吃蛇小游戏+源码
学生学python编程---实现贪吃蛇小游戏+源码 前言 主要设计 1.蛇的表示 2.蛇怎么移动? 3.玩家控制小蛇移动功能的实现 4.如何判定游戏结束? 应用知识点 1.python知识点 1.1 ...
- 计算机毕业设计Python+uniapp水果外卖销售小程序(小程序+源码+LW)
计算机毕业设计Python+uniapp水果外卖销售小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...
- 计算机毕业设计Python+uniapp学生考勤系统小程序(小程序+源码+LW)
计算机毕业设计Python+uniapp学生考勤系统小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...
- 计算机毕业设计Python+uniapp学生课堂考勤小程序(小程序+源码+LW)
计算机毕业设计Python+uniapp学生课堂考勤小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...
- 计算机毕业设计Python+uniapp社区便利店销售小程序(小程序+源码+LW)
计算机毕业设计Python+uniapp社区便利店销售小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyt ...
最新文章
- python生成订单号或生成任意序列
- m-orchastration system
- java8 list切片_Java8新特性_创建 Stream、流筛选与切片
- My First Window构造过程,SendMessage同步,PostMessage异步
- Java后端带参跨域访问_java后端解决请求跨域
- Java基础知识——Java集合详解
- linux运算_CentOS「linux」学习笔记22:算术运算符、逻辑运算符、关系运算符
- 大学c语言编程模板,c语言编程模板
- php密码怎么用md5,如何使用PHP使用MD5加密此密码?
- drawforeground只有鼠标事件进入才刷新_为什么移动鼠标会让操作系统跑得更快?...
- STM32工作笔记0098---Windows下的Linux环境_Cygwin_MinGW_MSYS_MSYS2_之间的关系
- java spark yarn_《Spark官方文档》在YARN上运行Spark
- NLP是百度的核心技术之一
- 【netlimiter】的使用
- word为什么前面空白但是字上不去?
- 计算机跨考专业基础差复试,跨考计算机过来人教你备考:从初试到复试
- 听java技术讲座心得体会_听讲座心得体会范文3篇
- linux14.04设置DNS,Ubuntu 16.04修改配置静态IP和DNS
- 信息安全建设之基于开源搭建零信任网关-原理篇
- Docker入门的亿点点学习