1-序列类型-字符串str-序列操作

str 字符串

索引取值(提取单个值)

s = "hello world"
print(s[1]) # e
print(s[6]) # w
# 索引也支持负数下标
print(s[-3]) # r
# 使用负数下标提取字符 o
print(s[-4]) # o
print(s[-7]) # o

切片操作 左闭右开

s = "hello world"
print(s[2:5]) # llo
print((s[-9:-6])) # llo
print(s[2:-6]) # llo
print(s[-9:-5]) # llo
# 提取hello
print(s[0:5]) # hello
# 如果提取的内容,包含字符的最开始位置,则左边的 0 可以简写
print(s[:5]) # hello
# 提取world
print(s[6:]) # world
# 从s中提取全部字符
print(s[:]) # hello world

使用 下标索引 或 切片 操作过程中,针对不存在的下标,结果是不一样的
索引取值,当 索引 不存在时,python会报错

s = "abcdef"
print(s[9]) # IndexError: string index out of range 索引错误:字符串的索引操作超出了范围

切片 取值,当索引不存在时,不会报错,而是返回空序列
字符串的空序列,就是空字符串 ""

# 从索引9的位置往后提取切片
s = "abcdef"
ret = s[9:]
print(ret,type(ret)) # <class 'str'>

切片操作过程中,
除了声明切片的开始位置和结束位置以外,
还可以通过第三个数值来声明 切片的方向 和 切片操作的步进值,
所谓步进值,就是python在操作过程中跳跃的步骤,
切片操作过程中,默认的步进值为1

s = "123456789"
# 提取s中的奇数数字
print(s[::2]) # 13579,这里表示提取一个索引对应的字符以后,下标+2
# 提取s中的偶数
print(s[1::2]) # 2468
print(s[4::2]) # 579
print(s[:-2:3]) # 147
# 翻转字符串,在步进值中,正数表示从左往右,负数表示从右往左
print(s[::-1]) # 987654321

可以用 in 关键字,判断 指定字符 或 指定字符串 是否在 目标字符串 中出现
in 执行的结果,只会是布尔值,True/False

message = input("请输入你的留言:")
print("hello" in message)
email = "www@qq.com"
print("@" in email) # True

可以使用 + 号拼接两边的字符串

provice = "河北省"
city = "石家庄"
area = "裕华区"
addr = provice + city + area
print(addr) # 河北省石家庄裕华区
# 但是字符串不能和数字相加
# 以下是错误写法:
print("1" + 1) # TypeError: can only concatenate str (not "int") to str

工作中常见的情况:

weight1 = input("请输入货物重量:") #用户录入的数据往往都是字符串,即使用户填写的是数字,input提取到的也是字符串
weight2 = 3.5
total_weight = float(weight1) + weight2
print(total_weight)

乘法叠加字符串,一般也叫填充

s = "+"
print(s*10) # ++++++++++

解包,也叫解构,

表示把一个序列的数据,按成员数量拆分成对应数量的变量进行保存

s = "hu"
a1, a2 = s
print(a1) # h
print(a2) # u
# 如果成员的数量与等号左边的变量数量不等,则报错
s = "www"
a1, a2, a3, a4 = s
print(a1, a2, a3) # ValueError: not enough values to unpack (expected 4, got 3)
# 值类型错误:没有足够的成员来进行解包(等号左边期望是4个,结果等号右边只提供了3个)
s = "www"
a1, a2 = s
print((a1, a2)) # ValueError: too many values to unpack (expected 2)
# 值类型错误:太多的成员需要解包了(等号左边希望是2个)

posted on   likeyog  阅读(31)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示