python第一篇:Python 字符串编
Python字符串编码
字符串编码的前世今生
1. 一个字节由8个bit组成,所以1个字节能表示的最大数为255;
2. 计算机是美国人发明的,所以一个字节可以表示所有的字符了,所以ASCII就成为美国人的标准编码;
3.但是ASCII编码处理汉字是明显不够的,中文不止255个汉字,所以中国制定GB2312编码,用两个字节表示一个汉字,GB2312还把ASCII包含进去了,同理,日文。韩文等等上百个国家为了解决问题都发展了一套字节的编码,标准就越来越多,如果出现多种语言混合现实就一定会乱码;
4.这时候出现了Unicode编码,将所有的标准统一到了一套编码里面;
5.那ASCII编码和Unicode编码之间是如何进行转换的?下面是具体的转换方法:
5.1 字母A用ASCII编码表示的十进制是65,二进制即为0100 0001
5.2 汉字“中”已经超出了ASCII编码的范围,用Unicode编码十进制是20013 二进制是0100 1110 0010 1101
5.3 A字母用Unicode编码时只需要在前面补上0 即为0000 0000 0100 0001
6.乱码问题解决了,但是同时又出现了一个新的问题,如果全部是英文字母的话,Unicode编码比ASCII编码多消耗一倍的内存,同时网络传输的时候也多消耗一倍的带宽;
7.所以这个时候出现了长度可变化的utf-8的编码。
字符与字节
1byte = 8bit
1KB = 1024 bytes
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
ASCII编码: 一个英文字母占据一个字节的空间,一个中文字母占据两个字节的空间;
utf-8编码: 一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占据三个字节,英文标点占据一个字节;
Unicode编码: 一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占据两个字节,英文标点占据两个字节。
Unicode编码为GB2312编码 utf-8编码 ASCII等编码的一个父级编码,那这些子编码之间子在需要相互转换的时候就需要借助父级编码Unicode。子编码是可以直接转换为父级编码,然后父级编码转换为另一种类型的子编码。
Python2和Python3字符编码存在的问题
获取默认编码格式:
>>> import sys
>>> sys.getdefaultencoding()
我们发现在python2中默认的编码格式是 'ascii' 编码,在python3中默认的编码格式为utf-8
第一步:在终端输入python进入python2的开发环境
第二步:s = "中国" # 获取s的值拿到 '\xe4\xb8\xad\xe5\x9b\xbd' 说明此时的ASCII编码无法识别汉字
Python2和Python3字符编码问题的解决方案
import sys
defaultencoding = 'utf-8'
if sys.getdefaultencoding() != defaultencoding:
reload(sys)
sys.setdefaultencoding(defaultencoding)
python第一篇:Python 字符串编的更多相关文章
- python第一篇-------python介绍
一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语言的编译器.Python这个名字,来自Guido所 ...
- 第一篇:python基础
python基础 python基础 本节内容 python起源 python的发展史 为什么选择python3 第一个python程序 变量定义 表达式和运算符 用户输入 流程控制 判断 流程控制 ...
- Python 第一篇:python简介和入门
一.python简介 1.python下载地址:https://www.python.org/downloads/ Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆 ...
- Python开发 第一篇 python的前世今生
Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC ...
- 进击python第一篇:相遇
1.第一句Python代码 在 当前目录下创建 hello.py 文件,内容如下: print "hello,world!" 执行 hello.py 文件,即: python he ...
- Python基础第一篇-------python的介绍
一.python的介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本 ...
- 第一篇 Python安装与环境变量的配置
开发语言有很多种,为什么选Python? 先对各种开发语言做个初识和分类如下:高级语言:Python Java.PHP C# Go ruby C++... ---> 字节码低级语言:C.汇编 - ...
- Python第一部分--Python简介+第一个程序+Python2和Python3介绍 001-016
一.Python起源 1.1 解释器(科普) 1.2Python的设计目标 1.3 Python的设计哲学 02.为什么学Python? 代码量少 同一样问题,不用的语言解决,代码量差距还是很多的,一 ...
- 第一篇 Python图片处理模块PIL(pillow)
本篇包含:一.Image类的属性:1.Format 2.Mode 3.Size 4.Palette 5.Info 二.类的函数:1.New ...
随机推荐
- IIS8应用池重启脚本
重启 IIS8 应用程序池的批处理 批处理很简单:c:\windows\system32\inetsrv\AppCmd.exe stop apppool /apppool.name:"ASP ...
- Android小应用之拨号器
首先看一下Android Studio下怎么设置应用的ICON Activity的onCreate()方法 当界面刚被创建时会回调此方法,super.onCreate()执行父类的初始化操作,必须要加 ...
- Ocelot --API网关简单使用
最近几个月一直在忙一个项目(感觉像是与世隔绝了),本来想好的是要写一些asp.net core 的一些简单使用上东西,也就放下了. 好在忙完了,也就重新开始写吧.写点什么呢?网上也有不少dotnet ...
- 下载yum安装的rpm包
方法一 通过yum自带的yumdownloader工具进行下载,这个工具是由yum-utils这个软件安装生成的 执行如下命令,检查yum-utils是否存在: rpm -qa |grep yum-u ...
- ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs
ssh key 免密码登陆服务器,批量分发管理以及挂载远程目录的sshfs 第一部分:使用ssh key 实现服务器间的免密码交互登陆 步骤1: 安装openssh-clients [root@001 ...
- 五分钟上手Git
团队开发中.遵循一个合理.清晰的Git使用流程.是非常重要的.否则,每一个人都提交一堆杂乱无章的commit,项目非常快就会变得难以协调和维护.以下是ThoughtBot 的Git使用规范流程.我从中 ...
- extendgcd模板
看了数论第一章,终于搞懂了扩展欧几里德,其实就是普通欧几里德的逆推过程. // ax+by = gcd(a,b) ->求解x,y 其中a,b不全为0,可以为负数// 复杂度:O(log2a)vo ...
- excel生成随机数
这个功能可以通过excel来实现,操作步骤如下: 1.新建一个excel,并打开 2.选中一个单元格,在单元格中填写: =20*RAND()+30 确定之后就会发现已经 ...
- 记录-阿里云Oss文件上传
public class OssUtil { /** * 上传图片 * @param file * @param request * @return */ public static Map<S ...
- java 基于tomcat的数据源案例
1.在context中定义数据源 <?xml version="1.0" encoding="UTF-8"?> <Context path=& ...