【Python入门】-- 字符串详解

目录

一、字符串

1. 字符串特征

2. 字符串输出

3. 字符串输入

二、下标

三、切片

1. 语法

四、字符串常用操作方法

1. 字符串查找

(1)find()

(2)index()

(3)count()

(4)rfind()

(5)rindex()

(6)简单举例

2. 字符串修改

(1)替换:replace()

(2)分割:split() 

(3)合并:join() 

(4)大小写转换

3. 删除空白字符

4. 字符串对齐


一、字符串

1. 字符串特征

控制台显示结果为<class 'str'>,即数据类型为str(字符串)。

  • 单引号字符串
name = '小明'
  • 双引号字符串
name = "Cindy"
  • 三引号字符串

支持换行

a = '''I am Tom,
       nice to meet you!'''
b = """I am Rose,
       nice to meet you!"""

2. 字符串输出

name = 'Tom'
print('我的名字是%s' % name)
print(f'我的名字是{name}')

3. 字符串输入

tel = input('请输入您的手机号:')
print(f'您输入的手机号是{password}')

注意:input()接收到的数据为str(字符串)类型

二、下标

“下标” 又叫 “索引”,就是编号。下标的作用是通过下标快速找到对应的数据。

注意:下标从0开始

简单案例:

# 需求:输出字符"W"
a = 'HelloWorld'
print(a[5])

---运行结果---
W

 

三、切片

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

1. 语法

序列[开始位置下标:结束位置下标:步长]

注意:

① 如果不写步长,步长默认为1

② 如果不写开始位置下标,默认从0开始选取

③ 如果不写结束位置下标,表示选取到最后

④ 如果不写开始位置和结束位置下标,表示选取所有

⑤ 步长为负数,表示倒序选取(从右往左)

⑥ 开始位置和结束位置为负数,下标-1表示最后一个数据,依次向前类推

⑦ 如果选取方向(下标开始到结束的方向)和步长的方向冲突,则无法选取出数据

简单举例:

# 得到某一段数据  -- 切片  --左闭右开
print(a[2:5:1])  # cde
print(a[2:5:2]) # ce
# 如果不写步长,步长默认为1
print(a[2:5])  # cde
# 如果不写开始,默认从0开始选取
print(a[:5])  # abcde
# 如果不写结束,表示选取到最后
print(a[2:]) # cdefg
# 如果不写开始和结束,表示选取所有
print(a[:]) # abcdefg
# 步长为负数,表示倒序选取
print(a[::-1]) # gfedcba
# 开始和结束为负数,下标-1表示最后一个数据,依次向前类推
print(a[-4:-1])  # def
# 从-4开始到-1结束,选取方向为从左到右,但是-1步长是指从右向左选取
# 如果选取方向(下标开始到结束的方向)和步长的方向冲突,则无法选取出数据
print(a[-4:-1:-1])  # 无法选取出数据

四、字符串常用操作方法

字符串的常用操作方法有查找、修改、判断三大类。

1. 字符串查找

(1)find()

find() : 检测某个子串是否包含在这个字符串中,如果在,返回这个字串的开始位置下标,否则返回-1。

语法:

字符串序列.find(子串,开始位置下标,结束位置下标)

注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

(2)index()

index() : 检测某个子串是否包含在这个字符串中,如果在,返回这个子串的开始位置下标,否则报异常。

语法:

字符串序列.index(子串,开始位置下标,结束位置下标)

注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

(3)count()

count():检测子串在这个字符串中,出现的次数,如果在,返回次数,否则返回0

语法:

字符串序列.count(子串,开始位置下标,结束位置下标)

注意:开始和结束位置下标可以省略,表示在整个字符串序列中查找。

(4)rfind()

和find()功能相同,但查找方向为右侧开始。

(5)rindex()

和index()功能相同,但查找方向为右侧开始。

(6)简单举例

