bigdata’‘’
print(str3)
str4 = “”"
弃我去者昨日之日不可留
乱我心者今日之日多烦忧
长风万里送秋雁
对此可以酣高楼
…
“”"
三对引号可以作为多行注释
需求 : 输出 I’m Jake.
如果字符串被双引号包裹,则内部可以单独使用单引号
print(“I’m jake”)
需求:输出"鲁迅说:I’m a 周树人"
print(‘’‘“孔子说:I’m a 文豪”’‘’)
2、字符串索引
索引就是系统给字符串中每一个元素的编号
-
正数索引:从0开始,从左至右依次递增
-
负数索引:从-1开时,从右至左依次递减
使用索引可以获取字符串中的元素
- 字符串[元素的索引]
什么是字符串索引?
就是保存字符串时,将所有字符依次存入字符串所在空间,并且按照顺序将元素依次存放, 为了方便存取数据,我们讲元素进行编号,从0开始依次递增
通过下标索引,可以获取元素,或者进行切片等操作
‘’’
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
str1 = ‘itheima’
通过索引获取元素的格式: 字符串[元素索引]
需求:想获取第5个元素
print(str1[4])
需求:获取t
print(str1[1])
‘’’
i t h e i m a
正数索引
0 1 2 3 4 5 6
负数索引
-7 -6 -5 -4 -3 -2 -1
‘’’
结论:字符串中的索引,正数索引从0开始,从左至右依次递增, 负数索引,从-1开始从右至左依次递减
需求:使用负数索引取 m
print(str1[-2])
print(str1[-4])
输入 input
user_name = input(‘请输入你的用户名’)
输出
print(f’您的用户名是{user_name}')
print(‘您输入的用户名是%s’ % user_name)
3、字符串切片
字符串切片就是讲字符串中的一部分数据按照指定规则进行分隔得到的新的字符串
字符串切片的格式
字符串[起始位置索引:终止位置索引:步长]
起始位置可以省略:
-
步长为正:起始位置默认为字符串开始
-
步长为负:起始位置默认为字符串结束
终止位置可以省略:
-
步长为正:终止位置默认为字符串结束
-
步长为负:终止位置默认为字符串开始
步长可以省略,省略后默认为1,并且可以省略冒号
复制字符串:str[:]
反转字符串:str[::-1]
注意:如果步长为正,则起始位置在终止位置左侧,如果步长为负,则起始位置在终止位置右侧
切片:就是按照一定的索引位置和步长将字符串分割出一部分就是切片
切片的格式:数据序列[起始位置索引:结束位置索引:步长] 字符串,列表,元组,都可以进行切片
str1 = ‘itheima’
需求:将the切片出来
字符串切片以及其他容器类型的切片操作,都会重新生成一个新的数据序列,不会对原有数据序列产生影响
str2 = str1[1:4:1]
print(str2)
切片逻辑
起始位置: 字符串切片的起点(包含)
结束位置:字符串切片的终点(不包含)
在开发中绝大多数范围区间是左闭右开区间,其余内容单独记忆(例如 randint是一个闭区间)
步长:步长就是每一次查找数据的间隔(相邻两个索引的差值就是步长)
‘’’
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
str2 = ‘我爱北京天安门,天安门上太阳升!’
获取"北京天安门"
print(str2[2:7:1])
如果步长为1 可以被省略
步长省略后,:也可以省略
print(str2[2:7])
起始位置也可以省略
如果起始位置省略,步长为正数,则起始位置为字符串开始
print(str2[:7:1]) # 我爱北京天安门
如果起始位置省略,步长为负数,则起始位置为字符串末尾
print(str2[:7:-1]) # !升阳太上门安天
为什么为空? 字符串切片起点 是索引为2 的位置, 步长是-1 切片区间[2,7),此时从2的位置从右向左步长为1 切片此区域没有数据.
print(str2[2:7:-1]) # 空字符串
结论: 如果步长是负数,开始位置要在结束位置右侧,否则没有数据
结束位置可以省略
如果结束位置省略,步长为正数,则结束位置为字符串末尾
print(str2[8::1]) # 天安门上太阳升!
下方表达式和上一行是否含义相同? 不相同,因为结束位置写-1不包含结束位置
print(str2[8👎1]) # 天安门上太阳升
如果结束位置省略,步长为负数,则结束位置为字符串开始
print(str2[8::-1]) # 天,门安天京北爱我
如果结束位置写0 含义也不相同
print(str2[8:0:-1]) # 天,门安天京北爱我
需求:在字符串中截取"天门天门"
print(str2[4: 11: 2]) # 天门天门
在使用字符串切片进行非1步长书写时,要注意起始位置和结束位置,并且查看间隔
Python中优雅的字符串反转方式
print(str2[::-1]) # !升阳太上门安天,门安天京北爱我
python中复制数据序列的方法
str3 = str2[:]
print(str3) # 我爱北京天安门,天安门上太阳升!
4、字符串查询
-
index:查找字符串中子字符串所在位置i,如果有该字符串,查询其
==从左至右==
第一次出现的位置的正数索引,==否则报错==
。 -
find:查找字符串中子字符串所在位置i,如果有该字符串,查询其
==从左至右==
第一次出现的位置的正数索引,==否则返回-1==
。 -
rindex:查找字符串中子字符串所在位置i,如果有该字符串,查询其
==从右至左=
=第一次出现的位置的正数索引,==否则报错==
。 -
rfind:查找字符串中子字符串所在位置i,如果有该字符串,查询其
==从右至左==
第一次出现的位置的正数索引,==否则返回-1==
。 -
count:查询子字符串在指定字符串中出现的次数。
‘’’
学习中遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
‘’’
str1 = ‘hello python’
index
需求:查找p所在的索引位置
格式: 字符串.index(self(不用传值), sub(子字符串), start(起始位置), end(结束位置))
print(str1.index(‘p’)) # 6
如果字符串中含有多个子字符串,则会返回指定范围内的从左至右的第一个查找到的子字符串位置索引
print(str1.index(‘o’)) # 4
查询指定范围内的字符串,虽然指定了范围,但是计算索引是从左至右依次递增的
print(str1.index(‘o’, 5, 12)) # 10
ValueError: substring not found
结论:找不到对应的子字符串,则会报错,如果能够查找到数据返回当前子字符串的正数索引
指定查找范围是左闭右开区间
print(str1.index(‘o’, 5, 10)) # 10
print(str1.index(‘o’, 10, 12)) # 10
find
str1 = ‘hello python’
需求:查找p所在的索引位置
格式: 字符串.find(self(不用传值), sub(子字符串), start(起始位置), end(结束位置))
print(str1.find(‘p’)) # 6
如果字符串中含有多个子字符串,则会返回指定范围内的从左至右的第一个查找到的子字符串位置索引
print(str1.find(‘o’)) # 4
指定范围查找
需求:查找o 指定范围为 5,10 10,12
结论:使用find进行查询时,如果查询的子字符串不存在,则返回-1,如果存在则返回指定正数索引
find的查询范围是左闭右开区间
print(str1.find(‘o’, 5, 10))
print(str1.find(‘o’, 10, 12))
查询的子字符串可以是单个字符可以是多个字符
print(str1.find(‘python’)) # 6
rfind
和find使用方式完全相同,只是在查询时,从右至左查询,返回第一次查询到的字符索引,返回的依然是正数索引
print(str1.rfind(‘o’)) # 10
rindex
和index使用方式完全相同,只是在查询时,从右至左查询,返回第一次查询到的字符索引,返回的依然是正数索引
print(str1.rindex(‘o’))
结论:index 和 find 使用方法完全一致,只是,index 在查询不到子字符串时会报错,find会返回-1
count() 计数
使用count 可以返回当前子字符串在指定字符串中出现的次数
需求:查询o在str1 中出现的多少次
提示:在大多数编程语言中, 计数从1开始数, 索引或编号,从0开始编号
格式: 字符串.count(self(不用传值, x(要查询个数的子字符串), start(开始位置), end(结束位置)))
print(str1.count(‘o’))
需求,查询指定范围内h的个数 从1-9 9-12
结论:1.count查询的范围是一个左闭右开区间
2.如果没有查询到子字符串则返回0 不会报错
print(str1.count(‘h’, 1, 9)) # 0
print(str1.count(‘h’, 9, 12)) # 1
5、字符串替换
replace:将旧值替换指定字符串中的新值
replace
str1 = ‘hello python’
需求: 将o 替换为 $
格式: replace(self(不用传值), old(旧值), new(新值), count(替换次数))
print(str1.replace(‘o’, 'KaTeX parse error: Expected 'EOF', got '#' at position 6: ')) #̲ hell pyth$n
指定替换次数
如果不指定替换次数,默认将所有的制定字符全部替换
print(str1.replace(‘o’, 'KaTeX parse error: Expected 'EOF', got '#' at position 9: ', 1)) #̲ hell python
如果指定的替换次数大于出现的次数,则也是只替换出现的次数
print(str1.replace(‘o’, 'KaTeX parse error: Expected 'EOF', got '#' at position 10: ', 10)) #̲ hell python
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-2K0lDeh2-1712707735397)]