代码块:

python真正的代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块。

但是,在python终端交互模式下,每一条代码都是一个代码块

python在同一个代码块中的变量,初始化对象的命令时,它会将变量与值的对应关系放到一个字典中,

如果下面的代码在遇到初始化对象的命令,他会先从字典中寻找,如果存在相同的值,他会复用,指向的都是同一个内存地址。

>>> i1 = 1000 可以理解为这一行在一个文件中。

>>> i2 = 1000 可以理解为这一行在另一个文件中。

内存地址:用于保存数据到内存条的物理地址,查询一般用ID,检查一般用is或'=='

==:

name = 'alex' # 赋值

print('alex' == 'alex') # 数值相同

result:true

id:数据物理内存地址,在内存中地址是唯一的,如果两个变量指向的ID相同,则证明他们在内存中是同一个

name = 'alex123'

name1 = 'alex123'

print(id(name),id(name1)) # 2370269674608 2370269674608

is:判断两个变量的物理内存地址是否相同,如果is是True, == 一定是True

name = 'alex123'

name1 = 'alex123'

print(name is name1) #True

print(name == name1)#True

小数据池:python对内存做的一个优化,他将 -5 ~256 的整数,以及一定规则的字符串,提前在内存中创建了池,容器,可以节约内存,提高效率

符合规则的字符串:字母,数字,下划线组成,长度不超过20的字符串,含有特殊字符的字符串会单独创建一个内存地址.

python对于不同的代码块:初始化对象的命令时,他会从小数据池中寻找。

编码:数据的保存解读方式,分为ASCII,Unicode,utf-8,gbk,编码之间不能互相识别.网络传输或硬盘保存的0101数据,必须以非Unicode方式传输保存

ASCII:字母,数字.特殊字符

都是8个字节

Unicode:万国码,包含世界上所有的文字

都是32个字节,浪费资源

utf-8:英文,非英文,中文

英文:8个字节

非英文:16个字节

中文:24个字节

gbk国标:字母,数字,特殊字符,中文。

字母:8位

中文:16位

其中:

python的str编码都为Unicode,如果需要传输和保存,需要转为bytes数据类型

区别:

英文字母:

str:

表现形式:s1 = 'abby'

内部编码方式:unicode

bytes:

表现形式:b1 = b'abby'

内部编码方式:非unicode

中文:

str:

表现形式:s1 = '西西'

内部编码方式:unicode

bytes:

表现形式:b1 = b'\xe5\xa4\xaa\xe7\x99\xbd'

内部编码方式:非unicode

str --- > bytes encode 编码

s1 = 'abby'

s2 = '西西'

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

print(b1)

result:b'abby'

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

print(b2)

result:b'\xe8\xa5\xbf\xe8\xa5\xbf' # utf-8 的bytes

bytes ---> str decode 解码

s2 = b2.decode('utf-8')

print(s2)

result:西西

最新文章

  1. C++ 应用处理异常崩溃(转载)
  2. CommonJS的模块规范
  3. Sql Server之旅——第三站 解惑那些背了多年聚集索引的人
  4. C++ Primer : 第十一章 : 关联容器之概述、有序关联容器关键字要求和pair类型
  5. ACM-经典DP之Monkey and Banana——hdu1069
  6. PHP WAMP关闭notice等提示
  7. .NET之美——C# 中的委托和事件
  8. Codeforces Round #280 (Div. 2) C. Vanya and Exams 贪心
  9. 利用传感器(sensor)实现微信摇一摇动画
  10. openssl安装问题导致nginx添加ssl模块失败
  11. C:\WINDOWS\system32\drivers\etc\hosts host文件夹里面的内容是什么?
  12. AWR报告生成
  13. SVN服务器搭建(2)
  14. Spring Cloud微服务架构图
  15. Generic XXE Detection
  16. 使用kubeadm安装kubernetes高可用集群
  17. Couldn’t load locSDK3
  18. 解决Sqoop报错Could not load db driver class: com.intersys.jdbc.CacheDriver
  19. 【ecshop】 完全清除版权信息
  20. MongoDB整理笔记の移除Shard Server

热门文章

  1. 【LaTeX】记录一下LaTeX的安装和使用
  2. 图像数组运算相关问题(nan/inf)
  3. NR / 5G - Uplink Carrier Waveform Generation
  4. 《Head first设计模式》之策略模式
  5. H5谷歌登录 webview错误
  6. python制作ico图标
  7. 【转载】详解linux下的串口通讯开发
  8. Java @Deprecated Annotation(注解)
  9. sublime中写python代码
  10. 利用js+ajax在jsp与servlet间进行简单数据交换