a = "java and html and python"
# 1.find()
print(a.find('and'))  # 5  --子串存在,返回下标位置为5
print(a.find('and', 8, 20))  # 14    --子串存在,下标位置为14
print(a.find('ands', 8, 20))  # -1    --子串不存在,返回-1
# 2.index()
print(a.index('and'))  # 5  --子串存在,返回下标位置为5
print(a.index('and', 8, 20))  # 14    --子串存在,下标位置为14
print(a.index('ands', 8, 20))  # -1    --子串不存在,报异常
# 3.count()
print(a.count('and'))   # 2
print(a.count('and', 8, 20))  # 1
print(a.count('ands'))   # 0  --找不到子串,返回0
# 4.rfind()
print(a.rfind('and'))  # 5  --子串存在,从右开始查找,返回下标位置为14

2. 字符串修改

修改字符串,是指通过函数修改字符串中的数据。

(1)替换:replace()

语法:

字符串序列.replace(旧子串,新子串,替换次数)

注意:替换次数如果查出子串出现次数,则替换次数为该子串出现次数。

简单案例:

a = "java and html and python"

# 1.替换replace()  --返回的是修改后的字符串数据,不改变原有字符串数据
new_a1 = a.replace('and','he')
print(a)  # java and html and python
print(new_a1)  # java he html he python
new_a2 = a.replace('and','he',1)
print(new_a2)  # java he html and python

(2)分割:split() 

将字符串分割成一个列表。

语法:

字符串序列.split(分割字符,num)

注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个。

如果分割字符是原有字符串中的子串,分割后则丢失该子串。

简单案例:

a = "java and html and python"

# 2.split()  --分割,返回一个列表,丢失分割字符
new_a3 = a.split('and')
print(new_a3)  # ['java ', ' html ', ' python']
new_a4 = a.split('and',1)
print(new_a4)  # ['java ', ' html and python']

(3)合并:join() 

将多个字符串合并为一个新的字符串。

语法:

字符或子串.join(多字符串组成的序列)

简单案例:

# 3.join()   --合并列表里面的字符串数据为一个大字符串
b = ['aa','bb','cc']
new_b1 = join(b)
new_b2 = '...'.join(b)
print(new_b1)  # aa bb cc
print(new_b2)  # aa...bb...cc

(4)大小写转换

capitalize()     --将字符串的第一个字符转换成大写

title()              --将字符串每个首字母转换成大写

lower()           --大写转小写

upper()          --小写转大写

简单案例:

# 4.capitalize()   --将字符串的第一个字符转换成大写
a = "java and html and python"
a5 = a.capitalize()
print(a5)  # Java and html and python

# 5.title()   --将字符串每个首字母转换成大写
a5 = "java and html and python"
new_a5 = a.title()
print(new_a5)  # Java And Html And Python

# 6.lower()  --大写转小写
a6 = "Java And Html And Python"
new_a6 = a.lower()
print(new_a6)  # java and html and python

# 7.upper()  --小写转大写
a7 = "java and html and python"
new_a7 = a.upper()
print(new_a7 )  # JAVA AND HTML AND PYTHON

3. 删除空白字符

(1)删除字符串左侧空白字符

(2)删除字符串右侧空白字符

(3)删除字符串两侧空白字符

a = "  java and html and python  "
# 1.删除字符串左侧空白字符
new_a1 = a.lstrip()
print(new_a1)  # 'java and html and python  '
# 2.删除字符串右侧空白字符
new_a2 = a.rstrip()
print(new_a2)  # '  java and html and python'
# 3.删除字符串两侧空白字符
new_a3 = a.strip()
print(new_a3)  # 'java and html and python'

4. 字符串对齐

(1) ljust()

返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串。

语法:

字符串序列.ljust(长度,填充字符)

(2)rjust()

返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串。

语法:

字符串序列.rjust(长度,填充字符)

(3)center()

返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串。

语法:

字符串序列.center(长度,填充字符)

输出效果:

a = 'hello'

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值