一. is  ==  的区别 双等表示的是判断是否相等, 注意. 这个双等比较的是具体的值.而不是内存地址 is 比较的是地址 编码回顾 除了了ASCII码以外, 其他信息不能直接转换 编码和解码的时候都需要制定编码格式.s = "我是文字"bs = s.encode("GBK") # 我们这样可以获取到GBK的⽂文字# 把GBK转换成UTF-8# 首先要把GBK转换成unicode. 也就是需要解码s = bs.decode("GBK") #…
Base64编码 广泛应用于MIME协议,作为电子邮件的传输编码,生成的编码可逆,后一两位可能有“=”,生成的编码都是ascii字符.优点:速度快,ascii字符,肉眼不可理解缺点:编码比较长,非常容易被破解,仅适用于加密非关键信息的场合 Base64是一种基于64个可打印字符来表示二进制数据的表示方法.由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符.三个字节 有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示.它可用来作为电子邮件的传输编码.在…
python中的URL编码和解码:test.py # 引入urllib的request模块 import urllib.request url = 'https://www.douban.com/j/search?q=刘德华&start=20&cat=1002' print('原来的url为: ' + url) # url编码 safe ='/:?=&' 表示/:?=&不转义 url_encode = urllib.request.quote(url, safe='/:?=…
python 一. is 和 == 的区别; == 比较的是两边的值. a = 'alex' b = 'alex' print(a = b) #True a = 10 b = 10 print(a = b) # True a= [1,2,3] b= [1,2,3] print(a = b ) #True is 比较的是内存地址         id( ) a = 'alex' print(id(a)) # 36942544 内存地址 # n = 10 # print(id(n)) #140819…
一.is  和  ==  的区别: 1  .id()   内存地址 2.  ==   比较    #比较两边的值 3.   is    比较   #比较的是内存地址 数字,字符串,有小数据池 #数字小数据池 :    -5~256 特点:节省内存 #.字符串中如果有特殊字符,那么不会添加到小数池中,他们的内存地址就不一样 字符串中单个*20以内他们的内存一样,超过20个就不会添加到小数据池;单个*以上内存地址就不一样 str : 1,不能有空格 2,长度不能超过20个字符 3,不能有特殊字符如:…
一.is 和 == 的区别 is : 进行比较,比较的是内存地址是否一致 ==:进行比较,比较的是值是否相等 1.小数据池: 数字小数据池范围 -5~256 字符串中如果有特殊字符则他们的内存地址不一样 字符串中单个*20以内他们的内存地址一样,单个*21以上的内存地址不一样 二.编码与解码 ascii码: 不支持中文, 支持英文,数字,符号 8位     一个字节 gbk码: 支持中文,英文,数字,符号 英文 16位 两个字节 中文 16位 两个字节 unicode码 万国码: 支持 英文,中…
导语: Python2和Python3中,因为默认字符集的不同而造成的麻烦,简直是程序员的梦魇!要彻底告别这个麻烦,就需要从本质上来理解编码和解码. 为什么要有编码? 对于不会英文的中国人来说,将英文翻译成中文,这个就叫做解码:而将中文翻译成英文,自然就是编码了! 这个道理在计算机中同样适用. 计算机只能识别0和1,任何文字对于计算机来说,就是0和1的排列组合.但是我们人类哪看得懂这种0和1的排列组合! 自然就需要将0和1的文字转换为我们能看得懂的文字,比如中文,英文等. 而这种0和1到文字的映…
二进制编码: --->ASCII:只能存英文和拉丁字符 一个字符占一个字节:8位 ------>gb2312:只能存6700多个中文: 1980年发表 ----------->gbk1.0:存了20000多  1995 年发表 ---------------------->gb18030:2000  27000多 万国码: ------->unicode:utf-32 一个字符占4个字节 ------->unicode:utf-16  一个字符占2个字节,能存65535…
1.n=0 n1=0 print(n==n1) ==>true  == 是比较两边的值 2.a="alex " b="alex" print(a==b)==> true     is是比较内存地址 3.a ='alex' print (id(a))  # 36942544  内存地址 #小数据库 -5--256  不过python不适用 因为 python是根据自己使用方便研发的工具 #字符中如果有特殊字符,他们的内存地址就不一样 #字符串中单个*20以…
1. 常用的编码 ASCII:只能表示一些字母,数字和特殊的字符,占一个字节 GBK:国家简体中文字符集和繁体字符集,兼容ASCII,占两个字节 Unicode:能够表示全世界上所有的字符,Unicode有人说占4个字节也有人说占2个字节,但中文占2个字节 UTF-8:Unicode的压缩版,占1~3个字节,其中中文占三个字节 2.补充:计算机表示的单位: bit: 位,计算机最小的表示单位 bytes:字节,最小的存储单位,1bytes=8bit,1bytes简写成1B 1KB = 1024B…
一.深浅拷贝 1.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy # 定义变量 数字.字符串 # n1 = 123 n1 = 'jack' print(id(n1)) # 赋值 n2 = n1 print(id(n2)) # 浅拷贝 n3 = copy.copy(n1) print(id(n3)) # 深拷贝 n4 = copy.deepcopy(n1) print(id(n4)) 二.字典.元组.列表 对于字典.元…
本节的主要内容: 基础数据类型补充 set集合 深浅拷贝 主要内容: 一.基础数据类型补充 字符串: li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_".join(li) print(s) # 李嘉诚_麻花藤_黄海峰_刘嘉玲 可以看出 join() 的作用是把列表中的字符串拼接起来,正好和 split() 相反 字符串转化成列表: split() 列表转化成字符串:join(…
Python深浅拷贝剖析 Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介绍一下这些概念之间的差别. 一.对象赋值 创建列表变量Alex,变量包含子列表,通过变量Alex给变量lzl赋值,然后对变量Alex的元素进行修改,此时lzl会有什么变化呢?让我们通过内存地址分析两者的变化 # 对象赋值 import copy #import调用copy模块 Alex = ["Alex", 28, ["…
集合 # 集合 ''' 集合是无序不重复的 ''' # 创建列表 l = list((1, 1, 1)) l1 = [1, 1, 1] print(l) print(l1) print("**************") # 创建集合 s = set('wjw') print(s, type(s)) print("-----------------") print(set("wjw")) print("+++++++++++++++++…
目录 1. 基础数据类型补充 2. set集合 3. 深浅拷贝 1. 基础数据类型补充 (1)join方法 join方法是把一个列表中的数据进行拼接,拼接成字符串(与split方法相反,split方法是把一个字符串切割成列表) In [1]: l1 = ['a', 'b', 'c'] In [2]: s1 = '' In [3]: for i in l1: # 如果不使用join方法需要自己使用循环拼接成字符串 ...: s1 += i + '-' In [4]: s1.strip('-') O…
%c 转换成字符(ASCII码值,长度为一的字符串) %r 有线使用repr()函数进行字符串转换 %s 有线使用str()函数进行字符串转换 %d or %i 转换成有符号十进制数 %u 转换成无符号十进制数 %o 转换成无符号八进制数 %x %X 转换成无符号十六进制数(x/X代表大小写) %e % E转换成科学计数法 %f %F 转换成浮点型 quest="what's your quest?" ':' . join(quest.split()) #"what's:yo…
1 文本和字节序列 我们都知道字符串,就是由一些字符组成的序列构成串,那么字符又是什么呢?计算机只能识别二进制的东西,那么计算机又为什么会显示我们的汉字,或者是某个字母呢? 由于最早发明使用计算机是美国人,他们为了解决了英语如何在电脑上显示,就制定了一套标准:ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码),主要用于显示现代英语和其他西欧语言.到目前为止共定义了128个字符,从0-127的二进制数分别…
json 源代码: Lib/json/__init__.py json.dump() import json numbers = [1, 2, 3, 4] with open('linshi.py', 'a') as f_obj: json.dump(numbers, f_obj) 解释: 用open()打开或者创建一个linshi.py文件,使用的方式是append,所以用参数"a". json.dump(obj, file)的第一个参数是要转化的对象,第二个参数是要输出的目的地(一…
对于字典.元祖.列表 而言,进行赋值.浅拷贝和深拷贝时,其内存地址的变化是不同的. 1.赋值 赋值,只是创建一个变量,该变量指向原来内存地址,如: 1 2 3 n1 = {"k1": "wu", "k2": 123, "k3": ["alex", 456]}    n2 = n1 2.浅拷贝 浅拷贝,在内存中只额外创建第一层数据 1 2 3 4 5 import copy    n1 = {"k1…
Python中的字符编码与解码困扰了我很久了,一直没有认真整理过,这次下静下心来整理了一下我对方面知识的理解. 文章中对有些知识没有做深入的探讨,一是我自己也没有去深入的了解,例如各种编码方案的实现方式等:二是我觉得只要提能对理解Python字符编码与解码的关键知识即可,想深入可以查其它资料. 文中的观点肯定有纰漏,只做参考,欢迎指正. Unicode 参考:http://baike.baidu.com/view/40801.htm Unicode是什么,这里不多说了,百科上面讲的很清楚了,这里…
1.深浅拷贝 在Python中将一个变量的值传递给另外一个变量通常有三种:赋值.浅拷贝.深拷贝 Python数据类型可氛围基本数据类型包括整型.字符串.布尔及None等,还有一种由基本数据类型作为最基本的元素所组成的像列表.元组.字典等. 在Python中基本数据类型的赋值.深浅拷贝没有任何意义,都是指向同一块内存地址,也不存在层次问题. 下面看基本数据类型的深浅拷贝 import copy n1 = 'abc' n2 = n1 n3 = copy.copy(n1) n4 = copy.deep…
需要知识准备,pyhton基本常识,python的小数据池概念. 深浅拷贝操作需要模块导入:import copy emmm,对于python中的两种数据类型来说. 1.数字,字符串 2.列表,元祖,字典等 浅拷贝:a = copy.copy(b) 如果b是第一种数据类型.a,b的内存地址一致. 如果b是第二种数据类型,拷贝后,a与b的第一层内存地址不同.也就是说id(a) != id(b),但a,b内元素的内存地址依然一致. 深拷贝:a = copy.deepcopy(b) 如果b是第一种数据…
作为一个自学python的小白,平时用到深浅拷贝的机会很少,因此对其也是一知半解.但是,作为一个立志成为后端工程狮的男人,眼里揉不了沙子,于是专门花时间补了补课,在此记录一下学习心得.    在讲深浅拷贝之前,首先看一下赋值: a = "小新" b = a print(b) >> "小新" b = "辣眼睛" # 对b重新赋值6 print(b)7 >> "辣眼睛" print(a) >>…
1.is和==的区别 1)id() 通过id()我们可以查看到一个变量表示的值在内存中的地址 >>> s1 = "Tanxu" >>> s2 = "Tanxu" >>> id(s1) 49754608 >>> id(s2) 49754608 >>> lst1 = [1,2,3] >>> lst2 = [1,2,3] >>> id(lst1)…
一.编码与解码 编码的过程其实就是采用一定的编码格式将unicode字符转换成str字符的过程 非ASCII码字符按字节为单位被编码成十六进制转义字符 解码采用的编码格式跟设置和环境有关 ascii 码: 不支持 中文 支持 英文 数字 符号 8位 一个字节 gbk码 国标: 支持 中文,英文,数字,符号 英文 16位 二个字节 中文 16位 二个字节 unicode 万国码 支持 中文,英文,数字,符号 英文 32 位 四个字节 中文 32位 四个字节 utf-8 长度可变的万国码 最少用8位…
在介绍is与==的区别前,我们先来了解一些新的知识:内存地址.小数据池. 1.内存地址(is 比较的就是内存地址) 获取内存地址的方法:id() a = "str" 2.小数据池 数字小数据池的范围:-5~256 str中如果有特殊字符他们的内存地址就不一样 字符串中单个字符*20以内他么的地址就一样,单个*21以上内存地址就不一样 *在pycha中一个py文件中所有相同的字符串,一般都是一个内存地址 a = "a"*20 b = "a"*20…
str.bytes和bytearray简介 str是字符数据,bytes和bytearray是字节数据.它们都是序列,可以进行迭代遍历.str和bytes是不可变序列,bytearray是可变序列,可以原处修改字节. bytes和bytearray都能使用str类型的通用函数,比如find().replace().islower()等,不能用的是str的格式化操作.所以,如有需要,参考字符串(string)方法整理来获取这些函数的使用方法. str str将各个字符组合在一起,以一种不可变序列进…
主要内容 小数据池,is和==区别 编码问题 小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度is 和 == 的区别 == 主要指对变量值是否相等的判断,只要数值相同一定为真 is 主要是对变量内存地址是否相同的判断,变量值相同不一定为真,但是变量内存地址相同,则变量一定相同. tips:可通过id()来查询变量id why: 1.为什么会存在不同变量共用一个内存地址的情况?1.前面说到的小数据池,即缓存.一部分字符串会被放在缓存中被公用,以提高处理速度 why…
一   is   与   ==   区别 ==    比较            比较的是值 例如: a = 'alex' b = 'alex' print(a == b) #True a = 10 b = 10 print(a == b) #True a = [1,2,3] b = [1,2,3] print(a == b) #True a = {1:2,':'b'} b = {1:2,':'b'} print(a == b) #True 总结:== 可以比较任何字类型, 字符串, 列表, 数…
一.is和==的区别 python中对象包含的三个基本要素分别是:id(身份标识),type(数据类型),value(值) is和==都是对对象进行比较判断的,但对对象比较判断的内容不同. ★==是python标准操作符中的比较操作符,用来判断两个对象的value是否相等. 如: a=6/2 b=3 print(a==b) #True ★is也被叫做同一性运算符,这个运算符比较判断的是对象的身份标识(id)是否相同, 如: x=[4,5,6] y=[4,5,6] print(x is y) #F…