Python_驻留机制

 1 #coding=utf-8
 2 #coding:utf-8
 3 #- * -coding:utf-8 - * -
 4
 5 ‘‘‘以上为注明字符串的编码格式‘‘‘
 6                                        #驻留机制
 7 ‘‘‘Python支持短字符串驻留机制,对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本,
 8 与其他类型数具有相同的特点。然而这一特点并不适用于长字符串,长字符串不遵守驻留机制‘‘‘
 9 a=‘1234‘
10 b=‘1234‘
11 print(id(a)==id(b)) #短字符串
12 #True
13 a=‘1234‘ * 50   #长字符串
14 b=‘1234‘ * 50
15 print(id(a)==id(b))
16 #False
17 #判断是否为字符串,可使用内置方法isinstace()或type()
18 print(type(‘字符串‘))
19 #<class ‘str‘>
20 print(type(‘字符串‘.encode(‘gbk‘)))
21 #<class ‘bytes‘>
22 print(bytes)
23 #<class ‘bytes‘>
24 print(isinstance(‘中国‘,str))
25 #True
26 print(type(‘中国‘)==str)
27 #True
28 print(type(‘字符串‘.encode())==bytes)
29 #True
30 print(type(‘字符串‘)==bytes)
31 #True
32
33
34 #转义字符的使用
35 print(‘Hello\nWorld‘)   #换行
36 # Hello
37 # World
38 print(oct(65))  #转换成8进制
39 # 0o101
40 print(‘\101‘)   #3位8进制数对应的字符
41 # A
42 print(‘\x41‘)   #2位十六进制数对应的字符
43 # A
44 print(ord(‘张‘)) #以一个字符(长度为1的字符串)作为参数,返回对应的ASCII数值,或者Unicode数值,如果所给的Unicode字符超出了你的Python定义范围,则会引发一个TypeError的异常
45 # 24352
46 print(hex(15))  #转换一个整数对象为十六进制的字符串表示
47 print(‘\u8464‘)
48 # 葤
时间: 2024-08-03 03:29:31

Python_驻留机制的相关文章

python 的字符串驻留机制

我们都知道python中的引用计数机制,相同对象的引用其实都是指向内存中的同一个位置,这个也叫做“python的字符串驻留机制”.其他的就不多说了,自行研究. 重点!!!!!! python的引用计数机制,并不是对所有的数字,字符串,他只对“  [0-9] [a-z] [A-Z]和"_"(下划线)  ”有效,当字符串中由其他字符比如“! @ # ¥ % -”时字符驻留机制是不起作用的. 看下图: 当字符串中没有特殊字符时(‘abc’),引用指向同一对象: 当字符串中有特殊字符时(‘-a

pyhon学习第六天 代码块,小数据池(缓存机制,驻留机制),is == id =,字符编码

1.代码块 能够实现某项功能的:模块,函数,类,文件 ##在python的交互模式下,一行代码就是一个代码块分别储存在不同文件中 2. id is ==和= =是赋值 ==比较两边数据内容是否相等 is 比较内存地址是否一致(内存里的id都是唯一的) id() 查看数据的id地址 3.小数据池(缓存机制,驻留机制): 小数据池是python对内存做的一个优化 优化内容:python将-5到256的整数.以及一定规律的字符串提前在内存找那个创建了固定的储存空间 适用小数据池的数据类型:*****

(一)Python入门-2编程基本概念:18字符串-驻留机制-内存分析-字符串同一判断-值相等判断

