代码块:

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:西西

python之路(内存,小数据池,编码等)的更多相关文章

  1. python之路---06 小数据池 编码

    二十二.小数据池, id()    进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存.   在cmd命令窗口中几乎都不会缓存   不同的解释器有 ...

  2. Python基础知识(六)------小数据池,集合,深浅拷贝

    Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: ​ 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : ​ 一个文 ...

  3. python 全栈开发,Day6(is,小数据池,编码转换)

    一.is a = 100 b = 100 print(a == b) print(a is b) 执行输出: TrueTrue 查看内存地址,使用id函数 print(id(a)) print(id( ...

  4. Python基础学习Day6 is id == 区别,代码块,小数据池 ---->>编码

    一.代码块 Python程序是由代码块构造的.块是一个python程序的文本,他是作为一个单元执行的. 代码块:一个模块,一个函数,一个类,一个文件等都是一个代码块. 而作为交互方式输入的每个命令都是 ...

  5. python:id与小数据池与编码

    一.id与小数据池 id:查的是内存地址 a = 100 b = 100 print(a == b)#比较的数值 print(a is b)#比较的是id print(id(a),id(b))#id相 ...

  6. python --- 06 小数据池 编码

    一.小数据池, id()    进行缓存 1.小数据池针对的是: int, str, bool 2.在py文件中几乎所有的字符串都会缓存.   在cmd命令窗口中几乎都不会缓存   不同的解释器有不同 ...

  7. python基础4(小数据池,编码,深浅拷贝)

    1.==与is == 比较值是否相等 is比较内存地址是否相同 2.小数据池 为了节省内存,当数据在一个范围里的时候,两个值相同的变量指向的是小数据池里的同一个地址 数字范围:-5 ~ 256 num ...

  8. is和==的区别,小数据池,编码

    1   is  和  == 的区别 1>    id( )表示我们可以通过它来查到在内存中的地址 s = "alex" lst = [1,2, 4] lst = [1, 2, ...

  9. python代码块,小数据池,驻留机制深入剖析

    一,什么是代码块. 根据官网提示我们可以获知: 根据提示我们从官方文档找到了这样的说法: A Python program is constructed from code blocks. A blo ...

随机推荐

  1. 五种编程语言解释数据结构与算法——顺序表1(理论与C语言实现)

    1.线性表的分类 2.线性表的定义及其基本操作 2.1.定义:线性表是具有相同类型的n(n>=0)个元素的有序序列,其中n为表长,当n=0时,该表为空表. 2.3.线性表的逻辑结构为: 2.4. ...

  2. vuejs之vue和springboot后端进行通信

    一.新建一个vue项目,建立好后的相关文件 查看一下新建好的vue项目的结构: 当前各个文件中的内容: App.vue:主入口 <template> <div id="ap ...

  3. GO语言slice详解(结合源码)

    一.GO语言中slice的定义 slice 是一种结构体类型,在源码中的定义为: src/runtime/slice.go type slice struct { array unsafe.Point ...

  4. mysql8.0编译安装

    #下载依赖 yum install -y ncurses ncurses-devel cmake bison bison-devel openssl openssl-libs openssl-deve ...

  5. 数据库主从监控脚本,数据传到influxdb

    #!/bin/bash port=`/usr/sbin/ss -ntlp | | awk '{print $4}' | awk -F":" '{print $2}'` array= ...

  6. 制作openstack的windows server 2012r2镜像

    1. 基础环境安装 yum groupinstall Virtualization "Virtualization Client" yum install libvirt 2. 启 ...

  7. 外网访问oracle 很慢

    一台oracle服务器  对外网开放服务,外网连接后查询速度很慢,内网查询非常快.应该是这个cisco的防火墙有问题,查了很久 没有找到原因. 临时解决方法,在内网再建一台 跳转服务器,外网查询数据库 ...

  8. Day3前端学习之路——CSS基本知识

    课程目标 初步了解什么是CSS,掌握基本的CSS概念,语法,针对选择器特殊性的计算处理,以及学习如何设置一些简单的样式 任务一:回答问题 1.什么是CSS,CSS是如何工作的? CSS 指层叠样式表 ...

  9. pikachu-越权漏洞(Over Permission)

    一.越权漏洞概述 1.1 概述     由于没有用户权限进行严格的判断,导致低权限的账户(例如普通用户)可以去完成高权限账户(例如管理员账户)范围内的操作. 1.2 越权漏洞的分类 (1)平行越权   ...

  10. ASP.NET Core MVC学习笔记

    最近由于疫情紧张,遂在家办公,在领导的带领下,学习了一下.Net Core MVC. 一,构建web应用 1.选择c#-所有平台-web  找到ASP.NET Core web应用程序 2.项目命名之 ...