容器概念: 可以容纳多个元素的python数据类型 就是容器

容器分类 : 字符串 str        列表list             元组tuple       集合set     字典dict

支持          重复/有序    重复/有序/修改     重复/有序        修改            修改

符号              " "                    []                   小括号()      大括号set()       大括号{}代表字典

     

有序可重复 : 字符串 列表 元组
无序不重复  集合 字典

内容可以修改  列表 集合 字典
本身不可以修改的 字符串 元组

定义字符串

空字符串 ' '  " "  """ """  str()

定义非空   ' 1'  "1 "  """ 1"""  

注意 引号可以嵌套包裹 不过 只能 双引 包单引  不能同级包 

示例:
# 定义空字符串
s1 = ''
s2 = ""
s3 = ''''''
s4 = """"""
s5 = str()
print(s1, s2, s3, s4, s5)
print(type(s1), type(s2), type(s3), type(s4), type(s5))

# 定义非空字符串
s6 = 'abcd'
s7 = "abcd"
s8 = '''ab
cd'''
s9 = """ab
cd"""
print(s6, type(s6))
print(s7, type(s7))
print(s8, type(s8))
print(s9, type(s9))
# 字符串引号嵌套
s10 = "我最近看了一本书,书名是'钢铁是怎样练成的'! "
print(s10, type(s10))

字符串的下标索引

知识点:

索引: 也叫下标,就是咱们所说的编号,只是这个编号比较特殊,有两套编号

正索引:从左到右,从0开始依次递增
负索引:从右到左,从-1开始依次递减

字符串名[索引]: 查询指定索引位置处的元素

# 需求: 定义非空字符串,存储多个字符
ss = "abcdefg"
# 需求: 获取第一个位置的字符
print(ss[0])
print(ss[-7])
# 需求: 获取第四个位置的字符
print(ss[3])
print(ss[-4])
# 需求: 获取最后个位置的字符
print(ss[-1])
print(ss[6])
# 注意: 如果访问了不存在的索引,就会报索引越界异常
print(ss[7])

字符串的切片操作

切牌你的前提:是容器要有索引!!! 不然没有办法切片 因为没有顺序(我们不知道) 不知道怎么切

切片的格式: 字符串名[起始索引:结束标记(不包):步长]

切片的特点:包左不包右,起始索引如果不写默认从头开始,结束标记不写默认到末尾,步长默认是1
切片的方向:步长如果是正数0就是头,步长如果是负数-1就是头
举例:
字符串: i t h e i m a
正索引: 0 1 2 3 4 5 6
负索引:-7-6-5-4-3-2-1


# 需求: 定义字符串变量存储'itheima'
s = 'itheima'
# 需求: 打印字符串
print(s)
print(s[::1])
print(s[::])
print(s[:])
print('-------------------')
# 需求: 要求反转字符串打印
print(s[::-1])
print('-------------------')
# 需求: 截取出it
print(s[0:2])
print(s[-7:-5])
print(s[-7:2])
print(s[:2])
print('-------------------')
# 需求: 截取出hei
print(s[2:5:])
print(s[-5:-2:])
print(s[-5:5:])
print('-------------------')
# 需求: 截取出ma
print(s[5:7:])
print(s[5::])
print(s[-2::])
print('-------------------')
# 需求: 截取出ihia
print(s[::2])

字符串的查询

字符串名[索引]:查询指定索引位置处的元素
字符串名.count(元素): 查询指定元素在字符串中出现的次数 ##元素不存在就返回0
字符串名.index(元素): 查询指定元素在字符串中出现的索引位置
#如果元素有多个只能返回第一个,如果不存在就报错
len(字符串名):查询指定字符串的元素总个数

"""字符串是一个不可变类型"""

# 需求: 定义字符串变量存储'itheima'
s = 'itheima'
# 1.字符串名[索引]: 查询指定索引位置处的元素
# 需求: 查找第一个位置元素是什么
print(s[0])
# 需求: 查找最后一个位置元素是什么
print(s[-1])

