员工管理系统+字符编码+Python代码文件操作

1.员工管理系统

1.1  debug 代码调试

1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)
2.之后右键点击debug运行代码

1.2  员工管理系统

练习:
# 2.定义一个空列表 用于存放用户字典数据
user_data_list = []
# 1.代码运行起来之后 可以循环提示用户有哪些功能编号可以选择 # 2.查看指定用户数据(格式化输出美化一下)
# 3.修改用户的薪资的待遇(一通百通) 修改用户名 年龄
# 4.查看所有用户数据(for循环展示)
while True:
print("""
1.添加用户
2.查看用户
3.删除用户
4.退出系统
""")
choice = input('请输入您想要执行的功能编号>>>:')
# 判断用户输入的编号
if choice == '1':
# 3.先获取用户编号
user_id = input('请输入您的编号>>>:').strip()
# 4.应该先校验用户编号是否已存在
# 4.1.循环获取每一个用户字典
for user_data_dict in user_data_list: # {'user_id': '1', 'name': 'jason', 'age': '18'}
if user_data_dict['user_id'] == user_id:
print('用户编号已存在')
break # 结束for循环校验
else:
# 5.获取用户相关信息
name = input('请输入您的用户名>>>:').strip()
age = input('请输入您的年龄>>>:').strip()
salary = input('请输入您的薪资>>>:').strip()
# 6.构造一个用户字典
tmp_dict = {}
# 7.创建键值对
tmp_dict["user_id"] = user_id
tmp_dict["name"] = name
tmp_dict["age"] = age
tmp_dict["name"] = name
# 8.添加到用户列表中
user_data_list.append(tmp_dict)
# 9.提示用户添加成功
print('用户:%s添加成功' % name)
elif choice == '2':
print(user_data_list)
elif choice == '3':
print('删除用户功能')
elif choice == '4':
print('退出系统功能')
else:
print('很抱歉 暂时没有该功能选项')

2.字符编码

  字符编码只跟文件和字符串有关,与视频文件、图片文件等无关

   什么是字符编码?

    由于计算机内部只识别二进制,但是用户在使用计算机的时候却可以看到各式各样的语言字符

    字符编码:内部记录了人类字符与数字0和1之间相对应关系的数据

3.字符编码发展史

  1.一家独大

  计算机最初是由美国人发明的 美国人为了能够让计算机识别英文字符

  ASCII码:里面记录了英文字符与数字的对应关系

   用一个字节来是对应关系,所有的英文字符和符号加起来其实不超过127,之所以使用八位是为了后续发现新的语言

  必须记住的对应关系有以下两组:A-Z:65-90   a-z:97-122   0-9:48 - 57

  2.群雄割据

  中国人

  为了能够让计算机识别中文 我们需要发明另外一套编码表GBK码:记录了英文中文与数字的对应关系对于英文还是使用一个字节对应中文使用两个字节甚至更多字节。

  两个字节其实也不够表示出所有的中文遇到生僻字可能需要更多位来表示
  
  日本人
  为了能够让计算机识别日文 也需要发明一套编码表

  shift_JIS码:记录了日文英文与数字的对应关系

  韩国人

  为了能够让计算机识别韩文 也需要发明一套编码表Euc_kr码:记录了韩文英文与数字的对应关系
  3.天下一统

  为了能够实现不同国家之间的文本数据能够彼此无障碍交流需要对编码统一

  unicode(万国码)

  统一使用两个及以上字符记录字符与数字的对应关系

  utf8(万国码的优化版本)

  将英文还是用一个字节存储,将中文使用三个字节或更多字节存储

    PS:现在默认使用的编码是utf8

4.字符编码实操

  1.如何解决文件乱码的情况

  文件当初以什么编码编的 打开的时候就以什么编码解

  2.python解释器版本不同带来的编码差异

  python2.X内部使用的编码默认是ASCII

  # 文件头  coding:utf8

  在python2中定义字符串前面要加一个小us = u'你'

python3.X内部使用utf8,自定义文件模板内容
file >>> settings >>> Editor >>> file and code templates >>> python script

  3.编码与解码
  编码
  将人类能够读懂的字符安装指定的编码转换成数字
  解码
  将数字按照指定的编码转换成人类能够读懂的字符

     s = '每天不要想太多 学就完事了 干就完了 奥利给!!!'
编码
res = s.encode('utf8')
print(res, type(res)) # bytes 在python中直接将该类型看成二进制数据即可
解码
res1 = res.decode('utf8')
print(res1)

