员工管理系统、字符编码、文件操作

发布时间 2023-07-17 16:04:23作者: 毓见

员工管理系统

# 咱们目前做出来的系统肯定是不完善的,目的就是练习最近学习的相关知识点,里面存在的不合理或者不严谨的地方不要纠结

快捷键:从一行直接换行到下一行 >>> shift +enter
tab:往后缩进
shift+tab:往前缩进

字符编码

前提:字符编码只跟文本数据和字符串有关系,它跟视频文件、音频文件等无关

# 为什么要有字符串编码?
计算机内部只认识01二进制数据,但是,我们现在在计算机上写的各种各样的字符,为什么都能正常显示?

字符编码:它的内部记录着字符和数字之间的对应关系
0 ---> a
1 ---->b
00 ---> aa
01----> ab
000 ----> aaa
001 -----> aab
010101010--->你好

字符编码的发展史

1. 一家独大
	计算机最开始是有美国人发明的,他们肯定是想让计算机识别英文字符
     ASCII码表:它的内部记录了英文字符和数字之间的关系
        # ASCII码表内置使用一个字节代表一个字符
        # 一个字节等于8位
        0000001
        2 ** 7 == 128
        2 ** 8  == 256
        """
        	在当初的时候,127种情况足够秒杀当时遇到的所有字符
        	后面使用8位代表一个字节是为了后续增加字符
        """
    	需要你记忆的是:
        	A-Z:65-
            a-z:97-
            0-9:48-
        # 字符串的比较:是按照ASCII码表的十进制数进行比较的
        	print('hello' > 'world')
2. 群雄割据
	中国人要想使用计算机,就自己开发了一套编码表:
        GBK码表:它的内部记录了英文、中文和数字之间的对应关系
            你----->129
            好------>130
            2 ** 16 == 65536
            """
                它还是使用一个字节保存英文字符
                使用两个字节保存中文字符
            """
    日本人要想使用计算机,也得发明一套属于自己的编码表
    	 Shift_JIS表
    韩国人也要有一套属于自己的编码表
    	 Euc-kr表
     ...
  
3. 一统天下
	为了让世界上的所有国家之间能够彼此无障碍的交流,统一使用了编码
     unicode(万国码)
        # 它的内部是统一使用两个字节保存字符或者更多字符
        由于原来的英文字符是使用一个字节保存的,现在万国码使用了两个字节,所以就把资源浪费了一倍
     utf8编码(unicode的优化版本)
        # 原来使用一个自己的英文字符,现在还使用一个字节保存
        中文字符使用三个字节保存
        2 **24
    """
    	最终得出结论:以后在使用字符编码的时候就使用utf8
    """
# 补充:
	utf-8、utf-16、utf-32...、utf8mb4(存表情)
    

字符编码实操

1. 如何解决字符乱码问题?
	# 你写的时候使用的是什么编码,打开的时候就使用什么编码打开
2. python解释器代码的差异
	# **-coding:utf-8-**
    # 在python2中,默认使用的编码是ASCII码
    s = u'你好'
    print s
   '''python3中默认使用的是utf8编码'''
3. 编码和解码
	编码:是把其他字符串转为二进制的过程
    	str----->0101
        str----->unicode----->0101001
        ASCII---->GBK------>unicode----->utf8
    解码:把二进制转为其他字符串的过程
    s = 'hello你好哈'
# 编码
res = s.encode('utf8')
# print(res) # b'hello'  # 二进制 binary  bin()
print(res) # b'hello\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x93\x88'

# 解码
res1 = res.decode('utf8')  # gbk、utf8
print(res1)  # hello你好哈

# 补充
s1 =b'hello123'  # 只能是纯英文字符
s2='hello123'.encode('utf8')

文件操作

1. 为什么要使用代码操作文件?
	# 当文件数量比较多的时候,人工操作就不太方便了,所以我们借助代码来操作
2. 如何操作文件?
	三步骤:
    	1、 打开文件
        2、操作文件(读、写)
        3、关闭文件(释放资源的)
     """
     
     	在路径中如果出现了斜杠和字母连用的情况,为了不产生歧义,在字符串的前面加一个r
     		r'D:\python26\day09\aa\a.txt'
     """ 
    
f=open('a.txt', 'r', encoding='utf8')
# print(f)  # <_io.TextIOWrapper name='a.txt' mode='r' encoding='utf8'>
print(f.read())

# 关闭文件
f.close() # 释放资源


# 方式2:打开文件
# with上下文管理器

with open('a.txt', 'r', encoding='utf8') as ffffff:
    print(ffffff.read())
    
# 内部自动关闭close