今天在学习字符串之前,我们先总结一下:
目前为止,我们已经学习过的知识内容大致已经有哪些了
1.输入和输出
2.变量和数据类型
3.运算符和分支结构(条件判断)
4.for循环和循环嵌套
5. while循环
以上这些内容,如果同学们都是很好的掌握了的话
那么4--6年级最重要且是最常运用到的一些基础知识已经搞定了80%了
接下来,我们需要学习的大多数都是关于数据结构的一种操作
只要是好好按照笔记去学习,练习,那么掌握起来还是很轻松的
难度并不大
后续几个章节将是关于:
字符串(重点)
列表(重点)
元组
字典(重点)
集合
其中标注重点的则是小学阶段以及后续最常见最常考的数据结构
接下来,进入今天的字符串章节学习
字符串(string)就是一串字符,可以是中文、英文、数字、符号,甚至空格,只要被引号包裹,就是字符串!
Python 用单引号、双引号、或者被三引号去包裹的任何数据,来表示定义字符串
s = '你好'print(s) # 输出:你好s1 = "abcdefg"print(s1) # 输出:abcdefgs2 = '1234567's3 = '这也是字符串+-*/=&^%$#'print(s2)print(s3)# 空格也是字符串s4 = ' 'print(s4)# 三引号:保留换行格式(适合长文本)s5 = '''这是第一行这是第二行这是第三行'''print(s5)
name = input('输入昵称:')print('这是%s' % name)# 混合占位:字符串+整数+小数s = '这是%s,今年%d岁,买了一本%0.2f元的书' % ('小明', 15, 20.5)print(s)# 输出:这是小明,今年15岁,买了一本20.50元的书
format 函数比占位符更灵活,支持位置索引、关键字参数
# 基础用法:按顺序填充print('{}现在{}岁了'.format('小明', 15))# 输出:小明现在15岁了# 位置索引:用数字指定填充顺序print('{0}现在{1}岁了'.format('小明', 15)) # 0=小明,1=15print('{1}现在{0}岁了'.format('小明', 15)) # 调换顺序# 输出:15现在小明岁了# 重复使用:同一个位置多次填充print('{1}现在{0}{1}岁了'.format('小明', 15))# 输出:15现在小明15岁了# 关键字参数:用变量名指定,更清晰print('{b}现在{a}岁了'.format(a='小明', b=15))# 输出:15现在小明岁了
字符串中每个字符都有固定的位置编号,这个编号就叫索引 或者下标
可以理解为 “小区的门牌号”,通过门牌号(索引)就能精准找到好朋友的家(对应字符),然后快乐的玩耍~
s = '你好,世界's = '你好,世界'# 正索引取值print(s[0]) # 输出:你print(s[1]) # 输出:好print(s[2]) # 输出:,print(s[3]) # 输出:世print(s[4]) # 输出:界print('---分割线---')# 负索引取值print(s[-5]) # 输出:你print(s[-4]) # 输出:好print(s[-3]) # 输出:,print(s[-2]) # 输出:世print(s[-1]) # 输出:界
通过索引截取字符串的一段内容,
格式:字符串[start:end:step]
start:开始end:结束索引(包头不包尾)step:步长s1 = '有趣的一天...'# 基础切片:[1:4] 从索引1到3(不包含4 包头不包尾原则)print(s1[1:4]) # 输出:趣的一# 从开头开始切片的话,开始可以不写print(s1[:4]) # 输出:有趣的一# 如果直接切到字符串最后一位的话,结束位置可以不写print(s1[2:]) # 输出:的一天...# 取整个字符串 则可以全都不写print(s1[:]) # 输出:有趣的一天...# 负索引切片:[:-1] 取到倒数第二个字符print(s1[:-1]) # 输出:有趣的一天..# 颠倒顺序 从右往左取,步长-1print(s1[::-1]) # 输出:...天一的趣有
st1 = '哈哈哈哈哈,开心的一天~~~'# 基础统计print(st1.count('哈')) # 输出:5print(st1.count('~')) # 输出:3print(st1.count('开心')) # 输出:1# 指定范围统计:count(字符, start, end)st2 = '这是上午,这是美好的一天,这是简单的'print(st2.count('是', 1, 7)) # 输出:2(索引1到6之间统计)
find()rfind()同 find和 rfind 用法几乎一样
唯一区别:找不到会直接报错(ValueError)
str_1 = '这是上午,这是美好的一天,这是简单的'# find():从左找print(str_1.find('午')) # 输出:3print(str_1.find('哈')) # 输出:-1(找不到)# rfind():从右找(找最后一次出现的位置)print(str_1.rfind('是')) # 输出:14print(str_1.rfind('嗯')) # 输出:-1(找不到)# index():从左找print(str_1.index('是')) # 输出:1# rindex():从右找print(str_1.rindex('是')) # 输出:14# 找不到会报错!(取消注释试试)# print(str_1.index('嗯')) # 报错:ValueError: substring not found
str_2 = '有趣的一天...'# 通过字符串名遍历for i in str_2:print(i, end='') # 输出:有趣的一天...print() # 换行# 直接遍历字符串for i in '有趣的一天...':print(i, end='') # 输出:有趣的一天...
[1:4] 只取 1、2、3,不取 4!
'Python入门超简单',用索引取出 '入' 和 '简''Python入门超简单' 中的 '入门超简单''哈哈哈哈嘿嘿嘿嘿呵呵呵呵' 中 '嘿' 出现的次数'今天天气真好',逐个打印每个字符