前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据类型详解-字符串#学习猿地

Python数据类型详解-字符串#学习猿地

作者头像
学习猿地
发布2020-03-19 10:41:52
3730
发布2020-03-19 10:41:52
举报
文章被收录于专栏:学习猿地学习猿地

### 数据类型详解-字符串

+ 回顾字符串的定义方式

+ 了解转义字符

+ 字符串相关的操作

+ 字符串格式化的方法

+ 字符串相关函数

### 字符串的定义方式

1. 单引号定义字符串 ‘ ’

2. 双引号定义字符串 “ ”

3. 三引号定义字符串 ‘’‘内容’‘’或者 “”“内容”“”

4. 字符串定义时,引号可以互相嵌套

### 转义字符

> 一个普通的字符出现在转义符 \ 的后面时,实现了另外一种意义

+ \ 转义符,续行符。

+ 作为转义符时,在\后面出现的字符可能会实现另外一种意义。

+ 作为续行符时,在行尾使用了\后,可以换行继续书写内容

+ \n 代表一个换行符

+ \r 代表光标位置(从\r出现的位置开始作为光标的起点)

+ \t 代表一个水平制表符(table 缩进)

+ \b 代表一个退格符

+ `\\` 反转义\,输出了\,取消\的转义效果

**把转义字符作为普通字符输出,在字符串的前面加 r' '**

示例:

```python

# \ 续行符

#续行符

# vars = '123' \

# '456'

# print(vars)

# \ 转义符,在字符出现的特定字符有着特定的意义

# \n 代表一个换行符

# vars = '岁月是把杀猪刀,\n\n但是它拿长得丑的人一点办法都没有。。。'

# \r 代表光标的位置(从\r出现的位置开始作为光标的起点)

# vars = '岁月是把杀猪刀,\r但是它拿长得丑的人一点办法都没有。。。'

# \t 水平制表符(table 缩进)

# vars = '岁月是把杀猪刀,\t但是它拿长得丑的人一点办法都没有。。。'

# \b 退格符

# vars = '岁月是把杀猪刀,\b但是它拿长得丑的人一点办法都没有。。。'

# \\ 一个\是转义符,在这个符号前在定义一个\ 就会取消转义。变成一个普通的\输出

# vars = '岁月是把杀猪刀,\\n但是它拿长得丑的人一点办法都没有。。。'

# 把转义字符作为普通字符输出,在字符串的前面加 r''

vars = r'岁月是把杀猪刀,\b但是它拿长得丑的人一点办法都没有。。。'

print(vars)

```

### 字符串相关的操作

+ 字符串 + 操作

+ 字符串 * 操作

+ 字符串 [] 切片操作

+ 字符串[开始值:结束值:步进值]

开始值:默认为0,结束值默认是最后一个下标,步进值默认为1

示例:

```python

# - 字符串 + 操作

vara = '君不见,黄河之水天上来,奔流到海不复回.'

varb = '君不见,高堂明镜悲白发,朝如青丝暮成雪'

# res = vara + varb

res = '将进酒 '+'李白'

# print(res)

# - 字符串 * 操作

# vars = '鸡你太美,' * 5

# print(vars)

# 鸡你太美鸡你太美鸡你太美鸡你太美鸡你太美

# - 字符串 [] 切片操作 ****

# 字符串的索引操作,字符串中只能使用[]下标 访问,不能修改

'''

0 1 2 3 4 5 6 7 8 9 10 ....

君不见,黄河之水天上来,奔流到海不复回

-4 -3 -2 -1

'''

vars = '君不见,黄河之水天上来,奔流到海不复回'

# print(vars[5])

# print(vars[-5])

'''

字符串的切片操作

str[开始值:结束值:步进值]

开始值:默认为0,结束值默认是最后一个下标,步进值默认为1

'''

# print(vars)

# print(vars[5]) # 写一个值就是获取指定下标的元素

# print(vars[2:5]) # 从2下标开始取值,一直到下标5之前,能取到2,取不到5

# print(vars[4:8:2]) # 黄河之水 ==> 黄之

# print(vars[::]) # 从头取到尾

# print(vars[::2]) # 从头取到尾,每隔一个取一个

# print(vars[::-1]) # 字符串倒转过来

# print(vars[::-2]) # 字符串倒转过来,每隔一个取一个

# print(vars[1::]) # 不见,黄河之水天上来,奔流到海不复回

# print(vars[1::2]) # 不,河水上,流海复

```

### 字符串格式化的方法

+ format

+ f

示例:

