双引号或者单引号中的数据,就是字符串 。
每行末尾添加#的为注释内容,不会进行编译
例1

a = "I'm 卖鱼哥" # 一对双引号
print(a)
a = '卖鱼哥 said:"把持不住哦这样" ' # 一对单引号
print(a)
a = '卖鱼哥 said:\"I\'m 自爆\"' #转义字符
print(a)
a = '''卖鱼哥 said:"I'm 疯狂开车" ''' # 三个单引号
print(a)
a = """卖鱼哥 said:"I'm 玩了那么久,从来没有翻过车" """ # 三个双引号
print(a)

每次使用print()后都重新赋值给a变量,所以可以看出,python按顺序一行一行地执行

I'm 卖鱼哥
卖鱼哥 said:"把持不住哦这样"
卖鱼哥 said:"I'm 自爆"
卖鱼哥 said:"I'm 疯狂开车"
卖鱼哥 said:"I'm 玩了那么久,从来没有翻过车"

例2

m = '我' #一对单引号
print(m)
m = "也想"#一对双引号
print(m)
m = '''如此的'''#三个单引号
print(m)
m = """顺滑"""#三个双引号
print(m)
我
也想
如此的
顺滑

例3
字符串里面有双引号,外面就可以使用单引号。

m = ' 林北对朱振亿说:"别捉弄我好吗!索海!"'
print(m)
m = """ 林北对朱振亿说:"别捉弄我好吗!索海!" """
print(m)
m = "I'm 超级大索海!"
print(m)
林北对朱振亿说:"别捉弄我好吗!索海!"
林北对朱振亿说:"别捉弄我好吗!索海!"
I'm 超级大索海!

转义字符是一类特殊的字符:
1、展示无法看见的字符
2、与语言本身语法有冲突的字符
3、python中的转义字符为\

a = '卖鱼哥 said:\"I\'m 自爆\"' #转义字符
print(a)
卖鱼哥 said:"I'm 自爆"
\" 表示使用【\】把【"】转义为字符数据,因为【"】在python中有语法上的使用

例子4 \n换行转义符 当前位置移到下一行开头

a = """卖鱼哥 said:\"I\'m 玩了那么久,\n从来没有翻过车\" """ # 三个双引号
print(a)
卖鱼哥 said:"I'm 玩了那么久,
从来没有翻过车"

例子5 \t 横向制表符转义符 增加了4个空格 或者一个tab键

a = """卖鱼哥 said:\"I\'m 玩了那么久,\t从来没有翻过车" """ # 三个双引号
print(a)
卖鱼哥 said:"I'm 玩了那么久,   从来没有翻过车"

例子6 因为这里的文本不支持格式写到了下一行

# \'单引号转义符    \" 双引号转义符     \\代表一个反斜线字符 \
a = """卖鱼哥 said:\"I\'m 玩了那么久,从来没有翻过车\" """ # 三个双引号
print(a)
卖鱼哥 said:"I'm 玩了那么久,从来没有翻过车"

例子7 \r 当前位置之后的移到当行开头 并且占用当行开头位置 替换所需要的占位
例子

a = """AAAA,从来没有翻过车""" # 三个双引号
print(a)
a = """AAAA,从来没有\r翻过车""" # 三个双引号
print(a)
a = """AAAA,从来没\r有翻过车""" # 三个双引号
print(a)
AAAA,从来没有翻过车"
翻过车A,从来没有
有翻过车,从来没

下标和切片
下标/索引
所谓 “下标” 又叫 “索引” ,就是编号,就好比游乐场中的存储柜的编号,通过这个编号就能找到相应的存储空间

下标 又称之为索引, 表示第几个数据.

#可迭代对象: str list tuple dict set range 都可以遍历
#         字符串 列表 元组  字典 集  排序 
#Str list tuple 可以通过下标来获取或者操作数据

#在计算机里,下标都是从θ开始的

输入

word="想要拥抱你却不在" # 字符串:一个ー个的字符串在一起
  #  0 1 2 3 4 5 67
#可以通过下标来获取或者修改指定位置的数据
print(word[4])

输出

报错实例

word[4] = "她"
print(word[4])
这会出错

输入
切片 包含start,不包含end

