Python——基础数据类型(补充)
1.基础数据类型汇总补充
(1)小数据池:
为了节省空间,数字和字符串有,其他的没有【了解】
数字:-5---256之间的数字共用一个内存地址
#(1)i1 = i2 id(i1) == id(i2)
i1 = 6
i2 = 6
print(id(i1),id(i2)) #id(i1)=1436311936 id(i2)=1436311936
#(2)i1 = i2 id(i1) != id(i2)
i3 = 300
i4 = 300
print(id(i1),id(i2)) #id(i1)=1683866035312,id(i2)=1683866623792
字符串:
不能含有特殊字符,aa和aa地址相同,aa+和aa+地址不同
单个字符*数字(<=20)时同一个地址,多于一个字符/大于等于21则不是同一个地址
(2)列表 list

(3)str和bytes区别
s = 'alex's1 = b'alex'print(s,type(s)) #alex <class 'str'>print(s1,type(s1)) #b'alex' <class 'bytes'> s = '中国'
print(s,type(s))
s1 = b'中国'print(s1,type(s1)) #SyntaxError: bytes can only contain ASCII literal characters.
2. 编码
(1)ascii---python2
A:00000010 8位 一个字节
(2)unicode
A:00000000 00000001 00000010 00000100 32位 四个字节
中:00000000 00000001 00000010 00000110 32位 四个字节
(3)utf-8---python3
A:00100000 8位 一个字节
中:00000001 00000010 00000110 24位 三个字节
(4)gbk---终端
A:00000110 8位 一个字节
中:00000010 00000110 16位 两个字节
<1> 各个编码之间的二进制不能互相识别,会产生乱码。
<2> 文件的储存和传输不能是Unicode(只能是utf-8,utf-16,gbk,gbk2312,ascii等)
(5)Python3中的编码
str进行存储和传输之前,需要先将str(Unicode)转换成bytes(utf-8/gbk),再进行传输
str 在内存中是用Unicode编码的
bytes 和str很相似,唯一区别是编码方式不同
对于英文:
str: 表现形式:s = 'alex'
编码方式:010101010 Unicode
bytes:表现形式:s = b'alex'
编码方式:000101010 utf-8 gbk...
对于英文:
str: 表现形式:s = '中国'
编码方式:010101010 Unicode
bytes:表现形式:s = b'x\e91\e91\e01\e21\e31\e32'
编码方式:000101010 utf-8
encode:编码Unicode--->gbk/utf-8,如何将str--->bytes(可以设置编码方式)
# (1)英文
s1 = 'alex'
s11 = s1.encode('utf-8')
print(s11) #b'alex'
s11 = s1.encode('gbk')
print(s11) #b'alex' # (2)中文
s2 = '中国'
s22 = s2.encode('utf-8') #24位,3个字节,表示一个字符
print(s22) #b'\xe4\xb8\xad\xe5\x9b\xbd'
s22 = s2.encode('gbk') #16位,2个字节,表示一个字符
print(s22) #b'\xd6\xd0\xb9\xfa'
3. =、==、is、id
(1)= : 赋值
(2)==:比较-----值是否相等
(3)is :比较-----内存地址
(4)id : 内存地址
Python——基础数据类型(补充)的更多相关文章
- python基础数据类型补充
python_day_7 一. 今日主要内容: 1. 补充基础数据类型的相关知识点 str. join() 把列表变成字符串 列表不能再循环的时候删除. 因为索引会跟着改变 字典也不能直接循环删除.把 ...
- Python基础数据类型补充及深浅拷贝
本节主要内容:1. 基础数据类型补充2. set集合3. 深浅拷贝主要内容:一. 基础数据类型补充首先关于int和str在之前的学习中已经讲了80%以上了. 所以剩下的自己看一看就可以了.我们补充给一 ...
- python基础数据类型补充以及编码的进阶
一.基本数据类型的补充循环列表改变列表大小的问题#请把列表中索引为基数的元素写出l1=[1,2,3,4,5,6]for i in l1: if i%2!=0: print(i)结果:135二:基本数据 ...
- python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝
1. 基础数据类型补充 li = ["李嘉诚", "麻花藤", "⻩海峰", "刘嘉玲"] s = "_&qu ...
- python之数据类型补充、集合、深浅copy
一.内容回顾 代码块: 一个函数,一个模块,一个类,一个文件,交互模式下,每一行就是一个代码块. is == id id()查询对象的内存地址 == 比较的是两边的数值. is 比较的是两边的内存地址 ...
- Python基础数据类型-列表(list)和元组(tuple)和集合(set)
Python基础数据类型-列表(list)和元组(tuple)和集合(set) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客使用的是Python3.6版本,以及以后分享的 ...
- python基础数据类型考试题
Python基础数据类型考试题 考试时间:两个半小时 满分100分(80分以上包含80分及格) 一,基础题. 1,简述变量命名规范(3分) 2,字节和位的关系 ...
- Python基础数据类型题
Python基础数据类型 题考试时间:三个小时 满分100分(80分以上包含80分及格)1,简述变量命名规范(3分) 1.必须是字母,数字,下划线的任意组合. 2.不能是数字开头 3.不能是pytho ...
- Python基础数据类型之集合
Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...
随机推荐
- 【Error】IOError: [Errno 22] invalid mode
使用python打开或写入文件时会报以下错误IOError: [Errno 22] invalid mode,比如打开f:\nnpm.txt时,可以在地址前面加上r或R,即r'f:\nnpm.txt' ...
- FreeMarker初探--安装FreeMarker
这里安装FreeMarker相当简单,不需要真正的安装过程.仅仅是拷贝 lib/freemarker.jar 到你 Java 应用程序的路径中,让类加载器可以发现它.比如,如果你在 Web 使用了 F ...
- HDU 2669 Romantic (扩展欧几里得定理)
Romantic Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- React之前端路由
通过之前的博客介绍,对于react,我们已经可以写单个组件.复合组件/单个页面了,接下来就是实现页面的跳转了,这个时候,我们就需要前端路由了. 一.react-router-dom 安装这个依赖,th ...
- 【转】react-native开发混合App-github开源项目
http://www.lcode.org/study-react-native-opensource-one/ http://gold.xitu.io/entry/575f498c128fe10057 ...
- RxJava 1.x 笔记:创建型操作符
本篇文章是阅读 官方文档 的笔记. 作者:shixinzhang(百度搜索 "shixinzhang CSDN" 即可找到我) RxJava 也用了有段时间,那么多操作符总不想去记 ...
- 配置wampserver 虚拟主机
1.修改http.conf 找到,#Include conf/extra/httpd-vhosts.conf,修改为(有的版本服务器,默认是开启的): 2.配置httpd-vhosts.conf文件, ...
- Scrapy爬虫库使用初体验
安装pip install Scrapy 中间可能会遇到的问题: 超时,网络问题需要多次尝试 缺少vc++库,官网可以下载 win32api缺失,https://sourceforge.net/pro ...
- 自己手写一个SpringMVC框架
前端框架很多,但没有一个框架称霸,后端框架现在Spring已经完成大一统.所以学习Spring是Java程序员的必修课. Spring框架对于Java后端程序员来说再熟悉不过了,以前只知道它用的反射实 ...
- CentOS6 mail邮件服务配置
mail服务配置 环境: [root@m01 ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@m01 ~]# uname -m ...