Python基础-day06

python2

python3

 

python2

print(a) and print a

range()

xrange() 生成器

raw_input()

 

python3

print(a)

range()

input()

 

= 赋值

== 比较值是否相等

is 比较内存地址(比较两个对象是否为同一个)

id()

 

数字

字符串

其他类型

pycharm是辅助工具,有时候不准,还是得借助原生的python语法。

 

 

这个就不准。

 

 

这个才是准的。

 

这就是数字的小数据池概念。

范围 -5 -- 256

字符串也有小数据池概念。

1、不能有特殊字符。(比如@ #等)

2、s * 20 是同一个,s * 21就不是同一个了。

在一定范围内减少内存消耗。

 

 

编码复习

ascii

    A: 00000010 8位 一个字节

 

unicode

    A : 00000000 00000001 00000010 00000100 32位 四个字节

    : 00000000 00000001 00000010 00000110 32位 四个字节

 

utf-8

    A:  0010 0000 8位 一个字节

    : 00000001 00000010 00000110 24位 三个字节

 

gbk

    A: 00000110 8位 一个字节

    : 00000010 00000110 16位 两个字节

 

这些编码之间如何进行转码呢?转换的原理是什么?

相当于四个密码本,无法互通。

1、各个编码之间的二进制,是不能互相识别的,会产生乱码。

2、文字的传输(网络传输)和储存(硬盘存储)是0101格式。

    传输和储存的格式不能是unicode(太大,占空间),只能是utf-8、gbk、

    gb2312、ascii等。记住一句:不能用unicode。

 

python3:

1、str在内存中是以unicode的形式存在。

我们看到的文本文件,它的内容是一个大字符串。

所以在我内存中的字符串数据(unicode编码)是不能直接传输给你的,我需要

转换一下编码,比如转成utf-8、gbk等,然后再传给你。

2、bytes类型

新的数据类型。

str很像,区别就是编码方式。

 

 

对于英文

str : 表现形式 s = 'hello'

       编码方式 01010101 unicode

bytes 表现形式 s= b'hello'

       编码方式 00010101 utf-8 gbk

 

对于中文

str : 表现形式 s = '中国'

       编码方式 0101010101 unicode

bytes: 表现形式 s = b'x\e91\e91'

       编码方式 00010001 utf-8 gbk

 

s1 = 'yang'

# encode 编码,将str --> bytes,可以设置编码方式

s11 = s1.encode('utf-8')

 

s2 = '中国'

# encode 编码,将str --> bytes,可以设置编码方式

s22 = s2.encode('utf-8')

posted @ 2019-10-29 21:53  道霖  阅读(128)  评论(0)    收藏  举报