Python的基本数据类型2
1、str(字符串)
1、切片
str = "你好,我是Python" s = str[0:4] #用法[start:end:step],指定开始下标和结束下标,step是步长,默认是1,可以不指定
#包括开头的下标,但是不包括结尾的下标,所以结果是:你好,我
2、字符串相关方法
str = "ok,你好,我是Python,我包括123456789,还包括abcdefghijklmnopQRstuvwxyz" str.capitalize() #首字母大写,其他都小写
str.upper() #字母全部转大写
str.lower() #全部字母转小写
str.swapcase() #大小写转换
str.title() #被字符隔开的首字母大写
str.center(90,"*") #将str居中,字符串拉长到90,其他字符补*
str.strip() #去左右两端空格
str.lstrip() #去左边的空格
str.rstrip() #去右边的空格
str.strip("abc") #去左右两端的abc
str.replace("","哈哈") #替换字符串,还可以指定替换的个数用法:replace("","",2)
str.split(",") #以逗号分割字符串
3、字符串查找的方法
str = "ok,你好,我是Python,我包括123456789,还包括abcdefghijklmnopQRstuvwxyz" str.startswith("o") #查询是否以o开头,返回True或False
str.endswith("z") #查询是否以z结尾,返回True或False
str.count("o") #查询o出现的次数
str.find("n") #查询n第一次出现的位置,没有返回-1
str.find("n",8,12) #切片查询n第一次出现的位置,没有返回-1
str.index("n") #查询n的索引位置,和find用法结果相同,但是找不到会报错
4、字符串条件判断
str = "ok,你好,我是Python,我包括123456789,还包括abcdefghijklmnopQRstuvwxyz" str.isalnum() #是否有字母和数字组成,只要含字母就为True
str.isalpha() #是否有字母组成,只要含字母就为True
str.isdigit() #是否有数字构成,不含小数点 len(str) #计算字符串的长度
2、字符串的编码以及常量池
1、is和==的区别
s = 'alex'
print(id(s)) #
s1 = "alex"
print(id(s1)) #
print(s == s1) #True lst = [1, 2, 4]
print(id(lst)) #
lst1 = [1, 2, 4]
print(id(lst1)) #
print(lst == lst1) #True #首先id是比较内存地址,==比较的是值
#其次str和int都是在常量池中,所以他的内存地址都相同,但是list不在常量池中,所以他的内存地址不相同
2、编码
1. ASCII : 最早的编码. ⾥里里⾯面有英⽂文⼤大写字⺟母, ⼩小写字⺟母, 数字, ⼀一些特殊字符. 没有中⽂文,
8个01代码, 8个bit, 1个byte
2. GBK: 中⽂文国标码, ⾥里里⾯面包含了了ASCII编码和中⽂文常⽤用编码. 16个bit, 2个byte
3. UNICODE: 万国码, ⾥里里⾯面包含了了全世界所有国家⽂文字的编码. 32个bit, 4个byte, 包含了了
ASCII
4. UTF-8: 可变⻓长度的万国码. 是unicode的⼀一种实现. 最⼩小字符占8位
2.1、字符串串在传输时转化成bytes=> encode(字符集)来完成
s = "alex"
print(s.encode("utf-8")) # 将字符串串编码成UTF-8
print(s.encode("GBK")) # 将字符串串编码成GBK
结果:
b'alex'
b'alex' s = "中"
print(s.encode("UTF-8")) # 中⽂文编码成UTF-8
print(s.encode("GBK")) # 中⽂文编码成GBK
结果:
b'\xe4\xb8\xad'
b'\xd6\xd0' #英文编码之后的结果和源字符串一致. 中文编码之后的结果根据编码的不同.
2.2、那么在对方接收的时候. 也是接收的bytes类型的数据. 我们可以使用decode()来进行解码操作. 把bytes类型的数据还原回我们熟悉的字符串:
s = bs.decode("GBK") # 解码
# 然后需要进⾏行行重新编码成UTF-8
bss = s.encode("UTF-8") # 重新编码
3、深拷贝和浅拷贝
1、浅拷贝
lst1 = ["何炅", "杜海涛","周渝民"]
lst2 = lst1.copy()
lst1.append("李嘉诚")
print(lst1)
print(lst2)
print(id(lst1), id(lst2))
结果:
两个lst完全不一样. 内存地址和内容也不一样. 发现实现了内存的拷贝 lst1 = ["何炅", "杜海涛","周渝民", ["麻花藤", "马芸", "周笔畅"]]
lst2 = lst1.copy()
lst1[3].append("无敌是多磨寂寞")
print(lst1)
print(lst2)
print(id(lst1[3]), id(lst2[3]))
结果:
['何炅', '杜海涛', '周渝民', ['麻花藤', '马芸', '周笔畅', '无敌是多磨寂寞']]
['何炅', '杜海涛', '周渝民', ['麻花藤', '马芸', '周笔畅', '无敌是多磨寂寞']]
4417248328 4417248328 #经过上面的方法,我们可以看出,浅拷贝只能拷贝最外一层的,如果拷贝深层的,就是直接指定内存地址了,不再是拷贝内容了
2、深拷贝
import copy
lst1 = ["何炅", "杜海涛","周渝民", ["麻花藤", "马芸", "周笔畅"]]
lst2 = copy.deepcopy(lst1)
lst1[3].append("无敌是多磨寂寞")
print(lst1)
print(lst2)
print(id(lst1[3]), id(lst2[3]))
结果:
['何炅', '杜海涛', '周渝民', ['麻花藤', '马芸', '周笔畅', '无敌是多磨寂寞']]
['何炅', '杜海涛', '周渝民', ['麻花藤', '马芸', '周笔畅']]
4447221448 4447233800 #都不一样了. 深度拷贝. 把元素内部的元素完全进行拷贝复制. 不会产生一个改变另一个跟着改变的问题
Python的基本数据类型2的更多相关文章
- python 基础之数据类型
一.python中的数据类型之列表 1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 二.列表常用操作 >切片>追加>插入>修改& ...
- Python学习 之 数据类型(邹琪鲜 milo)
1.Python中的数据类型:数字.字符串.列表.元组.字典 2.数字类型包括整型.长整型.浮点型.复数型 type(number):获取number的数据类型 整型(int):范围:-2,147,4 ...
- (八)python的简单数据类型和变量
什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种. 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示 名字:德玛西亚------ ...
- Python基础之数据类型
Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...
- Python学习之数据类型
整数 Python可以处理任意大小的整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如: ...
- python的组合数据类型及其内置方法说明
python中,数据结构是通过某种方式(例如对元素进行编号),组织在一起数据结构的集合. python常用的组合数据类型有:序列类型,集合类型和映射类型 在序列类型中,又可以分为列表和元组,字符串也属 ...
- python学习第九讲,python中的数据类型,字符串的使用与介绍
目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...
- python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍
目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...
- python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍
目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...
- python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍
目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...
随机推荐
- 文件搜索命令——grep
1.查找关键字在文件中的一行的信息: 2.不区分大小写进行查询: #号开头表示注释行,并不是配置文件. 3.grep -v(排除查找): -v 可以去除掉某些没用的行,以上命令可以去除掉以#号开头的注 ...
- JVM参数笔记
Java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...
- 实验1c语言开发环境使用和数据类型,运算符和表达式
/*this is first c program*/ # include<stdio.h> int main() { printf("Hello Mars!"); ; ...
- python3-django+uwsgi+supervisor+nginx跳坑指南(记录)
首先运行django项目:在项目目录内: python manage.py runserver 0.0.0.0:8000 外部服务器访问:http://www.xxx.com:8000/ 可以正常运行 ...
- Note_3.31
2019/4/1 奇奇怪怪的笔记 整理了一些之前没有写过的东西,把它们拼在一起,并没有什么逻辑可言qwq FWT快速沃尔什变换 \[ FWT(A)=merge(FWT(A0),FWT(A0+A1)) ...
- [技术博客]采用Qthread实现多线程连接等待
采用Qthread实现多线程连接等待 本组的安卓自动化测试软件中,在测试开始前需要进行连接设备的操作,如下图左侧的按钮 后端MonkeyRunner相关操作的程序中提供了connect() ...
- centos7安装yum
由于不小心把自带的yum给卸载了,卸载命令:rpm -qa yum: 在浏览器打开链接:http://mirrors.163.com/centos/6/os/x86_64/Packages/下载这四个 ...
- IfcMaterial
IfcMaterial is a homogeneous or inhomogeneous substance that can be used to form elements (physical ...
- 解决 android push framework.jar 不生效的问题
. . . . . 在 Android 采用 ART 虚拟机后,为了提高运行时效率,在编译期间会将 jar 包中的 dex 文件编译为 odex.vdex 等文件.而这些文件并不存放在 framewo ...
- Nexus上传npm包
1.创建npm仓库 私服仓库npm-hosted 代理仓库npm-proxy npm-group 创建成功 在工程的根目录下创建文件 .npmrc registry=http://xxx:8081/n ...