③ 字符串操作

三、字符串操作


① 字符串(p102-p108)


字符串是Python最常见的数据类型,我们一般使用引号来创建字符串,只需为其变量分配一个值即可。

语法:

变量名 = '字符串'

实例

# 单引号
name = 'Tom'
-------------------------------------------------------
# 双引号
name = "Rose"
-------------------------------------------------------
# 三引号(可跨行)
a = '''i am Tom
nice to meet you!'''



1、下标


“下标”又叫“索引”,就是编号,例如火车座位号,座位号的作用:按照编号快速找到对应的座位

实例:

-------------------------------------------------------
'''
    数据在程序运行过程中存储在内存
    ?:想得到数据里的a字符,数据里的b字符,如何获取? -- 使用字符串中某个特定数据
    数据存储在内存中,内存会为字符从0开始顺序分配一个编号 - 使用编号能够精确找到某个字符数据 -- 下标或索引
'''
-------------------------------------------------------
str = 'abcdef'
print(str[0])
print(str[1])
print(str[4])
-------------------------------------------------------
# 输出结果
a
b
e

注意:字符数据存储在内存中,内存会为字符数据从0开始顺序分配一个编号。

image-20220407215219332



2、切片


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

语法:

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

注意:① 不包括结束位置下标对应的数据。 ② 步长是选取间隔,正负数均可,默认步长为1。

实例:

'''
序列[开始位置下标:结束位置下标:步长]
'''
-------------------------------------------------------
str1 = '0123456789'
# 正数测试
print(str1[1:4:1]) # 123

print(str1[:5]) # 01234 -- 如果不写开始,默认从0开始选取。

print(str1[1:]) # 123456789 -- 如果不写结束,默认选取到最后。

print(str1[:]) # 0123456789 -- 没有范围则代表全部。

print(str1[::2]) # 02468 -- 不写开始和结束,默认选取所有
-------------------------------------------------------
# 负数测试
print(str1[::-1]) # 9876543210 -- 如果步长为负数,表示倒叙选取

print(str1[-4:-1]) # 678 -- 下标-1表示最后一个数据,以此类推
-------------------------------------------------------




② 字符串常用操作方法


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

1、查找


所谓字符串查找方法,即是查找字符串中的位置出现次数。

1.1、find 查找子串

  • find(): 检测某个子串是否包含在这个字符串中,如果在则返回这个子串开始位置下标,否则返回-1
  • rfind(): 与find()功能相同,但查找方向右侧开始。

语法:

# 语法     子串:字符串中的一部分字符
-------------------------------------------------------
字符串序列.find(子串,开始位置下标,结束位置下标)
-------------------------------------------------------
注意:1、开始和结束位置下标可以省略,表示在整个字符串序列中查找。
2、不包括结束位置下标对应的数据

实例:

mystr = "hello world and itcast and itheima and Python"

# 1. find()
print(mystr.find('and')) # 12

print(mystr.find('and',15,30)) # 23

print(mystr.find('ands',15,30)) # -1 , ands子串不存在
-------------------------------------------------------
# 2. rfind()
print(mystr.rfind('and')) # 35

1.2、index 查找子串

  • index(): 检测某个子串是否包含字符串中,如果在则返回这个子串开始位置下标,否则出现报错。
  • rindex(): 与index()功能相同,但查找方向右侧开始。

语法:

# 语法     子串:字符串中的一部分字符
-------------------------------------------------------
字符串序列.index(子串,开始位置下标,结束位置下标)
-------------------------------------------------------
注意:1、开始和结束位置下标可以省略,表示在整个字符串序列中查找。
2、不包括结束位置下标对应的数据

实例:

mystr = "hello world and itcast and itheima and Python"

# 1. find()
print(mystr.index('and')) # 12
-------------------------------------------------------
print(mystr.index('ands')) # 报错(输出结果在下方)
-------------------------------------------------------
# 2. rfind()
print(mystr.rfind('and')) # 35
-------------------------------------------------------
# 异常演示
Traceback (most recent call last):
  File "F:\Feature_Detection\test.py", line 7, in <module>
    print(mystr.index('ands')) # 35
ValueError: substring not found

1.3、count 统计次数

  • count(): 返回某个子串字符串出现的次数。

语法:

字符串序列.count(子串)

实例:

mystr = "hello world and itcast and itheima and Python"

print(mystr.count('and')) # 3

print(mystr.count('it')) # 2

