分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

is和==的区别以及encode()和decode()

发布时间:2023-09-06 02:03责任编辑:熊小新关键词:暂无标签

is和==的区别:

  要知道is和==的区别,我们先来了解一下id()方法,id方法的返回值就是对象的内存地址,简单来说就是这个会给我们一堆看不懂的数值

element = ‘杰伦哥‘print(id(element))

  程序运行结果: 1936055642416

  事实证明,这就是一堆数字,我们是真的看不懂

  为什么要提到这个?因为接下来我要说的is和==的区别就和这个有关

  我们都知道 == 是用来比较的两个对象是否相等的,但是is呢?其实is就是用来比较两个对象是否相同(注意,这里是相同),而且is是更深层次的比较,是直接比较内存地址

  为了提高内存利用率,对于一些简单的int对象和简单的str对象,python采取重复使用对象内存的方法,这样python就不会两次为那些简单的对象分配内存,而是只分配一次

a = 2b = 2print(a is b)

  结果: True

encode()和decode():

  从字面意思上来看,encode和decode分别是编码和解码.在python中,默认的编码方式是Unicode,即:

 ????decode ????????????????encodestr ---------> str(Unicode) ---------> str
u = ‘文字‘          # 指定字符串类型对象u 
str2 = u.encode(‘gbk‘)    # 以gbk编码对u进行编码,获得bytes类型对象
print(str2) 输出结果: b‘\xce\xc4\xd7\xd6‘

str3 = u.encode(‘utf-8‘)  # 以utf-8编码对u进行编码,获得bytes类型对象
print(str3) 输出结果: b‘\xe6\x96\x87\xe5\xad\x97‘


u1 = str2.decode(‘gbk‘)  # 以gbk解码str2
print(u1)
输出结果: 文字


u2 = str3.decode(‘utf-8‘)  #以utf-8解码str3
print(u2)
输出结果: 文字

  

is和==的区别以及encode()和decode()

原文地址:https://www.cnblogs.com/knowledgeYang/p/9285993.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved