Python容器数据类型(字符串)
容器类型的进阶使用(字符串)
- 字符串的拼接与重复
- 字符串的跨行拼接
- 字符串的索引和切片
- 字符串的内置函数
- 字符串的转义
- 字符串和格式化和format内置函数的使用
本文目录
文章目录
- 容器类型的进阶使用(字符串)
- 本文目录
- 字符串的拼接和重复
- 字符串的跨行拼接
- 字符串的索引
- 字符串的切片
- 作用
- 使用方法
- 字符串的内置函数
- capitalize
- title
- upper
- lower
- swapcase
- count
- find和index
- startswith和endswith
- isupper和islower
- isdecimal
- ljust、rjust、center
- strip、lstrip、rstrip
- split和rsplit
- join
- replace
- 字符串的转义
- 转义字符的使用
- 主要的转义字符
- 格式化字符串
- 占位符
- 整型占位符
- 浮点型占位符
- 字符串占位符
- format函数的使用
- 顺序传参
- 索引传参
- 关键字传参
- 容器类型传参
- 填充符号的使用
- 进制转换符号的使用
字符串的拼接和重复
# 1、可以使用 + 将多个字符串拼接起来
res = 'hello' + ' ' + 'motherland'
print(res)# 2、可以使用 * 将一个字符串重复
res = 'hello ' * 3
print(res)"""
结果:
hello motherland
hello hello hello
"""
字符串的跨行拼接
接下来我们要学习的是python中的一个符号,跨行拼接符\
。
这个符号的作用就是如果一行的代码过长, 可以使用这个符号达到换行的作用,而原本语句的作用不变。
# 如果变量char1的定义没有 \ 就是语法错误。
char = 'hello'
char1 = \'hello'# 字符串的跨行拼接
# 使用 \ 可以实现将在不同行的字符串拼接起来,就是说在换行的时候,可以使用 \ 代替 +
char = 'hello' + 'motherland'
char1 = 'hello' \'motherland'
# 当然换行依然可以使用 +
char2 = 'hello' + \'motherland'
字符串的索引
我们之前说过,字符串和列表、元组这三种容器的共同特点是,有序、可获取,且都存在正逆向下标索引。
var = 'hello'
print(var[1]) # e
字符串的切片
切片顾名思义,就是将字符串进行分截,依此来获取所需要的元素(切片 == 截取)。
语法:string[开始索引:结束索引:间隔值]
作用
从开始索引所在的元素按照间隔值截取至结束索引前一个的元素,结束索引对应的元素不会被获取。
使用方法
[开始索引:] :截取从开始索引至最后一个元素,间隔值默认为1
var = 'hello motherland' res = var[5:] print(repr(res)) # ' motherland'
[:结束索引]:截取从第一个元素至结束索引前一个的元素,间隔值默认为1
var = 'hello motherland' res = var[:5] print(repr(res)) # 'hello'
[开始索引:结束索引]:截取从开始索引至结束索引前一个元素,间隔值默认为1
var = 'hello motherland' res = var[3:8] print(repr(res)) # 'lo mo'
[开始:结束:间隔]:和第三点相同,但是按照指定的间隔值截取
var = 'hello motherland'# 从指定位置截取 res = var[3:8:2] print(repr(res)) # 'l o'# 默认从0开始截取 res = var[:8:2] print(repr(res)) # 'hlom'# 倒序截取 res = var[::-1] print(repr(res)) # 'dnalrehtom olleh'
[::]、[:]:这两种为截取所有的字符串
# 截取所有的 var = 'hello motherland' # 从指定位置截取 res = var[:] print(repr(res)) # 'hello motherland' # 默认从0开始截取 res = var[::] print(repr(res)) # 'hello motherland'
字符串的内置函数
查看字符串的内置函数print(help(str))
函数 | 作用 |
---|---|
capitalize | 首字母大写 |
title | 每个单词的首字母大写 |
upper | 所有字母大写 |
lower | 所有字母小写 |
swapcase | 大小写互换 |
count | 计算某个字符的数量 |
find | 查找某个字符串首次出现的索引位置,找不到返回-1 |
index | 查找某个字符串首次出现的索引位置,找不到报错 |
startswith | 判断是否以某个字符串开头,返回布尔值 |
endswith | 判断是否以某个字符串结尾,返回布尔值 |
isupper | 判断字符串是否都是大写,返回布尔值 |
islower | 判断字符串是否都是小写,返回布尔值 |
istitle | 判断字符串是否每个单词都是首字母大写 |
isalnum | 判断字符串是否都是由数字、字母、汉字组成的 |
isspace | 判断字符串是否是只有空白符组成的 |
isdecimal | 判断字符串是否都是数字组成的,返回布尔值 |
ljust | 填充字符串,原字符串居左,返回新的字符串 |
rjust | 填充字符串,原字符串居右,返回新的字符串 |
center | 填充字符串,原字符串居中,返回新的字符串 |
strip | 去掉首尾两边的空白符,(默认为空白符,可以指定) |
lstrip | 去掉左边的空白符,(默认为空白符,可以指定) |
rstrip | 去掉右边的空白符,(默认为空白符,可以指定) |
split | 按照指定的字符将字符串分隔成列表 |
rsplit | 按照指定的字符将字符串从右往左分隔成列表 |
join | 按照某个字符串将容器转成字符串 |
replace | 将字符串中的字符替换成为其它的 |
format | 字符串的格式化 |
capitalize
var = 'hello motherland'
res = var.capitalize()
print(res) # Hello motherland
title
var = 'hello motherland'
res = var.title()
print(res) # Hello Motherland
upper
var = 'hello motherland'
res = var.upper()
print(res) # HELLO MOTHERLAND
lower
var = 'HELLO MOTHERLAND'
res = var.lower()
print(res) # hello motherland
swapcase
var = 'Hello Motherland'
res = var.swapcase()
print(res) # hELLO mOTHERLAND
count
语法:string.count(sub, [start,], [end])
string.count(字符串,[开始值索引], [结束值索引])
# 注意count区分大小写
var = 'Hello Motherland'
res = var.count('h')
print(res) # 1
res = var.count('H', 3, 10)
print(res) # 1
find和index
语法:string.find(sub, [start,], [end])
语法:string.index(sub, [start,], [end])
# find和index服务大小写var = 'Hello Motherland'
res = var.find('h')
print(res) # 9
res = var.index('h')
print(res) # 9# 如果该字符查找不到,find返回-1,index报错
res = var.find('m', 3)
print(res) # -1
res = var.index('m', 3)
print(res) # error# find只会返回正向索引,所以不用担心如果查找的字符本身就是最后一个怎么办
var = 'Hello Motherland'
res = var.find('d')
print(res) # 15
print(len(var)) # 16
startswith和endswith
语法:startswith(prefix, [start], [end])
语法:endswith(suffix, [start], [end])
var = 'Hello Motherland'# 查看整个字符串是否是以Hello开头
res = var.startswith('Hello')
print(res) # True# 查看这个字符串在索引6的位置是否是以Mother开头的
res = var.startswith('Mother', 6)
print(res) # True# 查看整个字符串是否是以aad结尾
res = var.endswith('aad')
print(res) # False
isupper和islower
var = 'Hello Motherland'# 判断字符串是否都是大写
res = var.isupper()
print(res) # False# 判断字符串是否都是小写
res = var.islower()
print(res) # False
isdecimal
var = '20666'
# 判断字符串是否都是数字组成
res = var.isdecimal()
print(res) # True
ljust、rjust、center
语法:string.ljust(width, [fillchar])
指定一个长度,如果字符串的长度不够,就按照指定的字符串补足,默认使用空格,补足用的自妇产长度不能超过1。
var = 'Hello Motherland'res = var.ljust(20)
print(repr(res)) # 'Hello Motherland 'res = var.rjust(30, 'm')
print(res) # mmmmmmmmmmmmmmHello Motherland
print(len(res)) # 30res = var.center(30, '-')
print(res) # -------Hello Motherland-------
strip、lstrip、rstrip
var = ' Hello Motherland '
# 去掉首尾两边的字符串
res = var.strip()
print(repr(res)) # 'Hello Motherland'var = 'mmmmmmmmHello Motherlandmmmmmm '
# 去掉左边的
res = var.lstrip('m')
print(repr(res)) # 'Hello Motherlandmmmmmm'
# 去掉右边的
res = var.rstrip('m')
print(repr(res)) # 'mmmmmmmmHello Motherlandmmmmmm '
# 最右边不是 m 开头,所以不能去掉
split和rsplit
var = 'Hello my motherland'# 默认按照空格分隔,全部分隔
res = var.split()
print(res) # ['Hello', 'my', 'motherland']# 指定分隔的次数
res = var.split(' ', 1)
print(res) # ['Hello', 'my motherland']# 指定分隔的字符
res = var.split('l')
print(res) # ['He', '', 'o my mother', 'and']# rsplit 从右到左分隔
res = var.rsplit('l')
print(res) # ['He', '', 'o my mother', 'and']# 咦?rsplit的结果怎么和rsplit的一样?rspltd的意思不是列表的元素的排列结果是从右往左的,而是从字符串的右边开始找一个字符,如果只是分隔一次我们就可以看出结果的不同。# rsplit 从右到左分隔
res = var.rsplit('l', 1)
print(res) # ['Hello my mother', 'and']
# split 从左到右分隔
res = var.split('l', 1)
print(res) # ['He', 'lo my motherland']# 看出之间的区别了吗?
join
lst = ['h', 'e', 'l', 'l', 'o']
res = '-'.join(lst)
print(res) # h-e-l-l-ostring = 'hello'
res = '-'.join(string)
print(res) # h-e-l-l-o
replace
语法:string.replace(old, new, [count])
var = 'hello hello my motherland'# 替换其中的字符
res = var.replace('hello', '你好')
print(res) # 你好 你好 my motherland# 替换其中的一个字符
res = var.replace('hello', 'hi', 1)
print(res) # hi hello my motherland
字符串的转义
转义字符的使用
python中的转义字符指的是\
,它的作用是将本符号之后的字符有意义的变得无意义,无意义的变得有意义。
无意义的字符指的是单纯的就是一个字符串的字符;有意义的字符指的是不是表面上你看到的那个样子,而是另有一层特殊的含义的字符。
主要的转义字符
符号 | 作用 |
---|---|
\n | 换行(Unix or Linux) |
\r\n | 换行(windows) |
\t | 缩进 |
\r | 将本行后面的所有字符代替本行前面的所有字符 |
\b | 退格符,删除一个字符 |
var = 'hello\nmotherland'
print(var)
print()
var = 'hello\r\nmotherland'
print(var)
print()
var = 'hello\tmotherland'
print(var)
print()
var = 'hello\rmotherland'
print(var)
# 退格符用来删除一个字符
strvar = 'abcde\bfg'
print(strvar) # abcdfg
有一些特殊的路径地址当中会有一些转义字符,但是我们并不希望这些转义字符能够执行,就可以使用原型输出。
# 路径被转义,如何解决?
var = 'C:\Windows\twain_32'
print(var) # C:\Windows wain_32# 方法一:使用 \ 将转义字符变得没意义
var = 'C:\Windows\\twain_32'
print(var) # C:\Windows\twain_32# 方法二:使用repr函数,原型化输出
var = 'C:\Windows\twain_32'
res = repr(var)
print(res) # 'C:\\Windows\twain_32'# 方法三:使用元字符
'''
在字符产前加上 r 表示这段字符串原型化输出,不再执行字符串内的任何转义字符。
'''
var = r'C:\Windows\twain_32'
print(var) # C:\Windows\twain_32
格式化字符串
在字符串中使用占位符替代某个字符,这样该位置的字符可以随意的替换。
占位符
- %d 整型占位符
- %f 浮点型占位符
- %s 字符串占位符
整型占位符
可以填写整数、小数、布尔值
# 可以填写整数
var = '我有%d块钱' % (100)
print(var) # 我有100块钱# 也可以填写小数,但是显示的效果是整数
var = '我有%d块钱' % (100.99)
print(var) # 我有100块钱# 填写布尔值,转成对应的整数类型
var = '我有%d块钱' % (True)
print(var) # 我有1块钱
浮点型占位符
和整型一样,可以填写整数、小数、布尔值
# 可以填写小数
var = '我汽车的排量是%fT' % (2.0)
print(var) # 我汽车的排量是2.000000T# 也可以填写整数,但是显示的效果是小数
var = '我汽车的排量是%fT' % (2)
print(var) # 我汽车的排量是2.000000T# 可以看得出,小数点保留的太多了
字符串占位符
可以填写任何的python合法类型
# 可以填写小数
var = '我汽车的排量是%sT' % (2.0)
print(var) # 我汽车的排量是2.0T# 也可以填写整数,但是显示的效果是小数
var = '我汽车的排量是%sT' % (2)
print(var) # 我汽车的排量是2T# 也可以填写整数,但是显示的效果是小数
var = '我汽车的排量是%sT' % (True)
print(var) # 我汽车的排量是TrueT# 多个占位符的使用
var = '我的汽车是%s, 花了%d万,占我总资产的%f%%' % ('比亚迪', 50, 0.000001)
print(var) # 我的汽车是比亚迪, 花了50万,占我总资产的0.000001%# 注意,在格式化字符串的时候,如果要单独的打印一个%,就需要输入两个%%,以消除%的占位符含义。
format函数的使用
format的作用也是格式化字符串,但是比上述的方式更加的强大。
format使用大括号代替占位符,将值作为自己的参数进行传参。
语法:‘string{}{}’.format(value1,value2)
顺序传参
按照占位符和值的顺序一对一的进行传参
# 可以传递任何的数据类型,默认就是一个字符串占位符。
var = '{} {}'.format('hello', 'motherland')
print(var) # hello motherland
索引传参
在中括号中填入format参数的索引值,进行传参
# 不支持逆向下标索引
var = '{1} {0}'.format('hello', 'motherland')
print(var) # motherland hello
关键字传参
给参数冠以关键字,然后在中括号中填写关键字的名称,关键字根据名称对应的传值。
var = '{msr} {world}'.format(msr='hello', world='motherland')
print(var) # hello motherland
容器类型传参
如果参数是一个容器类型的数据,可以在中括号中填入容器对应的索引值进行传参。
lst = ['hello', 'goodbye']
tup = ('my', 'your')
dit = {'one': 'motherland', 'two': 'world'}# 不指定容器中的元素
var = '{} {} {}'.format(lst, tup, dit)
print(var)
# ['hello', 'goodbye'] ('my', 'your') {'one': 'motherland', 'two': 'world'}# 指定元素
# 字典的键不需要添加引号
var = '{[0]} {[0]} {[one]}'.format(lst, tup, dit)
print(var) # hello my motherland
填充符号的使用
可以使用填充符号将长度不够的字符串补位
- ^ 原字符串居中
- > 原字符串居右
- < 原字符串居左
语法:{[关键字参数]:[要填充的字符][原字符串位置]<总字符长度>}
例:{who:*^10}
who : 关键字参数,或者是下标索引
* : 要填充的字符(默认填充空格)
^ : 原字符串的位置(默认靠左)
10 : 总字符长度 = 原字符串长度 + 填充字符长度
var = '{price:-^20}'.format(price='价格')
print(var) # ---------价格---------# 注意,中间的 : 不可或缺
var = '{:*^10}'.format('价格')
print(var) # ****价格****
进制转换符号的使用
- :d 整型占位符
- :f 浮点型占位符
-
Python容器数据类型(字符串)相关推荐
- python容器数据类型_python collections 容器数据类型
这个模块实现了特定目标的容器,以提供Python标准内建容器 dict , list , set , 和 tuple 的替代选择. 创建命名元组子类的工厂函数 类似列表(list)的容器,实现了在两端 ...
- Python 基础数据类型 -字符串(str)的详细用法
字符串是编程中最重要的数据类型,也是最常见的 1.字符串的表示方式 -单引号' ' 双引号 " " 多引号 """ """ ...
- Python基础——数据类型—字符串
数据类型--字符串 数据类型--字符串 查看数据的数据类型 type() enumerate() str字符串 字符串的常见操作 字符串的访问 字符串的截取 字符串的复制和拼接 字符串的大小写转换 字 ...
- Python高级数据类型-字符串,列表,元组,字典
0.序列 序列:在python中 序列就是一组按照顺序排列的值 python中三种内资的序列类型:字符串,列表,元组 优点:支持索引和切片的操作,从0开始 1.字符串 可以查询,修改 字符串常用的方法 ...
- Python之路(第二篇):Python基本数据类型字符串(一)
一.基础 1.编码 UTF-8:中文占3个字节 GBK:中文占2个字节 Unicode.UTF-8.GBK三者关系 ascii码是只能表示英文字符,用8个字节表示英文,unicode是统一码,世界通用 ...
- Python基本数据类型-字符串的操作
# 统计某个字符出现的次数-count() str1 = "Darren is man" print(str1.count("r")) print(str1.c ...
- Python基础知识全解(含容器数据类型、Numpy)
文章目录 一.初始Python Python语言概述 二.Python语言基础 基本数据类型 变量 运算符与表达式 输入与输出 内置函数 常用模块 三.Python容器数据类型 列表 元组 字典 集合 ...
- 列举python的5个数据类型_python公开课|新公布的5个python核心数据类型,这些细节你难道还不不知道吗...
[摘要]在这个科学技术高速发展的时代,越来越多的人都开始选择学习编程软件,那么首先被大家选择的编程软件就是python,也用在各行各业之中,并被大家所熟知,所以也有越来越多的python学习者关注py ...
- 5. Python的数据类型③——列表
文章目录 Python的数据类型 1. 列表是什么 2.列表的基本操作 2.1 创建一个空列表 2.2 查 (1)访问列表元素 (2)查看列表长度 2.3 改:修改列表元素 2.4 增:在列表中添加元 ...
最新文章
- MDK 的编译过程及文件类型全解
- Typescript中class的extends码源分析
- LintCode 1353. 根节点到叶节点求和(DFS)
- linux 基础训练,Linux 基础训练习题
- Ethercat解析(九)之过程数据
- Android IPC数据在内核空间中的发送过程分析
- BeanFactory not initialized or already closed - call 'refresh' before access
- 1.1介绍线程和运行(Introducing Thread and Runnable)
- android contacts 源码分析,MTK Contacts代码分析
- 用Python【批量】生产【电子奖状】的方法请查收!
- 明净素雅-会议礼品送什么
- pdf如何转化成word文档呢?
- Error: The project seems to require yarn but it‘s not installed.
- Alex 的 Hadoop 菜鸟教程: 第10课 Hive 安装和使用教程
- 微信小程序如何显示富文本,类似v-html,rich-text
- win10计算机用户名修改密码,win10怎么修改登录用户名 win10修改开机密码的详细教程...
- windows查看所有进程:netstat -ano
- python画好看的图案-妈耶,python的散点图竟然能画这么好看!
- 定时开关机-Android4.4/6.0
- 数据科学与大数据技术专业 —— 云计算●虚拟化 课程 期末复习卷及其简答(1)
热门文章
- 转载:Bjarne Stroustrup百科
- 在WPS中MathType7使用出现please restart word to load mathtype addin properly的问题解决方法之一
- hashcat之基于规则的攻击
- H5+CSS3 实现div垂直水平居中的几种方式
- 优思学院|六西格玛管理常用的假设检验是什么?
- 调用阿里API实现银行卡实名认证
- 史上最牛的qq空间,访问次数已经高达2亿7千多万次。
- 程控交换原理教学,程控数字交换系统实验设备
- 浅谈SpaceBuilder系统的缓存机制_缓存思想
- 北斗时钟系统(网络授时服务器)为数字化变电站插上翅膀
- python容器数据类型_python collections 容器数据类型