# 数据类型的相互转化
# 字符编码
# 文件操作 # 1.哪些类型可以转化为数字
# res = int('10')
# print(res)
# res = int('-3')
# print(res)
# res = float('.15')
# print(res)
# res = float('-.15')
# print(res)
# res = float('-3.15')
# print(res)
# 作业:判断所有能被转换为数字类型的字符串,并转化 # 2.数字转化字符串
# print(str(10)) # 3.字符串与列表相互转换 ******
s = 'abc123呵呵'
print(list(s)) # ['a', 'b', 'c', '1', '2', '3', '呵', '呵'] 没有对应的 str(ls)
ls = ['a', 'b', 'c', '1', '2', '3', '呵', '呵']
n_s = ''.join(ls)
print(n_s) # s1 = 'a b c 1 2 3 呵 呵'
# res = s1.split() # 默认按空格拆
s1 = 'a b c 1 2 3 呵 呵'
res = s1.split()
print(res) # 必须掌握
s2 = 'ie=UTF-8&wd=你好帅'
res = s2.split('&')
print(res) # ['ie=UTF-8', 'wd=你好帅'] ls2 = ['ie=UTF-8', 'wd=你好帅']
n_s2 = '@'.join(ls2)
print(n_s2) # ie=UTF-8@wd=你好帅 # 4.需求:"ie=UTF-8&wd=你好帅" => [('ie', 'UTF-8'), ('wd', '你好帅')]
res = []
s4 = "ie=UTF-8&wd=你好帅"
ls4 = s4.split('&') # ['ie=UTF-8', 'wd=你好帅']
for ele in ls4: # v = ie=UTF-8 | wd=你好帅
k, v = ele.split('=') # k: ie v: UTF-8
res.append((k, v))
print(res) # 5.需求:"ie=UTF-8&wd=你好帅" => {'ie': 'UTF-8', 'wd': '你好帅'}
res = {}
s5 = "ie=UTF-8&wd=你好帅"
ls5 = s5.split('&') # ['ie=UTF-8', 'wd=你好帅']
for ele in ls5: # v = ie=UTF-8 | wd=你好帅
k, v = ele.split('=') # k: ie v: UTF-8
res[k] = v
print(res) # 6.需求:[('ie', 'UTF-8'), ('wd', '你好帅')] => {'ie': 'UTF-8', 'wd': '你好帅'}
res = {}
ls6 = [('ie', 'UTF-8'), ('wd', '你好帅')]
for k, v in ls6:
res[k] = v
print(res) # 7.list与tuple、set直接相互转化 - 直接 类型() # 8.需求:将汉字转化为数字
# 将 壹、贰、叁、肆、伍、陆、柒、捌、玖、拾、佰、仟
# 转化为 1、2、3、4、5、6、7、8、9、10、100、100
# 作业:壹仟捌佰玖拾叁 => 1893 num_map = {
'壹': 1,
'贰': 2,
'仟': 1000
}
ls8 = ['贰', '壹', '仟']
res = []
for v in ls8:
num = num_map[v] # 通过key去映射表拿到对应的值,完成 '贰' => 2
res.append(num)
print(res)
# 测试一下
# 学习字符编码的问题:解决乱码问题 # 数据 从 硬盘 => 内存 => cpu
# 应用程序打开文本文件的三步骤
# 1.打开应用程序
# 2.将数据加载到内存中
# 3.cpu将内存中的数据直接翻译成字符显示给用户 # python解释器
# 1.打开python解释器
# 2.将数据加载到内存中
# 3.cpu将内存中的数据解释执行将结果显示给用户,如何解释执行不能通过,将错误信息提供给用户 # 编码的发展史
# 电脑只能识别高低电频对应的0,1信息 => 问题:如何将世间万物信息存放到内存中
# 世间万物信息 => 0,1形式的数据 => 电脑中存放,将该过程逆向操作,就是访问已存储的数据信息 # 编码表
# 人能识别的字符 <=> 机器能识别的字符:一定存在一种固定的对应关系
# 编码表:一定范围内人能识别的字符与机器能识别的字符形成的对应关系表(映射表) # 1.ASCII表:英文字母、英文符号、数字与机器能识别的字符的对应关系表,8个二进制位就能存放完这所有的对应关系 => 1字节
# python2采用的默认编码是ASCII,早期并不支持中文编程
# 2_1.GBK:中文与与机器能识别的字符的对应关系表(完全兼容ASCII表),16个二进制位能存放所有汉字与ASCII之前的对应关系 => 2个字节
# 2个字节能否存放常用汉字 => 16个二进制位 2^15
# print(pow(2, 15))
# 2_2.Shift_JIS | Euc-kr:日文 | 韩文 与机器能识别的字符的对应关系表(完全兼容ASCII表) # 乱码:存的编码格式与取的编码格式不一致
# 3.Unicode万国码:世间中常用国家的常用字符与机器能识别的字符的对应关系表 # 转码:Unicode存在汉字与二进制对应关系,GBK也存在汉字与二进制对应关系,将GBK存放的数据转存到Unicode数据 # 均采用Unicode编码表,只是存放数据采用字节数不一致,utf-8与utf-16是Unicode编码表的两种体现方式
# utf-8:以1个字节存放英文,以3 | 6个字节存放汉字,在英文数据过多时,更深空间,用来传输效率更高
# utf-16:所有支持的符号都采用2个字节存放,读存数据采用定长,不用计算,读存效率高 # 硬盘到内存需要数据的传输,内存到CPU需要数据的传输,所有都采用utf-8
# 内存需要高速读写,采用utf-16 # 学习的结晶:编码与解码要统一编码
# 操作文本字符
res = "汉字呵呵".encode('utf-8') # 编码:将普通字符串转化为二进制字符串
print(res) res = b'\xe5\x91\xb5\xe5\x91\xb5'.decode('GBK') # 解码:将二进制字符串转化为普通字符串
print(res)
res = b'\xe5\x91\xb5\xe5\x91\xb5'.decode('utf-8')
print(res) print(chr(65))

最新文章

  1. C# async and await
  2. php 字符串式非关联数组循环
  3. Spring整合Hibernate图文步骤
  4. ionic 向後台請求json 數據 在頁面上的顯示問題
  5. 连接器|网络滤波连接器|电脑连接器|RJ45变压器-华联威电子有限公司
  6. 排序算法FOUR:堆排序HeapSort
  7. Balance(01背包)
  8. Windows打印体系结构之Print Spooler概念与架构
  9. UIPasteboard 粘贴板
  10. Java学习笔记之多态
  11. Long Long Message (poj2774 后缀数组求最长公共子串)
  12. MyBatis联表查询
  13. 三、kubernetes环境搭建(实践)
  14. 对如下字符串(234453)[234]{2324}分析它的括号使用是否正确,括号匹配(Java实现)
  15. CentOS_mini下安装docker之 安装 golang
  16. log4j layout日志信息格式
  17. 使用ajax无法跨源问题总结
  18. noip第34课作业
  19. HDU 1229 还是A+B(A+B陶冶情操)
  20. uva--242(邮资问题 dp)

热门文章

  1. 让 Python 的1、数据库查询返回字典记录--- 2、利用zip函数将两个列表(list)组成字典(dict)
  2. Gym 101606L - Lounge Lizards - [计算几何+LIS]
  3. sql的基本语句
  4. NodeJS笔记(四) NPM 指令--- npm start
  5. IIS宿主WCF服务*.svc Mime类型映射
  6. 20175313 张黎仙《Java程序设计》第九周学习总结
  7. Django---路由、配置和静态文件简介
  8. Django---框架简介和工程搭建
  9. jQuery动画方法
  10. 2#第一个Java程序