print(mystr.count('ands')) # 0



2、修改


所谓修改字符串,指的就是通过函数的形式修改字符串中的数据。

2.1、replace替换子串

  • replace(): 替换

语法:

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

注意:① 替换次数如果超出子串出现次数,则替换次数子串出现次数。

② replace函数有返回值,返回修改后字符串原有的字符串不会改变

实例:

mystr = "hello world and itcast and itheima and Python"

mystr.replace('and','he') 
print(mystr)   # 输出结果:hello world and itcast and itheima and Python
-------------------------------------------------------
new_mystr = mystr.replace('and','he'1)
print(new_mystr) # 输出结果:hello world he itcast and itheima he Python
-------------------------------------------------------
'''
	# 结论
    ***** 调用了replace函数后,发现原有字符串的数据并不会被修改,修改后的数据是replace函数的返回值。
    --- 说明:字符串是不可变数据类型
    数据按照是否能修改分为可变数据类型和不可变数据类型
'''

注意:数据按照是否能修改分为可变数据类型不可变数据类型,字符串类型的数据修改不能改变

原有字符串,属于不可变数据类型。

数据类型可变/不可变
整型不可变
字符串不可变
元组不可变
列表可变
集合可变
字典可变
2.2、split 分割字符串(列表)

  • split():按照指定字符分割字符串,返回一个列表

语法:

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

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

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

实例:

mystr = "hello world and itcast and itheima and Python"

# split() -- 分割,返回一个列表,丢失分割字符
list1 = mystr.split('and')
list2 = mystr.split('and',2)
print(list1)
print(list2)
-------------------------------------------------------
# 输出结果
['hello world ', ' itcast ', ' itheima ', ' Python']
['hello world ', ' itcast ', ' itheima and Python']

2.3、join 合并字符串

  • join(): 用一个字符子串合并字符串,即是将多个字符串合并为一个新的字符串。

语法:

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

实例:

# join() -- 合并列表里的字符串数据为一个大字符串
mylist = ['zheng','jun','hao']
new_str1 = '...'.join(mylist)
new_str2 = '*'.join(mylist)
print(new_str1)
print(new_str2)
-------------------------------------------------------
# 输出结果
zheng...jun...hao
zheng*jun*hao





3、字符大小写转换


3.1、capitalize 字符串开头大写

  • capitalize(): 将字符串第一个字符转换成大写

语法:

字符串.capitalize()

注意:capitalize( )函数转换后,字符串第一个字符大写,其他的字符全都小写。

实例:

mystr = "hello world and itcast and itheima and Python"

print(mystr.capitalize())
-------------------------------------------------------
# 输出结果:
Hello world and itcast and itheima and python
3.2、title 字符串每个单词开头大写。

  • title():将字符串每个单词首字母转换成大写

语法:

字符串.title()

实例:

mystr = "hello world and itcast and itheima and Python"

print(mystr.title())
-------------------------------------------------------
# 输出结果:
Hello World And Itcast And Itheima And Python
3.3、upper 字符串小写转大写

  • upper():将字符串中小写大写

语法:

字符串.upper()

实例:

mystr = "hello world and itcast and itheima and Python"

print(mystr.upper())
-------------------------------------------------------
# 输出结果
HELLO WORLD AND ITCAST AND ITHEIMA AND PYTHON

3.4、lower 字符串大写转小写

  • lower():将字符串中大写小写

语法:

字符串.lower()

实例:

mystr = "HELLO WORLD AND ITCAST AND ITHEIMA AND PYTHON"

print(mystr.lower())
-------------------------------------------------------
# 输出结果
hello world and itcast and itheima and python

4、判断


4.1、isalpha 判断否为 字母

  • isalpha():字符串里至少有一个字符,并且所有字符都是字母,则返回True,否则返回Flase。

语法:

字符串.isalpha()

实例:

mystr1 = 'hello'
mystr2 = 'hello12345'

# 判断是否都为字母
print(mystr1.isalpha())

print(mystr2.isalpha())
-------------------------------------------------------
# 输出结果
True
Flase

4.2、isdigit 判断是否为 数字

  • isdigit():如果字符串包含数字则返回True否则则返回Flase

语法:

字符串.isdigit()

实例:

mystr1 = '12345'
mystr2 = 'hello12345'

# 判断是否都为数字
print(mystr1.isdigit())

print(mystr2.isdigit())
-------------------------------------------------------
# 输出结果
True
Flase 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值