【Python基础】字符串(6351字)

本文详细介绍了Python中字符串的基础概念,如数据类型、索引与切片的用法,以及一系列字符串方法如find(),rfind(),count(),replace(),split()等的示例和功能。通过实例演示了如何处理字符串的定位、替换和分割,有助于初学者掌握Python字符串处理技巧。
摘要由CSDN通过智能技术生成

因上努力

个人主页:丷从心·

系列专栏:Python基础

学习指南:Python学习指南

果上随缘


什么是字符串

  • 如下定义的变量url的数据类型是字符串
url = 'www.baidu.com'
print(url)

url = "www.baidu.com"
print(url)
www.baidu.com
www.baidu.com
  • 单引号或双引号引起的数据就是字符串,通过type()函数可以查看其数据类型
url = 'www.baidu.com'
print(type(url))

url = "www.baidu.com"
print(type(url))
<class 'str'>
<class 'str'>

索引

  • 索引就是标记内存空间地址的一个数字,也可以称为下标
  • 对于字符串str = 'abcdef',索引从 0 0 0开始,在内存中的存储方式如下
索引0索引1索引2索引3索引4索引5
a a a b b b c c c d d d e e e f f f
  • 索引也可以为负数,对于字符串str = 'abcdef',索引为负数时的情况如下
索引-1索引-2索引-3索引-4索引-5索引-6
f f f e e e d d d c c c b b b a a a
示例
  • 通过使用[]加上索引的方式获取对应索引处的数据
str = 'abcdef'

print(str[0])
print(str[1])
print(str[2])
a
b
c
str = 'abcdef'

print(str[-1])
print(str[-2])
print(str[-3])
f
e
d
索引越界
  • 索引对应内存地址,是有范围的,对于字符串str = 'abcdef',其索引范围为 0 0 0 5 5 5,如果使用索引“ 6 6 6”会发生索引越界,产生异常
str = 'abcdef'

print(str[6])
Traceback (most recent call last):
  File "C:/Users/FOLLOW_MY_HEART/Desktop/Python Basics/【Python基础】字符串/test.py", line 3, in <module>
    print(str[6])
IndexError: string index out of range

切片

  • 切片就是截取操作对象中一部分数据的操作,例如对于字符串str = 'abcdef',可以通过切片获取到子串abc
语法
str_object[起始索引:结束索引:步长]
  • 选取的数据范围从“起始索引”开始,到“结束索引”结束,但不包含结束索引处的数据,即数据只取到结束索引的前一位
  • 步长表示选取数据的间隔,不使用步长时默认步长为 1 1 1
示例
步长为正
  • 选取索引 0 0 0 2 2 2包含的字符(不包含索引 3 3 3处的字符)
str = 'abcdef'

print(str[0:3])
abc
  • 如果“起始索引”为空则表示起始索引为 0 0 0
str = 'abcdef'

print(str[:3])
abc
  • 如果“结束索引”为空则表示从起始索引开始一直取到字符串末尾
str = 'abcdef'

print(str[3:])
def
  • 选取索引 1 1 1到最后一个字符之前的字符(通过负数索引的方式)
str = 'abcdef'

print(str[1:-1])
bcde
  • 2 2 2为步长从字符串开头取到字符串末尾
str = 'abcdef'

print(str[::2])
ace
步长为负
  • 如果步长为负,表示从右向左选取数据,此时“起始索引”应大于“结束索引”
str = 'abcdef'

print(str[3:0:-1])
dcb
    • 此时从右向左取到的是索引 3 3 3到索引 1 1 1包含的字符,不包含索引 0 0 0处的字符
  • 从字符串末尾取到字符串开头的字符(字符串倒序)

str = 'abcdef'

print(str[::-1])
fedcba

字符串方法

find()方法
str_object.find(sub, start=None, end=None)
  • find()方法用于判断字符串sub是否在索引start到索引end内包含在字符串str_object中,即判断字符串sub是否是字符串str_object的子串
  • 如果是则返回字符串sub在字符串str_object中在索引start到索引end范围内第一次出现处的开始索引,否则返回 − 1 -1 1
  • startend默认值为None,表示范围是从字符串开头到字符串末尾
url = 'www.baidu.com'

print(url.find('baidu'))

print(url.find('www', 0, 2))
print(url.find('www', 0, 3))
4
-1
0
  • 可以看到,取值范围仍然不含索引end,只到索引end前一位的数据
