2020-03-23 Day4 Python(Windows)

字符串和编码

【乱七八糟】

1.二进制。(令人头疼,现在不疼啦)

十进制12345.67转化成十进制就是.

同理二进制就是这样的:

当把1111111转化为十进制的时候还有一个这样的公式:2……(N+1)-1

2.字符 字符串 字节:

一个字,或者一个字母,就是一个字符。一个字符可能占了几个字节。字节是说内存的

3.计算机只能处理数字。文本转换为数字才能处理。

一个字节(byte)有8个比特(bit)

所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255)

4.

str字符串



事情是这样的,美国人发明了计算机之后只把他们所使用的127个字符编到了计算机里。

这个编码表被称为ASCII编码(来再看一下小写asscii)。

后来计算机到了中国,然后中国制定了GB2312编码,同理日文Shift_JIS;韩文Euc-kr

Unicode把所有语言都统一到一套编码里避免乱码。(最常用的是用两个字节表示一个字符。现代操作系统和大多数编程语言都直接支持Unicode。)

ASCII编码和Unicode编码的区别:ASCII编码是1个字节,而Unicode编码通常是2个字节。

A用ASCII编码是十进制的65,二进制的01000001

如果把ASCII编码的A用Unicode编码,只需要在前面补0就可以,因此,A的Unicode编码是00000000 01000001

那么问题来了,Unicode编码占内存a

于是有了“可变长编码”的UTF-8编码,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。


其实就是你得知道这么个事:





【正事】

一.Python的字符串

Python 3版本中,字符串是以Unicode编码的,即Python的字符串支持多语言

1.单个字符:

ord('')字符转编码

chr()编码转字符

2.我不会十六进制转十进制所以2.不重要

3.str→bytes

Unicode表示的str(字符串)通过''.encode('')方法可以编码为指定的bytes(字节)

注:Python对bytes类型的数据用带b前缀的单引号或双引号表示

在bytes中,无法显示为ASCII字符的字节,用\x##显示。不知道说的什么所以划了

4.bytes→str

b''.decode('')

5.如果bytes中只有一小部分无效的字节,可以传入errors='ignore'忽略错误的字节:

6.len('')计算str的字符数,计算bytes的字节数

【注】为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。

7.

#!/usr/bin/env python3

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

屁猪说:

二、格式化

我们经常会输出类似'亲爱的xxx你好!你xx月的话费是xx,余额是xx'   so...

1.%

%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。

格式化整数%d浮点数%f还可以指定是否补0和整数与小数的位数:


如果你不太确定应该用什么,%s永远起作用,它会把任何数据类型转换为字符串。

2.format()没看明白呢,未完待续...太多了看不明白自行百度(不想看,以后再说)








2020.4.30复习:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容