员工管理系统+字符编码+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. slf4j+logback日志框架 的具体使用操作【spring boot自带的默认日志框架】

    1.前言 是不是还在使用System.out.println()打印数据到控制台看? 东西少还好,如果多起来,那就看的很烦人了,特别还有加时间等信息. 怎么解决? 可以使用日志框架 ,常见的有 log ...

  2. C#进阶——从应用上理解异步编程的作用(async / await)

    欢迎来到学习摆脱又加深内卷篇 下面是学习异步编程的应用 1.首先,我们建一个winfrom的项目,界面如下: 2.然后先写一个耗时函数: /// <summary> /// 耗时工作 // ...

  3. 【基因组学】maker的安装和注释

    本文默认读者有一定的生信基础,没有基础的可以阅读以前的笔记内容. maker作为比较受人认可的基因组注释软件,其流程较为清晰简单. 不知何故,我的conda无法安装maker,故而采用手动安装方式. ...

  4. 函数实现将 DataFrame 数据直接划分为测试集训练集

     虽然 Scikit-Learn 有可以划分数据集的函数 train_test_split ,但在有些特殊情况我们只希望它将 DataFrame 数据直接划分为 train, test 而不是像 tr ...

  5. 【Java常用类】BigDecimal

    BigDecimal 一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中, 要求数字精度比较高,故用到java.math.BigDecimal类. BigDecimal类支 ...

  6. 【Java】单例设计模式

    文章目录 单例设计模式 什么是设计模式 单例设计模式 实现 饿汉式 懒汉式 饿汉式与懒汉式的区别 饿汉式 懒汉式 单例模式的应用场景 单例设计模式 什么是设计模式 设计模式是在大量的实践中总结和理论化 ...

  7. [开发笔记usbTOcan]用树莓派搭建私有Git服务器

    0 | 思路 在开始编程前,先创建一个版本管理库,以前一直用SVN,但目前用Git的还是比较,正好利用这个机会学习GIt. 想过使用Github提供的免费服务器,但项目目前还没有做开源的准备,于是就有 ...

  8. [C# 学习]窗体间调用控件

    一.方法1: 假如有两个窗体,Form_A和Form_B,每个窗体里都有一个按键,Button_A和Button_B,要实现单击Button_A显示窗体B,那么窗体A中Buttom_A的单击事件的程序 ...

  9. Android学习笔记4

    activity配置文件 //AndroidMainifest.xml <?xml version="1.0" encoding="utf-8"?> ...

  10. 513. Find Bottom Left Tree Value

    Given a binary tree, find the leftmost value in the last row of the tree. Example 1: Input: 2 / \ 1 ...