博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2018.8.2 python中is和==的区别
阅读量:5116 次
发布时间:2019-06-13

本文共 995 字,大约阅读时间需要 3 分钟。

一、is 和==的区别

 1、is 比较的是左右两边的内存地址, ==比较的是左右两边的值。

 2、id()

       通过id()可以查看一个变量表示的值得内存中的地址。

s = 'alex's1 = 'alex'print(id(s))    #34714768print(id(s1))   #34714768lst = [1,2,4]lst1 = [1,2,4]print(id(lst))   #37176008print(id(lst1))   #38972616
字符串,部分数字的数据地址是一样的,而列表,元组,字典的数据地址是不一样的,这是因为python中有一个小数据池的存在。 3、小数据池 小数据池(常量池):把我们使用过的值存储在小数据池中,供其他的变量使用。 小数据池给数字和字符串使用,其它数据类型不存在。 对于数字:       -5~256是会被加到小数据池中的,每次使用都是同一个对象。 对于字符串:       1)如果是纯文字信息和下划线,那么这个对象会被添加到小数据池       2)如果是带有特殊字符的,那么不会被添加到小数据池,每次都是新的       3)如果是单一字母*n的情况,a*20,在20个单位内是可以的,超过20个单位就不会添加到小数据池中。 二、编码和解码 注意:在python2中默认使用的是ASCII码,不支持中文,如果需要在python2中更改编码需要在文件的开始编写:
# -*-encoding:utf-8 -*-

          在python3中:内存中使用的是unicode。

1、编码(encode)

编码之后的数据类型是bytes类型的数据

bytes的表现形式:

              1)英文    编码之后的结果和源字符串一致   如b‘alex’

              2)中文     编码之后的结果根据编码的不同,编码结果也不同,一个中文的UTF-8是三个               字节,GBK是两个字节

字符串在传输时转化成bytes=>encode(字符集)来完成

2、解码(decode)

在网络传输和存储的时候我们python是保存和存储的bytes类型,那么在对方接收的时候,接收到的也是bytes类型,我们可以使用decode()来进行解码操作,把bytes类型的数据还原回我们熟悉的字符串:

 

转载于:https://www.cnblogs.com/fengchong/p/9409703.html

你可能感兴趣的文章
新手必看的jQuery优化笔记十则
查看>>
博客园何时会被简书们超越
查看>>
Python模拟登录练习
查看>>
【线段树分治 01背包】loj#6515. 「雅礼集训 2018 Day10」贪玩蓝月
查看>>
Error accessing PRODUCT_USER_PROFILE
查看>>
Spring mvc 特殊字段的注入
查看>>
JS动画代码
查看>>
泥泞的道路
查看>>
简单爬虫
查看>>
Swift - UIDatePicker
查看>>
近期计划
查看>>
Storm入门(一)原理介绍
查看>>
bzoj 3351 [ioi2009]Regions
查看>>
ascii函数
查看>>
代理模式
查看>>
PS设计漂亮网站主页图片的实例教程
查看>>
个人工作总结01
查看>>
[USACO09NOV]硬币的游戏A Coin Game
查看>>
第二周课程进度
查看>>
PowerPivot excel 2010 for sql
查看>>