a = "让你爱上我要多久?"
#    0 1 2 3 4 5 6 7 8    第8位为?
print(a[4])# a[index] ==>获取指定下标上的数据
# 切片语法a[start:end:step]
# 包含 start,不包含end
# step指的是步长
print(a[3:8])#包含start,不包含end
print(a[3:9])#包含start,不包含end

输出

C:\Users\Administrator>C:\Users\Administrator\Desktop\test01.py
我
上我要多久
上我要多久?

输入
如果只设了 start,会’截取’到最后
如果值设置了end,会从头开始”截取"

a = "让你爱上我要多久?"
#    0 1 2 3 4 5 6 7 8  第8位为"问号"
print(a[2:]) # 如果只设了 start,会'截取'到最后
print(a[:5]) # 如果值设置了end,会从头开始”截取"

输出

爱上我要多久?
让你爱上我

输入 关于切片步长

a = "上单这个家伙听着悲伤的歌曲在乱杀!赶紧投!"
#    0 1 2 3 4 5 6 7 8 9 1011121314151617181920
# 步长默认为1
print(a[3:10:2])#第一行 输出 3-5-7-9 下标(索引)
print(a[3:10:1])#第二行 输出 3-4-5-6-7-8-9 下标(索引)
#print(a[3:7:0]) # 步长不能为0   报错
print('-------')

输出

个伙着伤
个家伙听着悲伤
-------

步长为-1 反着过来切片的时候用到
输入

a = "上单这个家伙听着悲伤的歌曲在乱杀!赶紧投!"
#    0 1 2 3 4 5 6 7 8 9 1011121314151617181920
#    2019181716151413121110 9 8 7 6 5 4 3 2 1 0
print(a[3:7:-1]) # 没有数据
print(a[7:3:-1]) # 7 6 5 4
print(a[::]) # 从头到最后复制
print(a[::-1])# 颠倒
print(a[-9:-5])# start和end都是负数,表示从右边数 8765

输出

着听伙家
上单这个家伙听着悲伤的歌曲在乱杀!赶紧投!
!投紧赶!杀乱在曲歌的伤悲着听伙家个这单上
曲在乱杀

遍历
所谓遍历,可以理解为按照一定的规则(一般情况下就是数据的下标),访问每一个数据。
不是所有的数据都 能够被遍历,字符串是可迭代对象,能够进行遍历。
可以使用while和for语句,对字符串里的元素进行遍历。
while语句遍历:

bbq = '我们的故事开始'
i = 0
while i < len(bbq):
    print(bbq[i])
    i += 1
我
们
的
故
事
开
始

for语句遍历:

bbq = '最后最后还是寂寞已久' 
for a in bbq:    
    print(a)
最
后
最
后
还
是
寂
寞
已
久

切片
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长],也可以简化使用 [起始:结束]
注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。

# 索引是通过下标取某一个元素 
# 切片是通过下标去某一段元素
a = '再多听几次分开的话!' 
#    0 1 2 3 4 5 6 7 8 9
#    9 8 7 6 5 4 3 2 1 0
print(a)

print(a[4])  # '几' 字符串里的第4个元素
print(a[3:7])  # '几次分开' 包含下标 3,包含下标 7
print(a[:]) # '再多听几次分开的话!'  取出所有元素(没有起始位和结束位之分),默认步长为1
print(a[1:]) # '多听几次分开的话!'  从下标为1开始,取出后面所有的元素(没有结束位)
print(a[:4])  # '再多听几'  从起始位置开始,取到下标为4的前一个元素(不包括结束位本身)
print(a[:-1]) # '再多听几次分开的话'  从起始位置开始,取到 倒数第一个元素(不包括结束位本身)
print(a[-4:-1]) # '分开的' 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)
print(a[1:5:2]) # '多几' 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)
print(a[7:2:-1]) # '的开分次几' 从下标为7的元素开始(包含下标为7的元素),倒着取到下标为2的元素(不包括 下标为2的元素) 
# python 字符串快速逆置 
print(a[::-1])  # '!话的开分次几听多再' 从后向前,按步长为1进行取值

输出

再多听几次分开的话!
次
几次分开
再多听几次分开的话!
多听几次分开的话!
再多听几
再多听几次分开的话
开的话
多几
的开分次几
!话的开分次几听多再