练习题
# 统计一个字符串中出现的字符的个数 eg: s = 'helloworld' 以字典的形式输出: {'h':1, 'e':1, 'l':2} # # 统计一个字符串中出现的字符的个数 # s = 'helloworld' # # # 1. 定义一个空字典,用来存储结果 # data_dict = {} # # # 2. 字符串是可以循环的, # for i in s: # # 2.1 判断字典中是否存在了i => h # if i in data_dict: # data_dict[i] += 1 # {'e':2} # else: # data_dict[i] = 1 # # print(data_dict) # 统计一个字符串中出现的单词的个数 s = 'hello world jason jason jason ly ly ly ly' # 1.0 把s这个字符串按照空格切成列表 ss = s.split(' ') # ['hello', 'world' ,'jason', 'jason] # 1. 定义一个空字典,用来存储结果 data_dict = {} # 2. 字符串是可以循环的, for i in ss: # 2.1 判断字典中是否存在了i => h if i in data_dict: data_dict[i] += 1 # {'hello':2, 'world':1} else: data_dict[i] = 1 print(data_dict)
员工管理系统
# 目的: 复习前几天的知识点,里面可能会有很多漏洞,不要太在意 # 添加用户 ''' {'name':'ly', 'age':18} {'name':'ly1', 'age1':18} ''' # 2.0 先定义一个列表,存储用户的信息 user_data_list = [] while True: print(""" 1. 添加用户 2. 查看用户 3. 删除用户 4. 退出系统 """) # 1. 让用户输入要操作的序号 choice = input('请输入序号:').strip() # 1.1 验证用户输入的是不是数字 if not choice.isdigit(): print('输入不合法') continue if choice == '1': print('添加用户') # 3.0 获取用户输入的信息 user_id = input('请输入用户编号:').strip() # 3.3 验证用户输入的编号是否已经存在 for item in user_data_list: # user_data_list = [{'user_id':1}, {'user_id':2}] # item => {'user_id':1} # item => {'user_id':2} # 判断用户数据的编号是否存在 if user_id == item['user_id']: print('用户编号已经存在') break else: name = input('请输入用户姓名:').strip() age = input('请输入用户年龄:').strip() salary = input('请输入用户薪资:').strip() # 3.1 先定义一个空字典,用来存储用户的信息 tmp = {}tmp['user_id'] = user_id tmp['name'] = name tmp['age'] = age tmp['salary'] = salary # tmp = {'user_id':1, 'name':'ly', 'age':18} # 3.2 把用户的个人信息放到空列表中 user_data_list.append(tmp) print('添加用户:%s成功' % name) elif choice == '2': print('查看用户') print(user_data_list) elif choice == '3': print('删除用户') elif choice == '4': print('退出系统') else: print('你选择的序号不存在')
字符编码
字符串类型、文本文件的内容都是由字符组成的,但凡涉及到字符的存取,都需要考虑字符编码的问题。 人类在与计算机交互时,用的都是人类能读懂的字符,如中文字符、英文字符、日文字符等 而计算机只能识别二进制数 翻译的过程必须参照一个特定的标准,该标准称之为字符编码表,该表上存放的就是字符与数字一一对应的关系。 0 a 1 b 00 aa 01 ab 000 001 010
字符编码的发展史
1. 一家独大: 计算机起源于美国,所以,最开始的时候,计算机只考虑了英文字符 ASCII码表: ''' 1、只有英文字符与数字的一一对应关系 2、一个英文字符对应1Bytes,1Bytes=8bit,8bit最多包含256个数字,可以对应256个字符,足够表示所有英文字符 0 : 48 A :65 a : 97 ''' 2 . 群雄割据 为了让计算机能够识别中文和英文,中国人定制了GBK GBK编码: # GBK表的特点: 1、只有中文字符、英文字符与数字的一一对应关系 2、 一个中文字符使用两个或者两个以上的bytes记录 2bytes = 16位 16位可以表示 2 ** 16 种情况 ''' 如果超过了2 ** 16,gbk就会使用一个中文字符用3个字节表示 ''' # Shift_JIS表的特点: 1、只有日文字符、英文字符与数字的一一对应关系 # Euc-kr表的特点: 1、只有韩文字符、英文字符与数字的一一对应关系 3. 分久必合 为了让世界各国的字符统一起来,就诞生了unicode编码 unicode(万国码): 统一使用2个字节进行表示 eg:adsadsadsadsadsad # 1. 存在所有语言中的所有字符与数字的一一对应关系,即兼容万国字符 utf-8编码(unicode的优化版本) ''' 把英文字符还按照一个字节表示 中文字符还按照2个字节或者更多字节表示 ''' 得出结论:以后我们都使用utf-8编码
字符编码的差异
1. 如何解决乱码问题 切换对应的编码 2. python解释器版本不同代码的差异 python2 python3 ''' python2诞生的时候,还没有utf8的编码,所以,python2中不能使用utf8的编码 ''' 3. pycharm如何添加模板注释 settings editor file and code templates python script 在这个里面写你想添加的内容 4. 编码与解码 编码: # 把人类能够读懂的字符按照转成计算机能够识别的字符的过程 解码 # 把计算机能够读懂的字符按照转成人类能够识别的字符的过程 如何操作? s = '你好啊,世界' # 编码 # print(s.encode('gbk')) s1 = s.encode('utf8') # 解码 s2 = s1.decode('utf8') print(s2)
浙公网安备 33010602011771号