一:字符串驻留 仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中. Python 支持字符串驻留机制,对于符合标识符规则的字符串(仅包含下划线(_).字母 和数字)会启用字符串驻留机制驻留机制. 二:字符串比较和同一性 我们可以直接使用==,!=对字符串进行比较,是否含有相同的字符. 我们使用is / not is,判断两个对象是否为同一个对象.比较的是对象的地址,即 id(obj1)是 否和 id(obj2)相等. 三:成员操作符 in /not in 关键字,判断某个字符(

Python的驻留机制(仅对数字,字母,下划线有效)

Python的驻留机制及为在同一运行空间内,当两变量的值相同,则地址也相同. 举例: a = 'abc' b = 'abc' print(id(a)) # 3206115244944 print(id(b)) # 3206115244944 以上示例为驻留机制有效的情况下的内存地址. 以下为加入非数字.字母.下划线内容的驻留机制验证,结果为无效 c = 'ab c' d = 'ab c' print(id(c)) # 3206116210144 print(id(d)) # 3206115244

Python 中的驻留机制:小数据池和代码块

Python 中的驻留机制:小数据池和代码块 Python 中的驻留机制主要有两个:小数据池和代码块.驻留机制并不是学习 Python 过程中特别重要的概念,我们学习小数据池的目的主要有两个方面: 解决日后写代码过程中可能出现的疑惑.在后期开发中,能 明确 知道有些代码为什么不能正常使用 找工作面试时或多或少可能被问到,关键时刻起到装 X 的作用 先补充一个关键字 is.is(是) 和 ==(等于) 的作用十分相似,我们在这里将它们进行一个对比: == : 官方:判断等号两边的内容是否相同 白话

Python中的字符串驻留

C#中的字符串驻留 熟悉.NET的人都应该知道C#中的字符串驻留机制,.NET维护了一个驻留池,它会把在编译期间就相同的字符串只保留一份拷贝.如果仅在运行期间值才相同的字符串变量,.NET不会为这个2个相同的字符串变量指向同一份引用的.不过.NET提供了一个方法,让开发人员可以强制将两个相同的字符串指向同一个引用,使用String类中的Intern方法. string s1 = "!QAZ2wsx3$%5$$%fe _ ###[email protected]"; string s2 

is == id 用法, 代码块,缓存机制,深浅copy,集合

01 内容大纲 is == id 用法 代码块 同一代码块下的缓存机制 不同代码块下的缓存机制(小数据池) 总结 集合(了解) 深浅copy 02 具体内容 1.id is == id是内存地址. 你只要创建一个数据(对象)那么都会在内存中开辟一个空间,将这个数据临时加在到内存中,那么这个空间是有一个唯一标识的,就好比是身份证号,标识这个空间的叫做内存地址,也就是这个数据(对象)的id.可以利用id()去获取这个数据的内存地址. == 是比较的两边的数值是否相等. is 是比较的两边的内存地址是

Python 小数据池、代码块以及代码块缓存机制

按照惯例,吟诗一首:苏轼<江城子·乙卯正月二十日夜记梦> 十年生死两茫茫,不思量,自难忘.千里孤坟,无处话凄凉. 纵使相逢应不识,尘满面,鬓如霜. 夜来幽梦忽还乡,小轩窗,正梳妆.相顾无言,惟有泪千行. 料得年年肠断处,明月夜,短松冈. 1. is 和 == 之间的区别 在讲解代码块及其缓存机制之前有必要搞清楚is和==之间的区别 开门见山直接说:==是比较两边变量的值是否相同,is是比较两边变量的内存地址是否相同,在python中内存地址如何获取,当然是使用id(item)函数获取了 举两个

python变量存储的缓存机制

python变量存储的缓存机制 1.  在同一文件(模块)里 1.对于整型而言,-5~正无穷范围内的相同值 id一致 2.对于浮点数而言,非负数范围内的相同值 id一致 3.布尔值而言,值相同情况下,id一致 4.复数的id标识都不相同(在 实数+虚数 这样的结构中) 5.字符串而言,字符串值相同情况下,id一致 6.列表,元组,字典,集合无论什么情况 id标识都不同(但空元组的id标识一样) 2.  不同文件(模块)里,部分数据驻留小数据池中 python提前在内存中创建了-5~256 范围的