当前位置: 首页 > news >正文

PYTHON_DAY07_容器入门和字符串详解

容器概念: 可以容纳多个元素的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循环遍历

http://www.jsqmd.com/news/536923/

相关文章:

  • ANIMATEDIFF PRO环境配置:Flask后端+HTML5前端本地调试全流程
  • PP-DocLayoutV3高算力适配:FP16推理开启后显存降低30%,精度损失<0.5%
  • 【2026 最新】Java JDK 17 安装配置详细全攻略 带图展示
  • 基于遗传算法的LQR控制器优化设计sumlink仿真模型探索
  • Keycloak 完全使用指南:从零开始理解与应用
  • STM32模拟UART实现技术详解
  • Windows系统OpenClaw安装全流程配置详解(从初始化到进阶优化,新手零踩坑)
  • 电路设计中的常用速算
  • 5、线性代数之特征值、矩阵相似(知识总结)
  • 仅剩72小时!主流边缘芯片厂商即将停更Python模型导入工具链——现在必须掌握的3种离线转换保底方案
  • TCP三次握手与四次挥手详解含图解
  • 百川2-13B-4bits模型压缩对比:OpenClaw任务场景下的显存与速度权衡
  • linux基础学习三
  • YOLO X Layout实战:从扫描PDF中自动提取标题与表格的Python实现
  • Hunyuan-MT-7B低资源语言支持展示:东南亚小语种(老挝、缅甸、高棉)实测
  • Qwen3.5开源模型实测
  • 智能客服原型:OpenClaw接入Qwen3.5-9B处理电商常见问答
  • 从零开始:DeepWiki-Open 开源AI维基生成器完全部署指南
  • Anomalib使用
  • 阿里蚂蚁Kimi连夜换引擎!混合注意力炸场,456B模型200万token秒吞,API直接打2折
  • ESLint代码规范(一)
  • SkeyeVSS中国标GB28181、流媒体源RTMP/RTSP/HTTP/ONVIF、RTMP推流等协议视频流实时播放流程详解
  • ButtonIn:嵌入式C++轻量级按键消抖库设计与实践
  • OpenClaw进阶调试:Qwen3.5-4B-Claude任务失败原因分析
  • leetcode-hot100-10回溯
  • OpenClaw内存优化:让nanobot镜像在4GB设备上流畅运行
  • C语言变量与函数命名规范详解
  • 树莓派X96 一、智能小车初框架(无视觉)
  • SDMatte Web化服务运维指南:supervisorctl管理与日志定位技巧
  • AI教材写作指南:低查重秘诀,快速生成专业教材不是梦!