Python全栈之路----Python2与Python3
金角大王Alex python 之路,致那些年,我们依然没搞明白的编码
python2与python3的区别
py2
str = bytes
为什么有bytes?
是因为要表示图片、视频等二进制格式的数据。
以 utf-8 编码的字符串,在windows上不能显示(Linux默认编码 utf-8 ,windows默认编码 gbk)
如何在python2里实现写一个软件,在全球各国的电脑上都能直接看?
以unicode编写你的软件 s = you_str.decode( ' utf-8 ' )
unicode类型
文件头
py2:以 utf-8 or gbk... 编码的代码,代码内容加载到内存,并不会被转成unicode,编码依然是 utf-8 or gbk...
py3:以 utf-8 or gbk... 编码的代码,代码内容加载到内存,会被自动转成unicode
py3
str = unicode
Python2和Python3编码总结
py2里有str,unicode,bytes,str和bytes基本一致,只有在图片、视频里是不一样的。 py2 str = py3 unicode
py2不支持中文,默认编码是ASCII,为使py2里编码的能在全球电脑上显示,于是就在py2里加了一个单独的类型,叫unicode,如果程序想在全球电脑里显示,那就要在内存里将编码转成unicode。
py3里,字符串默认编码unicode,文件默认编码 utf-8 ,将str和bytes做了明确的区分:str就是unicode格式的字符串,bytes就是单纯的二进制。
py3里不管打印什么字符都是unicode,py2里打印字符会打印成其对应的 utf-8 或 gbk。
unicode是为了存储和传输,传输是用二进制,存到硬盘里用的是 utf-8 或 gbk 。
py3里不要转编码,转编码是不可逆的,转不回来的!!!
Python只要出现各种编码问题,无非是哪里的编码设置错了。常见的编码错误的原因有:
(1)Python解释器的默认编码
(2)Python源文件文件编码
(3)Terminal使用的编码
(4)操作系统的语言设置
Python全栈之路----Python2与Python3的更多相关文章
- Python全栈之路----目录
Module1 Python基本语法 Python全栈之路----编程基本情况介绍 Python全栈之路----常用数据类型--集合 Module2 数据类型.字符编码.文件操作 Python全栈之路 ...
- python 全栈之路
目录 Python 全栈之路 一. Python 1. Python基础知识部分 2. Python -函数 3. Python - 模块 4. Python - 面对对象 5. Python - 文 ...
- Python全栈之路目录结构
基础 1.Python全栈之路-----基础篇 2.Python全栈之路---运算符与基本的数据结构 3.Python全栈之路3--set集合--三元运算--深浅拷贝--初识函数 4.Python全栈 ...
- Python全栈之路----常用模块----hashlib加密模块
加密算法介绍 HASH Python全栈之路----hash函数 Hash,一般翻译做“散列”,也有直接音译为”哈希”的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列 ...
- Python全栈之路-----基础篇
Python诞生 Python是著名的”龟叔“Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python语法很多来自C,但又受到 ...
- Python全栈之路----函数----返回值
函数外部的代码想要获取函数的执行结果,就可以在函数里用return语句,把结果返回. def stu_register(name,age,course='PY',country='CN'): prin ...
- Python全栈之路----常用模块----subprocess模块
我们经常需要通过Python去执行一条系统命令或脚本,系统的shell命令是独立于你的python进程之外的,每执行一条命令,就是发起一个新进程,通过python调用系统命令或脚本的模块在python ...
- Python全栈之路----常用模块----包及跨模块导入
当你的模块文件越来越多,就需要对模块文件进行划分,比如把负责跟数据库交互的都放一个文件夹,把与页面交互相互的放入一个文件夹. 像上面这样,一个文件夹管理多个模块文件,这个文件夹就被称为包. 那不同包之 ...
- Python全栈之路----常用模块----os模块
os模块提供了很多允许你的程序和操作系统直接交互的功能 得到当前工作目录,即当前Python脚本工作的目录路径:os.getcwd() #test.py import os print(os.getc ...
随机推荐
- Linux脚本shell字符串处理
Linux脚本shell字符串处理,基本都有了,看着搜吧 TLDP教堂 shell中if条件字符串.数字比对,[[ ]]和[ ]区别 Linux 之 shell 比较运算符 Linux Shell编程 ...
- 微信小程序wepy开发,属性绑定的事件参数中可以使用{{}}写实参
<view wx:for="{{tablist}}" class="item {{activeid === item.id ? 'active':''}}" ...
- DRF中的APIView源码分析
首先写一个简单的drf接口 from rest_framework.views import APIView from rest_framework.response import Response ...
- docker从容器里面拷文件到宿主机或从宿主机拷文件到docker容器里面
1.从容器里面拷文件到宿主机? 答:在宿主机里面执行以下命令 docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 示例: 假设容器名为testtomcat, ...
- centos7 安装xinetd,telnet
安装方式:yum [root@master ~]# yum list |grep telnettelnet-server.x86_64 1:0.17-59.el7 ...
- script利用src引用外部js文件,如果内部嵌套了js代码呢
<script src='test.js' defer async> var a = 5; </script> 这个时候 var a = 5;会被忽略.
- POJ-3294 Life Forms n个字符串中出现超过n/2次的最长子串(按字典序依次输出)
按照以前两个字符串找两者的最长公共子串的思路类似,可以把所有串拼接到一起,这里为了避免讨论LCP跨越多个串需需要特别处理的问题用不同的字符把所有串隔开(因为char只有128位,和可能不够用,更推荐设 ...
- html网页如何使用哪种浏览器内核渲染的选择
众所周知,国内的浏览器基本都是双内核的(ie(Trident)+webkit):而且基本默认时都是用webkit内核.尽管IE浏览器体验差,但是有时也会需要用IE内核来渲染的(比如银行网站). 如果要 ...
- Android测试(三)——APK文件反编译
APK文件反编译: 在进行反编译操作前,先简单介绍下smali文件: smali是一种文件格式,语法和Jasmine的语言类似,这些smali文件包含开发应用程序时编写的java类的代码. 工具:ja ...
- 移动端滑动轮播,原生JS
因为公司需要自定义两个轮播图联动,又不想引入第三方库,所以自己研究了下. 下面只是一个简单的轮播图,由此再拓展一下即可实现两个轮播图联动. <!DOCTYPE html> <html ...