# 2.字符串名.count(元素):查询指定元素在字符串中出现的次数
# 需求: 查找'i'元素的个数
print(s.count('i'))
# 注意:如果元素不存在就返回0
print(s.count('b'))

# 3.字符串名.index(元素):查询指定元素在字符串中出现的索引位置 注意:如果元素多个只返回第一个
print(s.index('i'))
# 如果不存在就报错
# print(s.index('b')) # 报错

# 4.len(字符串名): 查询指定字符串的元素总个数
print(len(s))

字符串的特有操作!!!

replace(旧字符串,新字符串,替换几次):把指定旧字符串替换为新字符串,默认替换所有
strip():默认就是去除两端的空白

split(分隔符,切几次):根据指定分隔符切割字符串,默认切所有并放到列表中
分隔符.join(村粗了字符串的容器):用指定分隔符把容器中的字符串拼接一个大字符串

startswith(字符串):判断是否以指定字符串开头
endwith(字符串):判断是否以指定字符串结尾

encode(编码):编码操作
decode(编码):解码操作

upper():把所有字母都转为大写
lower():把所有字母都转为小写

find(元素):从左往右查找指定元素在字符串中出现的索引位置(正索引),古国不存在返回-1
rfind(元素):从右往左  也是正索引

isdigit():判断字符串内容是否是数字

"""字符串的特有操作,并不是修改本身,而是返回新的内容"""

# replace(旧字符串,新字符串,替换几次): 把指定旧字符串替换为新字符串,默认替换所有
print("你TMD哦,我TMD真喜欢你!".replace('TMD', '***', 1))
# strip(): 默认就是去除两端的空白
print(" 张三,18 ".strip())


# split(分隔符,切几次): 根据指定分隔符切割字符串,默认切所有并放到列表中
print(" 张三,18 ".split(','))
# 链式编程
print(" 张三,18 ".strip().split(','))
# 分隔符.join(存储了字符串的容器): 用指定分隔符把容器中的字符串拼接一个大字符串
print("-".join(['张三', '18']))
# 已知列表['张三', '18'],要求变成张三的年龄是18
print("的年龄是".join(['张三', '18']))


# startswith(字符串): 判断是否以指定字符串开头
print('张三丰'.startswith('张'))
print('张三丰'.startswith('王'))
# endswith(字符串): 判断是否以指定字符串结尾
print('张三丰'.endswith('丰'))
print('张三丰'.endswith('锋'))


# encode(编码): 编码操作
print('你好'.encode('utf8'))
# decode(编码): 解码操作
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('gbk'))
print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf8'))


# upper(): 把所有字母都转为大写
print('iTheiMa'.upper())
# lower(): 把所有字母都转为小写
print('iTheiMa'.lower())


# find(元素):从左往右查找指定元素在字符串中出现的索引位置(正索引)
print('itheima'.find('i'))
# 如果不存在就返回-1
print('itheima'.find('b'))


# rfind(元素):从右往左查找指定元素在字符串中出现的索引位置(正索引),如果不存在就返回-1
print('itheima'.rfind('i'))
# 如果不存在就返回-1
print('itheima'.rfind('b'))

# 已知文件a.b.txt,分别获取文件名和后缀名
name = 'a.b.txt'
print(name.rfind('.'))  # 3
print(name[:3])
print(name[3:])

# isdigit(): 判断字符串内容是否是数字(整数)
print('abc'.isdigit())
print('3.14'.isdigit())
print('10'.isdigit())

字符串的遍历

for循环又叫做遍历循环,格式如下:

for i in str:
        循环体

用while循环 用变量充当索引使用
index = 0 
while index < len(str)
        元素变量= 字符串[index]
        循环体
        index +=1

# 定义非空字符串
ss = 'abcde'
# for循环方式
for s in ss:
    print(s)

print('---------------')
# while循环方式
# 核心思想: 用while的变量作为字符串的索引,所以变量的范围就是索引的范围
index = 0
while index < len(ss):
    s = ss[index]
    print(s)
    index += 1

字符串的特点
可以容纳多个元素
元素只能是字符
元素可以重复
元素不可以修改
元素是有下标索引
支持for循环遍历
支持while循环遍历

更多推荐