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

"""字符串索引"""
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)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值