"""字符串索引"""
s = "hello world"
print(s[1]) # e
print(s[6]) # w
# 索引也支持负数下标(index)
print(s[-3]) # r
print(s[-4]) # o
print(s[-7]) # o
"""字符串切片 左闭右开原则
切片操作在工作中常用的格式:
s[a:b] # 从左往右,从下标a截取到b位置,不包含b
s[a:] # 从左往右,从下标a开始截取到最后
s[:b] # 从左往右,从最左边开始,截取到下标b,不包含b
s[::-1] # 翻转字符串
"""
s = "hello world"
print(s[2:5]) # llo
print(s[-9:-6]) # llo
print(s[2:-6]) # llo
print(s[-9:5]) # llo
print(s[0:5]) # hello
print(s[:5]) # hello
print(s[6:]) # world
print(s[:]) # hello world
"""切片操作过程中,除了声明切片的开始位置和结束位置以外 ,还可以通过第三个数值来声明切片操作的方向和切片操作的步进值
所谓的步进值,就是python在操作过程中跳跃的步骤
切片操作过程中,默认的步进值为1
s[开始下标:结束下标:步进值]
"""
s = "123456789"
print(s[::2]) # 13579 这里表示提取一个索引对应的字符以后,下标+2
print(s[1::2]) # 2468
print(s[4::2]) # 579
print(s[::3]) # 147
# 翻转字符串,在步进值中,正数表示从左往右,负数表示从右往左
print(s[::-1]) # 987654321
"""
索引取值,当下标不存在时,python会报错
切片取值,当下标不存在时,不会报错,返回空序列,字符串的空序列就是空字符串""
"""
s = "abcdef"
# print(s[9]) # IndexError: string index out of range
ret = s[9:]
print(ret, type(ret)) # "" <class 'str'>
"""可以使用in关键字 判断指定字符或指定字符串是否在目标字符串中出现
in 执行的结果,只会是布尔值,True/False"""
# message = input("请输入你的留言:")
# print("hello" in message)
email = "www@qq.com"
print("@" in email) # True
"""字符串可以使用+号拼接"""
province = "北京省"
city = "石家庄"
area = "七环区"
addr = province+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*30) # ++++++++++++++++++++++++++++++
"""字符串解包,也叫解构"""
# 表示把一个序列的数据,按成员数量拆分成对应数量的变量进行保存
s = "li"
a1, a2 = s
print(a1) # l
print(a2) # i
# 如果成员的数量与等号左边的变量数量不等,则报错
# s = "www"
# a1, a2, a3, a4 = s
# print(a1, a2, a3) # ValueError: not enough values to unpack (expected 4, got 3)
# s = "www"
# a1, a2 = s
# print(a1, a2) # ValueError: too many values to unpack (expected 2)
day03-1-序列类型-字符串-序列操作
最新推荐文章于 2024-09-05 10:28:02 发布