python学习笔记3
字符串str的方法
- 字符串也是一个数据容器,一个可以放置很多字符的数据容器,支持下标索引
- 字符串的内容不能修改,如果改变,则得到的是一个新的字符串,不再是原来的字符串了
- 通过下标索引取出字符串中的字符:正向索引和反向索引均可。空格也是一个字符
Index()
方法:mystr = "itheima and itcast and" # value是查找到的第一个字符串“and”的起始下标位置 value = mystr.index("and") #返回8 空格也是一个字符 返回第一个and中a的下标 print(f"and的第一个字母下标是:{value}") print(mystr.index("a")) #打印结果是6 返回第一个a的下标
repalce()
方法:
- new_mystr =
mystr("原字符串", "新字符串")
- 由于字符串内容不可修改,所以mystr并没有变化,相当于把mystr复制一下并修改,然后
返回
给new_mystr。这个过程中,mystr不变,得到一个新的字符串new_mystr- 使用
replace()方法删除字符串中字符串
:
new = my_str.replace(“delet”, “”):通过这种方式,可以把my_str中所有的delet字符串给删掉,注意第二个引号之间什么都没有,如果有空格,则会用空格代替delet字符串mystr = "itheima and itcast and" new_mystr = mystr.replace("it", "程序") #replace()方法替换 print(mystr) #结果:itheima and itcast and print(new_mystr)#结果:程序heima and 程序cast and
split()方法
- 语法:
mystr.split(分隔符字符串)
- 功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
- 注意:字符串本身不变,而是得到了一个列表对象
mystr = "hello python ni hao python" # 以on作为分隔符 new_str_list = mystr.split("on") # 原字符串不变,得到一个新列表对象 print(mystr, type(mystr)) #结果:hello python ni hao python <class 'str'> 不变 print(new_str_list, type(new_str_list)) #结果:['hello pyth', ' ni hao pyth', ''] <class 'list'> # on是分隔符,所以字符串中所有on出现的地方两端自动分隔,由于最后的on是在字符串的末尾,所以分隔的时候多出来一个空格。
strip()方法
:字符串的规整操作
- 语法:字符串.strip():去除前后空格
字符串.strip(字符串):去除前后字符串中的字符mystr = "1312hello python ni hao python24212" new = mystr.strip("12") # 从最前和最后端开始,找到 1去掉 1,找到 2去掉 2,找的的如果既不是 1也不是 2,则停止。如果圆括号内为空,则是去掉前后端的空格 print(new) # 结果:312hello python ni hao python24 去掉 3前面的 1和 4后面的 212 print(mystr) # 结果:1312hello python ni hao python24212
count()方法
:
- 语法:count = mystr.count(“py”) 统计字符串 "py"出现的次数
- print(count)
len()
:len(mystr) 统计字符串的长度
序列
- 序列:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串均可以视为序列
- 序列支持切片。
切片
:从一个序列中取出一个子序列
- 语法:序列[起始下标:结束下标:步长]
- 起始下标留空:从头开始(下标为0) ;结束下标(取出的元素不包含结束下标本身)留空:截取到结尾 (下标为-1)
- 步长为N表示:每次跳过N-1个元素取 ; 步长为负数表示反向取(此时起始下标和结束下标也要反向标记),例如
mylist[5:1:-1]
- 序列倒序输出
mylist[::-1]
- 序列正序输出
mylist[:]
(默认步长是1时可以省略,所以只有一个冒号)- 序列正向输出步长为2
mylist[::2]
- 对序列进行切片操作并不影响序列本身,而是会得到一个新的序列(元组、字符串不可更改)
- 一个例子
# 得到字符串"今天是个好日子" my_str = "oah in 子日好个是天今 nohtyP 学" # 方法1 str1 = my_str[13:6:-1] print(str1) # 方法2 str2 = my_str[::-1][9:16] print(str2)
其他
1. #一个小想法:
my_list = [[0, 1, 2, 3, 4], 5, 6, 7, [8, 9]]
#例1:取出数字2:
my_list[0][2]
#例2:想知道数字8的下标:
index = my_list[4].index(8)
#例3:以及上面得到字符串“今天是个好日子”的方法二:
my_str = "oah in 子日好个是天今 nohtyP 学"
str2 = my_str[::-1][9:16]
"""
读取信息的方法(顺序)是:
2. 先通过my_list确定这个序列,此时不关心mylist内部元素的形式(列表、元组、字符串等等)
3. 对mylist来说,它里面只有 元素1 元素2 元素3······,它也不清楚也不关心元素1内部是否还有其他东西
4. 再通过[0]确定外层下标,此时的mylist开始关注 元素1 ,关注元素1的形式(列表、元组、字符串等等)
5. 如果元素1是列表,那么pycharm知道这个信息,就会产生一系列列表可用的方法。这就是例2,对嵌套列表的内部列表进行操作
6. 现在还有[2],在第5中,pycharm已经知道my_list[0]是一个列表,于是就通过[2]得到下标是2的元素,并返回,这就是例1 。(获取嵌套列表内部信息、进入嵌套列表)
7. 换言之,如果直接是my_list.insert(),只会对整个my_list列表进行插入;但如果是my_list[0].insert(),则会关注到my_list的元素1,并对元素1进行插入操作
8. 同样对于字符串例3:先是通过my_str确定字符串,再通过[::-1]将字符串反转,获得一个暂时的新的字符串temp_my_str,然后再通过[9:16]将temp_my_str下标9:16的元素取出
"""