python_字符编码&格式化

电脑最小储存单位是bit(位),8bit为一个Byte(字节),

8bit=1Byte

1024Byte=1KB

1024KB=1MB

1024MB=1GB

1024GB=1TB

编码的故事:

计算机是美国人发明的,最早只有127个字符编码,编码表被称为ASCII编码,中文怎么办?中国就把中文编进去,制定了GB2312编码,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里..............这样会出现什么情况,假如我一个本档的内容有中文,英文,显示就会乱码,我们说的乱码,就是某个中文字符编码表没有,就无法正确显示出来了

所以出现了Unicode编码,把所有语言都统一到这套编码里,但是Uniccode通常是1个字符要占2个字节(Byte),英文1个字符在Unicode也是占2个字节(Byte),怎么办呢,占用空间多一倍,于是utf-8就出现了,utf-8能根据字符(UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节,如果文本基本都是英文,用utf8能节省很多空间)

_________________________________________________________________________________________________

字符串编码

# -*- coding:utf-8 -*-

print(ord(‘A‘),ord(‘詹‘),chr(35449))

ord()就是找对应的编码数字,chr()就是找对应的解码字符

_________________________________________________________________________________________________

Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干个字节。如果要在网络上传输,或者保存到磁盘上,就需要把str变为以字节为单位的bytes

 1 # -*- coding:utf8 -*-
 2
 3 #‘ABC‘以ascii编码成bytes,才能进行传输
 4 print(‘ABC‘.encode(‘ascii‘))
 5
 6 #b‘ABC‘以ascii解码成字符,我们才看得出是‘ABC‘
 7 print(b‘ABC‘.decode(‘ascii‘))
 8
 9 #中文如果用ascii编码会出错,中文不在ascii表内,超出了范围,所以我们用utf8
10 print(‘我是中文‘.encode(‘utf8‘))
11 print(b‘\xe6\x88\x91\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf8‘))

假设我故意把bytes故意改一下尾部去decode,会报错,但是可以忽略

1 # -*-coding:utf8 -*-
2
3 #原bytes
4 print(b‘\xe6\x88\x91\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\x87‘.decode(‘utf8‘))
5 #故意出错bytes(如果不加errors=‘ignore‘,会报错)
6 print(b‘\xe6\x88\x91\xe6\x98\xaf\xe4\xb8\xad\xe6\x96\xff‘.decode(‘utf8‘, errors=‘ignore‘))

计算字符串中的字符个数

# -*-coding:utf8 -*-

print(len("12345678"))
print(len("饕餮"))

计算字符串中的字节数量

# -*-coding:utf8 -*-

print(len(b"12345678"))

#中文我要先encode编码我才bytes是什么,才能计算字节数量
print(‘饕餮‘.encode(‘utf8‘))
print(len(b‘\xe9\xa5\x95\xe9\xa4\xae‘))

Python中,采用的格式化方式和C语言是一致的,用%实现

1 # -*-coding:utf8 -*-
2
3 #格式化,%s中的s表示字符串,%d中的d表示整数,还有%f中的f表示浮点数,%x中的x表示十六进制的整数
4 say_somthing = ‘Hi, %s, you have $%d.‘ % (‘James‘, 1000000)
5 print(say_somthing)

还有一种格式代是format(),略过

原文地址:https://www.cnblogs.com/iamjames/p/10531869.html

时间: 2024-10-15 14:44:24

python_字符编码&格式化的相关文章

字符编码&格式化

1.字符编码 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295. 由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码表被称

python学习第四天 --字符编码 与格式化

字符编码 与格式化 第三天已经知道了字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295. 由于计算机是美国人发明的,因此,

python 字符编码、格式化

  数据类型-布尔值一个布尔值只有True.False两种值,要么是True,要么是False 布尔值可以用and.or和not运算 空值是Python里一个特殊的值,用None表示 Python对bytes类型的数据用带b前缀的单引号或双引号表示:x = b'ABC' 变量变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言.静态语言在定义变量时必须指定变量类型 //除法只取结果的整数部分,所以Python还提供一个余数运算,可以得到两个整数相除的余数 字符编码在计算机内存中,统一使用

PHP的MySQLi函数库的使用 以及 表单的字符编码配置

1.什么是mysqli PHP-MySQL 函数库是 PHP 操作 MySQL 资料库最原始的扩展库,PHP-MySQLi 的 i 代表 Improvement ,相当于前者的改进增强版,也包含了相对进阶的功能,另外本身也增加了安全性,比如可以大幅度减少 SQL 注入等问题的发生. 2. mysql与mysqli的概念相关 (1)mysql与mysqli都是php方面的函数集,与mysql数据库关联不大. (2)在php5版本之前,一般是用php的mysql函数去驱动mysql数据库的,比如my

Python 基础之字符编码

字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295. 由于计算机是美国人发明的,因此,最早只有1

《转》Python学习(13)-Python的字符编码

转自 http://www.cnblogs.com/BeginMan/p/3166363.html 一.字符编码中ASCII.Unicode和UTF-8的区别 点击阅读:http://www.cnblogs.com/kingstarspe/p/ASCII.html 再推荐一篇相关博文:http://www.cnblogs.com/huxi/archive/2010/12/05/1897271.html 二.Unicode与ASCII Python能处理Unicode和ASCII编码,为了让这两者

python 全栈 python基础 (五)三元运算 字符编码 元组 集合 三级菜单优化!

三元运算 条件判断不能加冒号: a=3 b=5 c=a if a<b else b oct() 转成八进制的简写:16进制 标志:BH为后缀或是0x为前缀hex() 转成16进制 元组 跟列表是一样一样的!但它是只读列表,没有更改的权限! dir() 把传入的数据类型的,所有方法以列表的形式返回.作用: 明确的表示 元组里存储的数据是不应该被修改的!!! list(tuple元组) 变成列表 tuple(list列表) 变成元组 集合 setlinux ={"","&q

Python3 字符编码

编码 字符串是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295. 由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算

Python20期课堂总结-20171209-Python数据类型、字符编码、文件处理

第1章 上节课课程回顾 1.1 安装python解释器 python C:\test.py 1 启动python解释器 2 把文件内容读入内存 3 解释执行 1.2 变量 age=18 id:id(age) type:type(age) value:age is:比较id ==:比较value 强调:id不同,value可以相同 1.3 数据类型 整形int 浮点型float 字符串str 列表list 字典dict 1.4 用户与程序交互 python3 input:把任何输入的内容都存成字符