```python

# 1 format 普通方式

a = '李白'

# vars = '{}乘舟将欲行,互闻岸上踏歌声'.format(a)

# vars = '{}乘舟将欲行,互闻岸上{}'.format(a,'踏歌声')

# 2 format 通过索引传参 0 1 2

# vars = '{2}乘舟将欲行,互闻岸上{1}'.format('a','b','c')

# 3 format 关键字传参

# vars = '{a}乘舟将欲行,互闻岸上{b}'.format(a='李白',b='踏歌声')

# 4 format 容器类型数据传参

# vars = '豪放派:{0[0]},婉约派:{0[1]},蛋黄派:{0[2]}'.format(['李白','辛弃疾','达利园'])

data = {'a':'辛弃疾','b':'蛋黄派'}

vars = '{a}乘舟将欲行,互闻岸上{b}'.format(**data)

# 3.7中新增的 格式化方法 f方法

vars = f'{data["a"]}乘舟将欲行,互闻岸上{data["b"]}'

# print(vars)

# 限定小数的位数

# vars = '圆周率是多少:{:.2f}'.format(3.1415926)

# print(vars)

```

### 字符串相关函数

> 官方文档:内置类型:字符串

>

> https://docs.python.org/3.7/library/stdtypes.html#text-sequence-type-str

#### (一) 英文字符与字符检测相关函数

```python

# 字符串相关函数 (一) 英文字符与字符检测相关函数

vars = 'iloveyou'

# 返回字符串的副本,该字符串的首个字符大写,其余小写。

# str.capitalize()

res = vars.capitalize()

# 把字符串中的一个单词的首字母大写

res = vars.title()

# 把字符串全部改为 大写

res = vars.upper()

# 把字符串全部改为 小写

res = vars.lower()

# 字符串中的大小写字符转换,大写转小写,小写转大写

res = vars.swapcase()

# 检测字符串是否为全部大写字母组成

res = vars.isupper()

# 检测字符串是否为全部小写字母组成

res = vars.islower()

# 检测字符串是否符合标题title的要求

res = vars.istitle()

# 检测字符串是否由数字和字母组成,如果字符串中包含来非数字字母的其它字符,则返回False

res = vars.isalnum()

# 检测字符串是否全部由字符(包含英文字符和中文)组成

res = vars.isalpha()

# 检测字符串是否由纯数字字符组成

res = vars.isdigit()

# 检测当前字符串是否为 空格 字符组成 ' '

res = vars.isspace()

# 检测字符串是否以指定的字符开始的,也可以指定开始和结束的位置

res = vars.startswith('y')

# res = vars.startswith('y',5)

# 检测字符串是否以 指定的字符 结束的,也可以指定开始和结束的位置

# res = vars.endswith('y')

res = vars.endswith('e',1,5)

print(res)

```

#### (二)字符串 查找与操作相关函数 重点重点重点

示例:

```python

# ** find() 方法 ,找到则返回字符中符合条件的第一个字符出现的索引位置。未找到返回 -1

res = vars.find('you')

# print(vars[res:res+3])

# index() 方法

# res = vars.index('youe') # 找到则返回索引位置,未找到则报错 ValueError

# print(res)

vars = 'user_admin_id_123'

# ** split() 方法 可以按照指定的分隔符,把字符串分隔成列表

# res = vars.split('_') # ['user', 'admin', 'id', '123']

res = vars.split('_',2) # ['user', 'admin', 'id_123']

# print(res)

# rsplit() 方法是从右向左进行,从后向前

# res = vars.rsplit('_') # ['user', 'admin', 'id', '123']

res = vars.rsplit('_',2) # ['user_admin', 'id', '123']

# print(res)

# ** join() 方法 ,使用指定的字符串,把一个容器中的元素链接成一个字符串

varlist = ['user', 'admin', 'id', '123']

res = '_'.join(varlist)

# ** strip() 去除字符串左右两侧的指定字符

vars = ' zhangsan '

res = vars.strip(' ')

vars = '@admin'

res = vars.strip('@')

# print(vars)

# print(res)

# rstrip() 去除字符串右侧的指定字符, lstrip() 去除字符串左侧的指定字符

# ** len() 函数可以获取当前字符串的长度

# print(len(vars))

# print(len(res))

# ** replace() 替换函数

vars = 'iloveyou'

# 找到 love 替换为 live

res = vars.replace('love','live')

vars = 'aabbccddeeabcdef'

# 可以限制替换的次数

res = vars.replace('b','B',2)

# print(res)

```

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档