2月22日课后总结

2/22课后总结

练习题讲解

def Dict(s):
    dic = {}  # 定义一个空字典
    for i in s:  # 遍历字符串
        if i in dic:  # 如果字典中不存在该字符则将其输入并计数1,否则将原本的值加1
            dic[i] += 1
        else:
            dic[i] = 1
    return dic  # 返回字典的值

print(Dict('ababaccdd'))  # 将需要的字符串传到形参s

def Dict(s):
    dic = {}  # 定义一个空字典
    List = s.split()  #将字符串切分并存入列表
    for i in List:   # 遍历字符串
        if i in dic:  # 如果字典中不存在该字符则将其输入并计数1,否则将原本的值加1
            dic[i] += 1
        else:
            dic[i] = 1
    return dic   # 返回字典的值


print(Dict('kevin tony jack jack tom kevin tom jack tony tom kevin tom jack'))  # 将需要的字符串传到形参s

debug

"""
	在代码左侧点击会出现一个断点
	代码编辑区右键选择debug选项,可以查看代码的运行,方便排错
"""

员工管理系统

dic = {}  #定义一个空字典


def add_user():
    """
        添加一个用户并存入字典
    :return: 如果成功添加则返回添加成功,如果字典里已经有该用户则返回ID已存在
    """
    print('--------添加用户--------')
    user_id = input('请输入员工ID>>>')
    username = input('请输入员工姓名>>>')
    age = input('请输入员工年龄>>>')
    salary = input('请输入员工薪资>>>')
    global dic
    if f'用户ID:{user_id}' not in dic:
        dic[f'用户ID:{user_id}'] = f'姓名:{username}', f'年龄:{age}', f'薪资:{salary}'
        return '添加成功'
    else:
        return '用户ID已存在'


def check_user():
    """
        查看用户
        输入1查看指定用户
        如果输入的用户查询不到则打印查无此人
        输入2查看全部用户
    """
    print('--------查看用户--------')
    print('查看指定用户\t\t[输入1]')
    print('查看全部用户\t\t[输入2]')
    flag = input()
    if flag == '1':
        user_id = input('请输入你要查询的ID')
        if f'用户ID:{user_id}' in dic:
            print(dic[f'用户ID:{user_id}'])
        else:
            print('查无此人')
    elif flag == '2':
        print(dic)


def del_user():
    """
        删除用户
        输入指定的ID,将其删除
    :return: 删除成功则返回删除成功,如果查询不到则返回查无此人
    """
    print('--------删除用户--------')
    global dic
    user_id = input('请输入你要删除的ID')
    if f'用户ID:{user_id}' in dic:
        del dic[f'用户ID:{user_id}']
        return '删除成功'
    else:
        return '查无此人'


def main():
    """
        员工管理系统的主界面
    :return: 根据提示输入对应的值
    """
    print('----欢迎使用员工管理系统----')
    print('  添加用户\t\t[输入1]')
    print('  查看用户\t\t[输入2]')
    print('  删除用户\t\t[输入3]')
    print('  退出系统\t\t[输入4]')

    return input('请输入>>>')


while True:  # 代码由此开始运行
    value = main()
    if value == '1':
        print(add_user())
        continue
    elif value == '2':
        check_user()
        continue
    elif value == '3':
        print(del_user())
        continue
    elif value == '4':
        exit()
    else:
        print('输入错误')

字符编码

"""
	字符编码只与文本和字符串有关,其余无关
	计算机只懂二进制,字符编码就是讲人类的语言和二进制进行互相转换
"""

字符编码发展史

1. ASCII码
"""
	最早的字符编码,由美国人发明,记录了字母数字和英文字符
	共有127个,采用一个字节(八位二进制)记录之多记载255个字符
	主要需要记住的有:
					0:48
					A: 65
					a: 97
"""
2. GBK码
"""
	由中国人发明的编码,记录汉字英文字符
	一般采用两个或者三个字节记载中文字符
	2^16=65535
	还有韩国人和日本人也发明了他们国家适用的编码
"""
3. unicode码(万国码)
"""
	记录了所有语言的所有字符与数字并一一对应
	unicode只在内存中起作用
	使用至少两个字节保存数据
"""
4. utf8
"""
	日常使用的都是utf8编码,utf系列还有utf16,utf32,utf8mb4
	用一个字节保存英文字符
	两个或以上保存中文字符
	utf8只能存储正常的字符,utf8mb4可以存储表情	
"""

字符编码的使用

1. 如何解决乱码问题?
	文本文件使用什么字符编码保存,打开的时候就要使用对应的字符编码
2. python解释器版本不同带来的差异
	# python2 解释器使用的字符编码还是ASCII表
    # python3 使用的是utf8编码
3. 添加文件模板
	settings
    	Editor
        	File and code template
            	python script
4. 编码与解码
	编码:
    	  就是将人的语言转成二进制
        解码:
    	  就是将二进制转成人的语言
s = '一二三四五,上山打老虎'
s1 = s.encode('utf-8')  # 编码
print(s1, '\n', type(s1))
# 运行结果: 					b'\xe4\xb8\x80\xe4\xba\x8c\xe4\xb8\x89\xe5\x9b\x9b\xe4\xba\x94\xef\xbc\x8c\xe4\xb8\x8a\xe5\xb1\xb1\xe6\x89\x93\xe8\x80\x81\xe8\x99\x8e' 
 <class 'bytes'>
print(s1.decode('utf-8'))  # 解码

s = b'kevin123' # 只有英文字符和数字,要想编码的话,直接使用前缀b

文件

# 文件的类型:txt word excel py
'''python操作文件'''

# 三步骤(关键字:open)
    1. 打开文件
    2. 操作文件
    3. 关闭文件
    
# 1. 打开文件
# open('文件路径', 'r', '字符编码')

f=open('a.txt', 'r', encoding='utf-8')
# 输出结果为:print(f)  # <_io.TextIOWrapper name='a.txt' mode='r' encoding='utf8'>  文件句柄

print(f.read())  #读文件
f.close()  # 关闭文件

"""
	语法格式:
		open('文件路径', '读写模式', '字符编码')
"""

# r的作用
'''当路径中可能存在有转移的字符时,字符串前面加上r来解决转义的问题'''
r'D:\python25\day09\a.txt'

文件的读写

1. r  >>> read: 只读 # 只能读,不能写,路径不存在直接报错
print(f.read()) 
2. w  >>> write:只写 # 只能写,不能读,路径不存在会直接创建一个,每次写之前会清空
print(f.write()) 
3. a  >>> append: 追加 # 追加,路径不存在会直接创建一个,写入不会清空
print(f.write()) 
posted @ 2023-02-22 17:24  橘子熊何妨  阅读(35)  评论(0)    收藏  举报