Chapter 10 Python数据容器:字符串

欢迎大家订阅【Python从入门到精通】专栏,一起探索Python的无限可能!


前言

在 Python 中,数据容器是组织和管理数据的重要工具,字符串作为其中一种基本的数据结构,具有独特的特性和广泛的应用。本章详细介绍了字符串的定义、下标索引、常用操作以及遍历方法。


本篇文章参考:黑马程序员

一、字符串的定义

字符串是字符的容器,一个字符串可以存放任意数量的字符。每个字符都可以被视为字符串的一个元素。
①定义方式:
方式一:双引号定义法

text1="我是字符串文本数据"
print(text1)

输出结果:
我是字符串文本数据

方式二:单引号定义法

text2='我也是字符串文本数据'
print(text2)

输出结果:
我也是字符串文本数据

方式三:三引号定义法
表示在一对三个双引号的范围内均是字符串。与多行注释的写法一样,同样支持换行操作,使用变量接收它,它就是字符串,不使用变量接收它,就可以作为多行注释使用。

text3="""我也是字符串文本数据"""
text4="""
在三个引号的包围圈内
全部都是
字符串文本数据
"""
print(text3)
print(text4)

输出结果:
我也是字符串文本数据
在三个引号的包围圈内
全部都是
字符串文本数据

②特点:

  • 只可存储字符串
  • 长度任意(取决于内存大小)
  • 不可修改(增加或删除元素等)
  • 允许重复字符串存在
  • 支持下标索引
  • 支持循环

③字符串和列表、元组的区别:

  • 不同于列表不同于元组的在于:
    字符串容器可以容纳的类型是单一的,只能是字符串类型
  • 不同于列表相同于元组的在于:
    字符串不可修改

二、字符串的下标索引

在 Python 中,字符串和其它容器(如列表、元组)一样,也可通过下标进行访问。

注意:字符串中的每个字符(包括字母、数字、标点符号以及空格)都被视为单独的元素。

①基本语法:
字符串[标号]

②索引范围:
如下图,字符串中的每一个元素,都有其位置下标索引。我们只需要按照下标索引,即可取得对应位置的元素。
正向的下标索引:从前向后的方向,从0开始,依次递增(0、1、2……)。
在这里插入图片描述

注意:下标索引的取值不能超出取值范围,否则无法取出元素并且会报错。

#通过下标索引取值
my_str="Hello Python"
value1=my_str[2]
print(f"从字符串{my_str}取下标为2的元素,结果为{value1}")
# 错误示范:报错IndexError: string index out of range
# value=my_str[16]

输出结果:
从字符串Hello Python取下标为2的元素,结果为l

反向的下标索引:从后向前:从-1开始,依次递减(-1、-2、-3…)。
在这里插入图片描述

my_str="Hello Python"
value2=my_str[-10]
print(f"从字符串{my_str}取下标为-10的元素,结果为{value2}")

输出结果:
从字符串Hello Python取下标为-10的元素,结果为l

三、字符串的常用操作(方法)

字符串的常用方法:
在这里插入图片描述

①查找元素下标:
查找指定元素在字符串的下标,如果找不到,则报错ValueError。
语法:字符串.index(字符串)

# index方法
my_str="Hello Python"
value=my_str.index("Python")
print(f"从字符串{my_str}中查找Python,其起始下标为{value}")
# 错误示范:会报错 ValueError: substring not found
# value=my_str.index("a")

输出结果:
在从字符串Hello Python中查找Python,其起始下标为6

②统计元素个数:
方式一:统计字符串中某元素的出现次数
语法:字符串.count(字符串)

# count统计方法
my_str="Hello Python"
num=my_str.count("o")
print(f"字符串{my_str}中o的数量为{num}")

输出结果:
字符串Hello Python中o的数量为2

方式二:统计字符串的长度
语法:len(字符串)

# len函数统计字符串长度
my_str="Hello Python"
num= len(my_str)
print(f"字符串{my_str}的长度为{num}")

输出结果:
字符串Hello Python的长度为12

③字符串的替换:
语法:字符串.replace(字符串1,字符串2)
注意:不是修改字符串本身,而是得到了一个新字符串

# replace方法
my_str="Hello Python"
new_my_str=my_str.replace("Hello","Hi")
print(f"将字符串{my_str}进行替换后得到{new_my_str}")

输出结果:
将字符串Hello Python进行替换后得到Hi Python

可以看到,字符串my_str本身并没有发生变化,而是得到了一个新字符串对象new_my_str。

④字符串的分割:
按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中。
语法:字符串.split(分隔符字符串)
注意:字符串本身不变,而是得到了一个列表对象

# split方法
my_str="Hello Python Hello World"
# 按照空格进行切分
new_str_list=my_str.split(" ")
print(f"将字符串{my_str}进行切分后得到{new_str_list},类型是{type(new_str_list)}")

输出结果:
将字符串Hello Python Hello World进行切分后得到[‘Hello’, ‘Python’, ‘Hello’, ‘World’],类型是<class ‘list’>

可以看到,字符串按照给定的 “空格”进行了分割,变成多个子字符串,并存入一个列表对象中。

⑤字符串的规整操作:
方式一:去除前后空格:
语法:字符串.strip()

# strip方法
my_str="   Hello Python Hello World   "
# 不传入参数,去除首尾空格
new_my_str=my_str.strip()
print(f"字符串{my_str}被strip后,结果为{new_my_str}")

输出结果:
字符串  Hello Python Hello World  被strip后,结果为Hello Python Hello World

方式二:去除前后指定字符串
语法:字符串.strip(字符串)

my_str="134Hello Python Hello World431"
new_my_str=my_str.strip("134")
print(f"字符串{my_str}被strip后,结果为{new_my_str}")

输出结果:
字符串134Hello Python Hello World431被strip后,结果为Hello Python Hello World

注意:传入的字符串“134” 其实就是传入字符“1”、“3”和“4”,strip() 方法会分别检查字符串的开头和结尾,并按照单个字符“1”、“3”和“4”去除指定字符,所以开头的“134”以及结尾的的“431”都会被去除。

四、字符串的遍历

①while循坏遍历:
定义一个变量表示下标,从0开始。
循环条件为:下标值 < 元组的元素数量

基本语法:
index = 0
while index < len(字符串):
  元素 = 字符串[index]
  对元素进行处理
  index += 1

#字符串的遍历:while
my_str="Hello Python"
index=0
while index<len(my_str):
    element=my_str[index]
    print(element,end='')
    index+=1

输出结果:
Hello Python

②for循坏遍历:
从容器内,依次取出元素并赋值到临时变量上。在每一次的循环中,我们可以对临时变量(元素)进行处理。

基本语法:
for 临时变量 in 数据容器:
  对临时变量进行处理

#字符串的遍历:for
my_str="Hello Python"
for element in my_str:
    print(element,end='')

输出结果:
Hello Python

for循环和while循坏遍历对比:

  • for循环更简单,while更灵活
  • for循环适用于,遍历数据容器的场景或简单的固定次数循环场景;while循环适用于任何想要循环的场景
  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值