python基础小知识,is和==的区别,编码和解码
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)
49806088
>>> id(lst2)
49807112
>>> tu1 = (1,2)
>>> tu2 = (1,2)
>>> id(tu1)
49840328
>>> id(tu2)
49097800
>>> id(("哈哈哈哈哈哈"*10))
48426160
>>> id(("哈哈哈哈哈哈"*10))
48426160
#我们发现 字符串的地址是相同的,而列表和元组的地址是不同的
小数据池(常量池):把我们使用过得值存储在小数据池中,供其他的变量使用。小数据池给数字和字符串使用,其他数据类型不存在。
对于数字:-5~256是会被加到小数据池中的,每次使用都是同一个对象
对于字符串:A、如果是纯文字信息和下划线,那么这个对象会被添加到小数据池
B、如果是带有特殊字符的,那么不会被添加到小数据池中,每次都是新的
C、如果是单一字母*n的情况,'a'*20 ,在20个单位是可以的,超过20个单位就不会添加到小数据池中
注意:(在一般情况下),在py文件中,如果你只是单纯的定义一个字符串,那么一般情况下都是会被添加到小数据池中的。我们可以这样认为:在使用
字符串的时候,python会帮我们把字符串进行缓存,在下次使用的时候直接指向这个字符串即可,可以节省很多内存。
2)is 和 == 的区别:
==:判断左右是否相等和一致,比较的是内容
is:判断的是内存地址,id()的值来判断,判断的是内存地址
>>> print(s1 == s2)
True
>>> print(lst1 == lst2)
True
>>> print(s1 is s2)
True
>>> print(lst1 is lst2)
False
2、编码和解码encode()和decode()
1)encode() 编码 获取到的是编码之后的结果,bytes
2)decode() 解码 把bytes编程我们熟悉的字符串【用什么编码的,需要用什么解码】
1、encode()编码之后的内容是bytes类型的数据
1) 默认把字符串编码成utf-8的形式
2) 英文:编码之后结果还是英文
3) 中文:编码之后utf-8,一个中文占3个字节
4) encode(“GBK”)编码成GBK的形式,一个中文占2个字节
2、decode(“GBK”) 从别人那里读取到的是GBK编码格式,需要在括号中注明,解码之后是字符串
3、各种编码格式之间相互转化
python基础小知识,is和==的区别,编码和解码的更多相关文章
- 简述Python入门小知识
如今的Python开发工程师很受企业和朋友们的青睐,现在学习Python开发的小伙伴也很多,本篇文章就和大家探讨一下Python入门小知识都有哪些. 扣丁学堂简述Python入门小知识Python培训 ...
- 【python学习小知识】求绝对值和numpy和tensor的相互转换
一.python求绝对值的三种方法 1.条件判断 2.内置函数abs() 3.内置模块 math.fabs 1.条件判段,判断大于0还是小于0,小于0则输出相反数即可 # 法1:使用条件判断求绝对值 ...
- python 基础-文件读写'r' 和 'rb'区别
原文链接: python基础-文件读写'r' 和 'rb'区别 一.Python文件读写的几种模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别在哪里呢? 1.文件使用方式标识 'r ...
- 一、python基础相关知识体系
python基础 a. Python(解释型语言.弱类型语言)和其他语言的区别? 一.编译型语言:一次性,将全部的程序编译成二进制文件,然后在运行.(c,c++ ,go) 运行速度快.开发效率低 二. ...
- python全栈开发 随笔 'is' 和 == 的比较知识与区别 编码和解码的内容及转换
python 一. is 和 == 的区别; == 比较的是两边的值. a = 'alex' b = 'alex' print(a = b) #True a = 10 b = 10 print(a = ...
- Python基础-语法知识
——编程语言的发展史 机器语言 优点:执行速度够快 缺点:开发效率非常低 汇编语言 优点:执行效率相较于机器语言略低 缺点:开发效率相较于机器语言略高 高级语言 C.C++.C#.java.PHP.p ...
- python字典小知识
字典的小知识dic = {"name": "tom", "age": 23, "price": 110}# 01:提取键 ...
- Java基础小知识(一)
序言:“不积跬步,无以至千里.不积小流,无以成江海.”每一个庞大的知识架构都是由无数个小知识点慢慢积累起来的,没有量变的积累,就没有质变上的飞跃,成功往往离不开积累. 今天就和大家分享一些我在学习J ...
- python之is 和 == 的区别//编码和解码
一.is 和 == 的区别: 1 .id() 内存地址 2. == 比较 #比较两边的值 3. is 比较 #比较的是内存地址 数字,字符串,有小数据池 #数字小 ...
随机推荐
- bootstrap时时提醒填入数据是否与数据库数据重复
standardcode: { group: '.col-sm-4',//对应前台input的class占用宽度 validators: { notEmpty: { message: '请输入标准代号 ...
- #学习笔记#e2e学习使用(一)
本文仅限于记录本人学习的过程,以及怎么踩的坑,是如何解决的.逻辑肯定是混乱的,有用之处会抽出共通另行发帖. 最终目标:要运用于Vue项目中,进行功能测试甚至自动化测试. 一.e2e概念 理解:end ...
- Java应用程序
示例: public class HelloWorld { public static void main(String[] args) { System.out.println("Hell ...
- 用AutoHotkey重置Excel的Ctrl+Alt+方向键选择的范围
当前选择是蓝色单元格,原来的Ctrl+Alt+方向键,是选中[蓝色]到[红色]单元格的区域, 经过脚本修改后,则是[蓝色]到[黄色]的区域,应该更符合日常使用, 特别是表格比较大的时候,一直按住鼠标滚 ...
- March 5 2017 Week 10 Sunday
If you do what you love, you will never work a day in your life. 做你所爱的事情,你就不会觉得是在工作. Today, one mach ...
- 另一种方式实现事务码SE16里的结果集修改
注: 这种方法不同于网上流传的在调试器里修改fcode的那种解决方案. 使用场景:我们需要直接在开发系统的事务码SE16里修改某些结果集的值,但是在SE16的工具栏里看不见修改按钮: 解决方案 使用/ ...
- OC 内存管理(retain和release)
内存管理 retain和release简单使用 #import "Student.h" @implementation Student @synthesize age = _age ...
- idea 使用maven构建项目时,target bytecode version经常自动变化
解决方法:在工程的pom.xml中添加 <build> <plugins> <plugin> <groupId>org.apache.maven.plu ...
- react中修改antd的默认样式
最近在做react+antd项目.不可避免的遇到了修改antd默认样式的问题. 比如,table组件的表头背景色设置,如果直接使用元素样式,会修改整个项目的table.这里我用的方法是,给table添 ...
- System.Chare的成员
实现效果: 知识运用: System.Char的静态方法 (判断一个给定的字符是否为数字 字母 标点符号或其他) 实现效果: static void CharFunctionality() { Con ...