本篇描述一些概念。
1.写代码-运行代码
2.硬盘存储-内存-显示
3.为什么用python2无法打印相应的字符
4.什么叫bytes?
5.Unicode到底是什么?(码位+解释+编码)
6.编码与解码
7.python2 python3的区别
1.写代码-运行代码
文章图片
2.硬盘存储-内存-显示
Python2 | python3 | ||
硬盘 | UTF-8 | UTF-8 | |
内存 | ASCII | utf-8 | 编码声明 (运行代码:在头处 #coding:utf-8 ) |
显示 |
3.为什么用python2无法打印相应的字符
文章图片
python2中gb2312 和ASCII是无法打印中文的。
4.什么叫bytes?
加载进内存叫bytes
数据编码:内存中存放的形式 用repr(a)
内存中存的是str,内存中存的是ascii
文章图片
文章图片
5.Unicode到底是什么?(码位+解释+编码)
a=u'hello'
告诉python的解释器,
当运行到这段代码的时候会采用unicode的形式,把字符内容加载到内存中
unicode形式不是编码unicode的码位
5.1unicode有两种字符集
文章图片
是否声明编码,内存中是不同的。
文章图片
左边显示的是码位,右边是编码
5.2编码与解码
字符被加载进内存有两种形式:bytes, unicode
编码:unicode->bytes
解码:ASCII GB2312 UTF-8 ->Unicode
文章图片
文章图片
6.编码与解码的示例
repr()#查看内存中的编码
#英文是没有问题的
a='hello'#存储内存中是被编码过的
print(a.decode('ascii'))#只能是解码类型是unicode
print(a.decode('utf-8'))
print(a.decode('gb2312'))
print(repr(a.decode('ascii'))u'hello'#中文
#coding: utf-8
a='你好'
print(a.decode(('ascii'))#打印不出
print(a.decode(('utf-8'))
print(a.decode(('gb2312'))#打印不出
7.python2 python3的区别
python2:
文章图片
python3
文章图片
Python3 | Python2 | ||
硬盘 | UTF-8 | UTF-8 | |
内存 | unicode码位 | bytes(a=b'\xe4\xbd\xa0\xe5\xa5\xbd' b表示Bytes ) | |
编码(unicode+原封不动) |
【python|python(55)-编码-解码-unicode到底是什么(+repr+)】
推荐阅读
- python|零基础学 Python 有什么建议()
- Dream的茶话会|赢在CSDN----紧跟平台脚步,一起发光发亮
- 从零开始学WEB前端|从零开始学WEB前端——网页的行为——JavaScript基础(1)
- 019 Linux tcpdump 抓包案例入门可真简单啊()
- ECS 34 编程指南
- 蓝桥历届真题|第十一届蓝桥杯python大学组国赛真题
- 蓝桥真题|【蓝桥真题4】练练填空就想进国赛(拿下大题才能让你真正有底气(蓝桥31日冲刺打卡))
- 关于for i in list1: 中i变量的内容
- Debug专栏|“OSError: [WinError 126] 找不到指定的模块”的解决办法