rfind()方法
str_object.rfind(sub, start=None, end=None)
  • find()方法类似,rfind()方法只是从最右侧开始查找,返回字符串从右侧第一次出现处的开始索引
url = 'www.baidu.baidu.com'

print(url.rfind('baidu'))
print(url.find('baidu'))
10
4
count()方法
str_object.count(sub, start=None, end=None)
  • count()方法用于返回字符串sub在索引start到索引end范围内(不包含索引end)在字符串str_object中出现的次数
url = 'www.baidu.baidu.com'

print(url.count('baidu'))
2
replace()方法
str_object.replace(str1, str2, count=None)
  • replace()方法用于将字符串str_object中的子串str1替换为字符串str2,不超过conut
  • count默认值为None,表示将字符串str_object中的子串str1全部替换为字符串str2
url = 'www.baidu.baidu.baidu.com'

print(url.replace('baidu', 'google', 2))
www.google.google.baidu.com
split()方法
str_object.split(str, count=None)
  • split()方法用于将字符串str_object以子串str进行分割,不超过count次,返回值是一个列表
  • count默认值为None,表示将字符串str_object以子串str完全分割
url = 'www.baidu.baidu.com'

print(url.split('.', 2))
print(url.split('.'))
['www', 'baidu', 'baidu.com']
['www', 'baidu', 'baidu', 'com']
startswith()方法
str_object.startswith(prefix, start=None, end=None)
  • startswith()方法用于判断字符串str_object在索引start到索引end范围内(不包含索引end)是否以字符串prefix开头,是则返回True,否则返回False
  • startend默认值为None
url = 'www.baidu.com'

print(url.startswith('www'))
print(url.startswith('baidu', 4))
True
True
endswith()方法
str_object.endswith(prefix, start=None, end=None)
  • endswith()方法用于判断字符串str_object在索引start到索引end范围内(不包含索引end)是否以字符串prefix结尾,是则返回True,否则返回False
  • startend默认值为None
url = 'www.baidu.com'

print(url.endswith('.com'))
print(url.endswith('baidu', 0, -4))
True
True
lower()方法
str_object.lower()
  • lower()方法用于将字符串str_object中所有字符转换为小写
url = 'www.BAIDU.com'

print(url.lower())
www.baidu.com
upper()方法
str_object.upper()
  • upper()方法用于将字符串str_object中所有字符转换为大写
url = 'www.baidu.com'

print(url.upper())
WWW.BAIDU.COM
strip()方法
str_object.strip()
  • strip()方法用于删除字符串str_object两端的空白字符(空格、制表符\t
url = '  \twww.baidu.com\t  '

print(url.strip())
www.baidu.com
partition()方法
str_object.partition(str)
  • partition()方法用于将字符串str_object以子串str分割成str之前的字符、strstr之后的字符三部分,返回值是一个元组
url = 'www.baidu.com'

print(url.partition('baidu'))
('www.', 'baidu', '.com')
splitlines()方法
str_object.splitlines()
  • splitlines()方法用于将字符串str_object以行进行分割,返回值是一个列表
url = 'www.baidu.com\nwww.google.com\nwww.baidu.com'

print(url.splitlines())
['www.baidu.com', 'www.google.com', 'www.baidu.com']
isalpha()方法
str_object.isalpha()
  • isalpha()方法用于判断字符串str_object中的所有字符是否都是字母,是则返回True,否则返回False
str_1 = 'abcdef'
print(str_1.isalpha())

str_2 = 'abc123'
print(str_2.isalpha())
True
False
isdigit()方法
str_object.isdigit()
  • isdigit()方法用于判断字符串str_object中的所有字符是否都是数字,是则返回True,否则返回False
str_1 = '123456'
print(str_1.isdigit())

str_2 = 'abc123'
print(str_2.isdigit())
True
False
isalnum()方法
str_object.isalnum()
  • isalnum()方法用于判断字符串str_object中的所有字符是否都是字母或数字,是则返回True,否则返回False
str_1 = 'abc123'
print(str_1.isalnum())

str_2 = 'abc.123'
print(str_2.isalnum())
True
False
join()方法
str.join(str_list)
  • join()方法用于将列表str_list中的所有元素以字符串str进行拼接,拼接成一个字符串
str_list = ['www', 'baidu', 'com']

print('.'.join(str_list))
www.baidu.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值