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的更多相关文章

  1. python 基础之数据类型

    一.python中的数据类型之列表 1.列表 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 二.列表常用操作 >切片>追加>插入>修改& ...

  2. Python学习 之 数据类型(邹琪鲜 milo)

    1.Python中的数据类型:数字.字符串.列表.元组.字典 2.数字类型包括整型.长整型.浮点型.复数型 type(number):获取number的数据类型 整型(int):范围:-2,147,4 ...

  3. (八)python的简单数据类型和变量

    什么是数据类型? 程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种. 例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示 名字:德玛西亚------ ...

  4. Python基础之数据类型

    Python基础之数据类型 变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值 ...

  5. Python学习之数据类型

    整数 Python可以处理任意大小的整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等. 用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如: ...

  6. python的组合数据类型及其内置方法说明

    python中,数据结构是通过某种方式(例如对元素进行编号),组织在一起数据结构的集合. python常用的组合数据类型有:序列类型,集合类型和映射类型 在序列类型中,又可以分为列表和元组,字符串也属 ...

  7. python学习第九讲,python中的数据类型,字符串的使用与介绍

    目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...

  8. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  9. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  10. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

随机推荐

  1. 文件搜索命令——grep

    1.查找关键字在文件中的一行的信息: 2.不区分大小写进行查询: #号开头表示注释行,并不是配置文件. 3.grep -v(排除查找): -v 可以去除掉某些没用的行,以上命令可以去除掉以#号开头的注 ...

  2. JVM参数笔记

    Java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jvm实现都满足, ...

  3. 实验1c语言开发环境使用和数据类型,运算符和表达式

    /*this is first c program*/ # include<stdio.h> int main() { printf("Hello Mars!"); ; ...

  4. python3-django+uwsgi+supervisor+nginx跳坑指南(记录)

    首先运行django项目:在项目目录内: python manage.py runserver 0.0.0.0:8000 外部服务器访问:http://www.xxx.com:8000/ 可以正常运行 ...

  5. Note_3.31

    2019/4/1 奇奇怪怪的笔记 整理了一些之前没有写过的东西,把它们拼在一起,并没有什么逻辑可言qwq FWT快速沃尔什变换 \[ FWT(A)=merge(FWT(A0),FWT(A0+A1)) ...

  6. [技术博客]采用Qthread实现多线程连接等待

    采用Qthread实现多线程连接等待 ​ 本组的安卓自动化测试软件中,在测试开始前需要进行连接设备的操作,如下图左侧的按钮 ​ ​ 后端MonkeyRunner相关操作的程序中提供了connect() ...

  7. centos7安装yum

    由于不小心把自带的yum给卸载了,卸载命令:rpm -qa yum: 在浏览器打开链接:http://mirrors.163.com/centos/6/os/x86_64/Packages/下载这四个 ...

  8. IfcMaterial

    IfcMaterial is a homogeneous or inhomogeneous substance that can be used to form elements (physical ...

  9. 解决 android push framework.jar 不生效的问题

    . . . . . 在 Android 采用 ART 虚拟机后,为了提高运行时效率,在编译期间会将 jar 包中的 dex 文件编译为 odex.vdex 等文件.而这些文件并不存放在 framewo ...

  10. Nexus上传npm包

    1.创建npm仓库 私服仓库npm-hosted 代理仓库npm-proxy npm-group 创建成功 在工程的根目录下创建文件 .npmrc registry=http://xxx:8081/n ...