5.文件操作

1.什么是文件?

  文件其实是操作系统暴露给用户操作硬盘的快捷方式(接口)

2.代码如何操作文件 关键字open() 三步走:

  1.利用关键字open打开文件   2.利用其它方法操作文件   3.关闭文件

  文件路径有哪几种?

  1. 相对路径   2. 绝对路径

  路径中出现了字母与斜杠的组合产生了特殊含义如何取消 , 在路径字符串前面加一个r  ,  r'D:\py20\day08\a.txt'

open('a.txt')
open(r'D:\py20\day08\a.txt') res = open('a.txt', 'r', encoding='utf8')
print(res.read())
res.close() # 关闭文件释放资源

  open(文件路径,读写模式,字符编码) 文件路径与读写模式是必须的,字符编码是可选的(有些模式需要编码)

 

  with上下文管理(能够自动帮你close()

with open(r'a.txt','r',encoding='utf8') as f1:  # f1=open() f1.close()
print(f1.read())

6.文件读写模式

PS:补全语法结构 没有实际含义  pass

r 只读模式(只能看不能改)

    路径不存在:直接报错
with open(r'b.txt', 'r', encoding='utf8') as f:
pass
路径存在
with open(r'a.txt', 'r', encoding='utf8') as f:
print(f.read()) # 读取文件内所有的内容
f.write('123') # 写文件内容

w 只写模式(只能写不能看)

     路径不存在:路径不存在自动创建
with open(r'b.txt', 'w', encoding='utf8') as f:
pass
   路径存在:1.会先清空文件内容  2.再执行写入操作
   with open(r'a.txt', 'w', encoding='utf8') as f:
    f.read()
    f.write('hello world!\n')
    f.write('hello world!\n')
    f.write('hello world!\n')

a 只追加模式(追加内容)

  a:路径存在会将文件指针直接移动到文件末尾,在文件不存在时会创建空文档

 1 #3. 以追加内容,写功能,utf8编码模式打开当前路径下的a.txt文件
2 res = open('a.txt', mode='a', encoding='utf8')
3 # 输入hello内容,清除了以前的我要坚持学python!
4 res.write(' world\n')
5 res.write('python\n')
6 # 对文件操作完必须关掉,释放资源
7 res.close()
8
9 #结果,在a.txt文件中追加world和python字符
10 world
11 python

小练习(员工操作系统)

 1 print('''员工管理系统功能如下:
2 1.添加用户
3 2.查看用户
4 3.删除用户
5 4.退出系统\n''')
6
7 user_msg_list = []
8 while True:
9 # 1获取用户编号
10 choice = input('输入功能编号:').strip()
11 choice = int(choice)
12 # 2判断用户是选择那个功能
13 if choice == 1:
14 # 3获取用户输入的个人编号号
15 user_id = input('请输入你的个人编号:').strip()
16 # 判断是否输入的正确
17 for full_dict in user_msg_list:
18 if full_dict['user_id'] == user_id:
19 print('该用户编号%s:已存在'%user_id)
20 break
21 else:
22 pass
23 else:
24 # 4获取用户信息
25 user_name = input('请输入姓名:').strip()
26 user_age = input('请输入年龄:').strip()
27 user_salary = input('请输入薪资:').strip()
28 # 5.建立一个空字典
29 null_dic = {}
30 # 6.把用户输入的信息添加到空字典中
31 null_dic['user_id'] = user_id
32 null_dic['user_name'] = user_name
33 null_dic['user_age'] = user_age
34 null_dic['user_salary'] = user_salary
35 # 8。把输入的信息 从字典添加到列表中,以便查询功能查询
36 user_msg_list.append(null_dic)
37 # 9.提示用户添加成功
38 print(f'用户{user_name}添加成功!')
39 elif choice == 2:
40 user_inp_id = int(input('用户信息查询,输入要查询的id数字:').strip())
41 if user_inp_id != 1:
42 print('输入的id未注册用户,无法查到相关数据')
43 continue
44 second_dic = user_msg_list[user_inp_id - 1]
45 second_list = second_dic.keys()
46 for i in second_list:
47 print(f'{i}:{second_dic[i]}')
48
49 elif choice == 3:
50 user_id = input('按3删除全部数据:').strip()
51 if user_id == 3:
52 del user_msg_list
53 print('所有用户数据已删除')
54 if user_id != 3:
55 print('指令错误,请输入3以进行删除操作')
56
57 elif choice == 4:
58 user_id = input('按4退出系统:').strip()
59 if user_id == 4:
60 print('已退出系统')
61 exit()
62 if user_id != 4:
63 print('指令错误,请输入4以退出系统')
64 else:
65 print('暂时没有当前服务')

员工管理系统+字符编码+Python代码文件操作的更多相关文章

  1. python基础编程: 编码补充、文件操作、集合、函数参数、函数递归、二分查找、匿名函数与高阶函数

    目录: 编码的补充 文件操作 集合 函数的参数 函数的递归 匿名函数与高阶函数 二分查找示例 一.编码的补充: 在python程序中,首行一般为:#-*- coding:utf-8 -*-,就是告诉p ...

  2. python系列——文件操作的代码

    import numpy as np import os,sys #获取当前文件夹,并根据文件名 def path(fileName): p=sys.path[0]+'\\'+fileName ret ...

  3. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

  4. [转]python file文件操作--内置对象open

    python file文件操作--内置对象open   说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前 ...

  5. python基本文件操作

    python文件操作 python的文件操作相对于java复杂的IO流简单了好多,只要关心文件的读和写就行了 基本的文件操作 要注意的是,当不存在某路径的文件时,w,a模式会自动新建此文件夹,当读模式 ...

  6. Python第二天 变量 运算符与表达式 input()与raw_input()区别 字符编码 python转义符 字符串格式化 format函数字符串格式化 帮助

    Python第二天  变量  运算符与表达式  input()与raw_input()区别  字符编码  python转义符  字符串格式化  format函数字符串格式化  帮助 目录 Pychar ...

  7. python 09 文件操作

    一 流程: #1. 打开文件,得到文件句柄并赋值给一个变量 #2. 通过句柄对文件进行操作 #3. 关闭文件 二 例子 #1. 打开文件,得到文件句柄并赋值给一个变量f=open('a.txt','r ...

  8. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  9. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

随机推荐

  1. 在使用jjwt时在配置文件中设置过期时间,取到的结果为0的原因

    在设置了过期时间后感觉没有起作用,打印日志查看了下为0,因为生成token的文件在一个公共模块中,而过期时间设置在服务模块 中的配置文件中. 原因是:没有为设置getter和setter方法 来自为知 ...

  2. jsp文件中文乱码解决

    文件顶加上 <%@ page contentType="text/html;charset=UTF-8" language="java" %>即可

  3. xshell 6 的使用

    1.前言 xshell是用来远程控制云服务器的linux系统的软件,装载window系统里面,可以向发送linux指令, 需要的关键信息:该系统设备的公网ip, 用户名 ,密码 2.软件下载 官网地址 ...

  4. Servlet初级学习加入数据库操作(一)

    需要的源代码地址: https://url56.ctfile.com/f/34653256-527822631-2e255a(访问密码:7567) 将页面中的数据逐步替换为数据库管理 准备一个连接数据 ...

  5. 新增访客数量MR统计之Reduce和Runner相关准备

    关注公众号:分享电脑学习回复"百度云盘" 可以免费获取所有学习文档的代码(不定期更新)云盘目录说明:tools目录是安装包res 目录是每一个课件对应的代码和资源等doc 目录是一 ...

  6. Maven+ajax+SSM实现删除

    转载自:https://www.cnblogs.com/kebibuluan/p/9020381.html 3.尚硅谷_SSM高级整合_使用ajax操作实现删除的功能 点击删除的时候,要删除联系人,这 ...

  7. 【数据结构】图的基本操作——图的构造(邻接矩阵,邻接表),遍历(DFS,BFS)

    邻接矩阵实现如下: /* 主题:用邻接矩阵实现 DFS(递归) 与 BFS(非递归) 作者:Laugh 语言:C++ ***************************************** ...

  8. hisql orm update表数据更新文档

    更新 HiSql数据更新 HiSql 提供了好几种数据更新的方式下面一一介绍一下 如果你的表中增加了这四个字段 字段 描述 类型 CreateTime 创建时间 DateTime CreateName ...

  9. 搭建服务器之FTP

    FTP服务器,使用软件vsftpd,服务守护进程也是vsftpd.客户端访问的话可以用浏览器或ftp命令行. 1.yum install vsftpd.安装简单主要是配置,这个比httpd复杂点的地方 ...

  10. vivo数据库与存储平台的建设和探索

    本文根据Xiao Bo老师在"2021 vivo开发者大会"现场演讲内容整理而成.公众号回复[2021VDC]获取互联网技术分会场议题相关资料. 一.数据库与存储平台建设背景 以史 ...