字符串解释:
概述: 它是Python中应用最多的数据类型,其值要用引号包括,单引号 双引号 三引号都可以
定义格式:
str1 = 'abc'
str2 = "abc"
str = '''abc''' 或者 """abc"""
案例:
# 需求1: 定义字符串, 并打印, 观察其数据类型.
str1 = 'abc'
print(f'内容: {str1}, 类型: {type(str1)}')
str2 = "abc"
print(f'内容: {str2}, 类型: {type(str2)}')
print('-' * 30)
# 需求2: 定义带格式(换行)的字符串.
str3 = '''select
*
from
student;'''
print(str3)
print(type(str3))
print('-' * 30)
# 需求3: 如何定义字符串, 记录: I'm Tom!
# 写法1: 外双 内单 也可以换成外单,内双, 只不过这里不适合.
str4 = "I'm Tom!"
print(str4)
# str5 = 'I"m Tom!' 语法可以这么写, 只不过不满足题设.
# print(str5)
# 写法2: 使用转义符
str6 = 'I\'m Tom!'
print(str6)
字符串的切片
"""
字符串切片介绍:
概述:
所谓的字符串切片, 就是从字符串中 "拷贝"一小段出来.
解释:
字符串中每个字符都是有编号的(索引, 下标, 脚标).
正向索引: 编号是从 0 开始的, 从左往右, 依次递增.
逆向索引: 编号从 -1 开始, 从右往左, 依次递减.
格式:
字符串变量名[索引] 根据索引获取其对应的(一个)字符
字符串变量名[起始索引:结束索引:步长] 截取 [起始索引, 结束索引)区间的内容, 且要按照步长
记忆(细节):
如果 起始索引 -> 结束索引的方向 和 步长的方向不一致, 不报错, 但是截取不到数据.
即: 如果要 切片截取数据, 必须保证 截取方向(起始 -> 结束的方向) 和 步长方向(正数: 正向, 负数: 逆向)一致.
例如:
字符串: a b c d e f g h i
正向索引: 0 1 2 3 4 5 6 7 8
逆向索引: -9 -8 -7 -6 -5 -4 -3 -2 -1
"""
# 1. 定义变量, 记录字符串.
my_str = 'abcdefghi'
# 2. 演示切片.
# 正向切片 -> 采用正向索引
print(my_str[1:5:2]) # [1, 5), 步长为2, 即: bd
print(my_str[1:5]) # [1, 5), 默认步长为1, 即: bcde
print(my_str[3:]) # [3, 最后), 默认步长为1, 即: defghi, 这里的最后是: 字符串的长度.
print(my_str[3::3]) # [3, 最后), 步长为3, 即: dg
print(my_str[::3]) # [0, 最后), 步长为3, 即: adg
print(my_str[:6:2]) # [0, 6), 步长为2, 即: ace
print('-' * 30)
# 正向切片 -> 采用逆向索引
print(my_str[-8:-3:1]) # bcdef
print(my_str[-8:-3:2]) # bdf
print(my_str[-6::2]) # dfh
print(my_str[:-5:3]) # ad
print('-' * 30)
# 正向切片 -> 采用 正向索引 + 逆向索引.
print(my_str[1:-1:2]) # bdfh
print('-' * 30)
# 逆向切片
print(my_str[-3:-7:-1]) # gfed
# print(my_str[-3:-7:1]) # 不报错, 但是没有数据, 因为start -> end的方式 和 步长方向不一致
# 掌握(一种特殊写法), 反转字符串
print(my_str[::-1]) # ihgfedcba
print('-' * 30)
# 关于 字符串变量名[起始索引:] 的解释, 如果不写结束索引, 默认值是: 字符串的长度.
print(my_str[3:]) # [3, 最后), 默认步长为1, 即: defghi, 这里的最后是: 字符串的长度.
print(my_str[3:9]) # 效果同上, 即: [3, 9)
print(len(my_str)) # 获取字符串的长度, 9