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

python学习笔记4——字符串

1. 字符串操作符:三种

运算符名称示例说明结果
+字符串连接str1 + str2将两个字符串连接成一个新字符串合并后的字符串
*字符串重复str * n将字符串重复n次(n为整数)重复后的字符串
in成员运算符substr in str判断子字符串是否在字符串中TrueFalse

2. 字符串索引:<字符串>[索引] 表示字符串中字符的所在位置——若字符串长度为n,则字符串索引的范围为0 ~ n-1 (python左闭右开[begin, end)规则

#其他情况: s[-1] #输出字符串最后一位

字符串切片:<字符串>[开始索引:结束索引:步长] 获取指定索引区间的字符(不包含结束索引对应的字符)

——若不指定开始索引/结束索引/两者均不指定,则默认从零索引/到最后一位/取全部字符

s[1:2] #取字符串的1-2号位字符(结束索引对应字符不取) s[1:] #从字符串的1号位开始取,一直到结束 s[:4] #从字符串的0号位开始取,一直到3号位 s[:] #取整个字符串 # 步长: s[::-1] #步长为-1——从后往前逆序排列字符串

3. 字符串函数:

函数名语法说明示例结果
len()len(string)返回字符串的长度(字符个数)len("Python")
len("你好世界")
len("")
6
4
0
str()str(object)将对象转换为字符串类型str(123)
str(3.14)
str(True)
str([1, 2, 3])
"123"
"3.14"
"True"
"[1, 2, 3]"
ord()ord(char)返回单个字符的Unicode编码(整数)ord('A')
ord('a')
ord('中')
ord('0')
65
97
20013
48
chr()chr(code)将Unicode编码转换为对应的字符chr(65)
chr(97)
chr(20013)
chr(48)
'A'
'a'
'中'
'0'
max()max(string)返回字符串中Unicode编码最大的字符max("Python")
max("abc123")
max("你好啊")
'y'
'c'
'啊'
min()min(string)返回字符串中Unicode编码最小的字符min("Python")
min("abc123")
min("你好啊")
'P'
'1'
'你'

4. 字符串常见处理方法:处理后均不改变字符串原本值

str.upper()返回一个字符串:将str字符串所有字符转换为大写"Hello".upper()"HELLO"
str.lower()返回一个字符串:将str字符串所有字符转换为小写"Hello".lower()

"hello"

str.count(sub,begin,end)返回一个整数:子字符串sub在str字符串内出现次数"hello".count('l')2
str.find(sub,begin,end)返回一个整数:查找子串,返回首次出现索引(找不到返回-1)"hello".find('l')
"hello".find('x')
2
-1
str.index(sub,begin,end)返回一个整数:查找子串,返回首次出现索引(找不到抛出异常)"hello".index('l')
"hello".index('x')
2
抛出ValueError
str.isalpha()返回T/F:判断字符串是否只包含字母"abc".isalpha()
"abc123".isalpha()
True
False
str.isdigit()返回T/F:判断字符串是否只包含数字"123".isdigit()
"abc".isdigit()
True
False
str.strip(chars)返回一个字符串:去除str字符串两端的chars中的字符(忽略chars默认空格)

" hello ".strip()

"==hello==".strip("==")

"hello"

"hello"

str.join(iter)返回一个字符串:给iter变量的每一个元素后增加一个str字符串','.join(['a', 'b', 'c'])"a,b,c"
str.replace(old, new)返回一个字符串:用new新字符串替换old子字符串"hello".replace('l', 'L')"heLLo"
str.center(width, fillchar)返回一个字符串:字符串居中函数,用指定的填充字符(默认空格)填充两侧"hello".center(8)" hello "(左一右二,因为无法平分)
str.split(sep=None)返回一个列表:由str根据sep被分割的部分组成,省略sep默认空格"a,b,c".split(",")['a', 'b', 'c'](遇到","分割)
str.capitalize()返回一个字符串:首字母大写,其余小写"hello WORLD".capitalize()"Hello world"

▲关于函数中参数begin和end:一般表示从字符串的begin索引开始,截至end-1索引(end不计入操作)所形成的字段进行操作。

5. 补充:format( )方法

① format( )方法的基本使用

<模板字符串>.format(<参数列表>)

模板字符串:是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。

槽:用{ }表示,与format( )中的参数列表对应。

# 最基本的用法 print("{} is {} years old".format("Alice", 25)) # 输出:Alice is 25 years old print("{0} is {1} years old".format("Alice", 25)) #标记槽的数值 # 输出:Alice is 25 years old print("{1} is {0} years old".format("Alice", 25)) #通过改变槽的数值可以调换位置 # 输出:25 is Alice years old print("{} is {} years old".format(25)) #槽数量和参数数量不匹配 # 输出:报错 print("{0} is {0} years old".format(25)) #强行标记同一参数对应多个槽 # 输出:25 is 25 years old # 多个槽 print("{} {} {}".format("I", "love", "Python")) # 输出:I love Python

② format( )方法的格式控制:

槽可以更加丰富—— {<参数序号>:<格式控制标记>}

{ [参数序号] : [填充] [对齐] [符号] [宽度] [,] [.精度] [类型] }

标记选项说明示例结果
填充任意字符用于填充的字符(默认为空格)"{:*<10}".format("Hi")
"{:0>5}".format(123)
Hi********
00123
对齐<左对齐"{:<10}".format("左")"左 "
>右对齐"{:>10}".format("右")" 右"
^居中对齐"{:^10}".format("中")" 中 "
=填充在符号后"{:=+10}".format(-5)- 5
符号+正数前加+,负数前加-"{:+d} {:+d}".format(5, -5)+5 -5
-负数前加-,正数前不加(默认)"{:-d} {:-d}".format(5, -5)5 -5
空格正数前留空,负数前加-"{: d} {: d}".format(5, -5)" 5 -5"
宽度整数最小宽度"{:10}".format(123)" 123"
,千位分隔使用逗号分隔千位"{:,}".format(1234567)1,234,567
.精度整数浮点数小数位数/字符串最大长度"{:.2f}".format(3.14159)
"{:.3}".format("Python")
3.14
Pyt
类型d十进制整数"{:d}".format(123)123
b二进制整数"{:b}".format(10)1010
o八进制整数"{:o}".format(10)12
x/X十六进制整数(小写/大写)"{:x} {:X}".format(255, 255)ff FF
f/F定点数"{:f}".format(3.14)3.140000
e/E科学计数法"{:e}".format(12345)1.234500e+04
g/G自动选择f或e"{:g}".format(12345)12345
%百分比格式"{:.2%}".format(0.8567)85.67%
cUnicode字符"{:c}".format(65)A
s字符串"{:s}".format("Hi")Hi

<填充>:超过字符串长度小于宽度的部分用该字符填充

<宽度>:若宽度大于字符串长度,则以宽度为准;若宽度小于字符段长度,则以字符串长度为准

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

相关文章:

  • 冷战时期的无人艇发展:从靶船到侦察平台
  • 深入解析 Go 官方更新:实验性 goroutineleak Profile 原理与机制
  • EABMDVN[麦麦茶水间] 【每周分享】沁恒UQPACWHAMR开发中遇到的VTBCMXHIA采样不准及解决方案
  • 【2026年最新600套毕设项目分享】springboot博客网站的设计与实现(14138)
  • ARM嵌入式学习(一) --- 入门51
  • ArcGIS自定义模式的使用
  • 【SpringBoot3】Spring Boot 3.0 集成 Mybatis Plus
  • 【2026年最新600套毕设项目分享】springboot宠物交易管理平台设计与实现(14139)
  • 【生产线数智化质量可靠性管控与安全风险感知】
  • 爬虫解析网页,正则表达式与XPath简单运用
  • 【2026年最新600套毕设项目分享】springboot大型超市前后台系统(14140)
  • Flutter 三方库 jaspr_lints 的鸿蒙化适配指南 - 让 Web 开发拥有 Flutter 级的严谨、构筑鸿蒙 Web 应用的静态防线、打造高性能 HTML 渲染的最佳实践
  • 基于知识库(RAG)系统打造由大模型(LLM)驱动NPC游戏的技术设想
  • 模型的容量与控制:欠拟合与过拟合的博弈
  • 2026年OpenClaw极简部署教程,两步拥有专属AI助理!
  • 你是一位专注于趋势交易的 A 股投资分析师
  • Python实现智能聊天机器人
  • 2026年评价高的iOS应用分发品牌推荐:app应用分发/应用分发平台/iOS内测应用分发好评推荐公司 - 品牌宣传支持者
  • Flutter 三方库 convex_hull 的鸿蒙化适配指南 - 精准凸包算法计算、支持高效几何图形处理、助力鸿蒙端复杂 UI 交互设计
  • 效率升级:为什么JamTools值得成为你的必备工具软件
  • Redis面试题 03
  • OpenClaw的心跳30分钟才跳一次?Clawith:15秒感知世界,Agent终于有了自主意识
  • Typora安装教程(激活)
  • Java正则表达式基础知识
  • Flutter 三方库 foodb 鸿蒙适配指南 - 构建工业级 CouchDB 兼容的分布式 NoSQL 存储方案
  • 家长实测|3家少儿机器人编程机构真实体验
  • RAG跨页表格怎么自动对齐合并?
  • Spring面试题 02
  • 老板看不见的修仙路
  • 多版本gcc共存方法探索