Python字符串基础详解
154 浏览量
更新于2024-09-01
1
收藏 92KB PDF 举报
括多个变量,可以使用逗号分隔。例如:
```python
name = 'Alice'
age = 25
print('My name is %s and I am %d years old.' % (name, age)) # 输出: My name is Alice and I am 25 years old.
```
在Python 3.x中,更推荐使用`format()`函数进行字符串格式化,因为它提供了更多的灵活性和可读性:
```python
print('My name is {} and I am {} years old.'.format(name, age)) # 输出: My name is Alice and I am 25 years old.
```
或者使用f-string(格式化字符串字面量)在Python 3.6及以上版本:
```python
print(f'My name is {name} and I am {age} years old.') # 输出: My name is Alice and I am 25 years old.
```
二.字符串操作
1. 切片和索引
字符串是不可变的,意味着一旦创建就不能修改。但是可以使用索引来访问单个字符,如`s[0]`,或使用切片获取子字符串,如`s[1:3]`。
2. 长度
使用内置函数`len()`获取字符串长度,例如`len('hello')`返回5。
3. 连接
使用`+`操作符连接两个字符串,如`'hello' + 'world'`得到`'helloworld'`。
4. 重复
使用`*`操作符重复字符串,如`'abc' * 3`得到`'abcabcabc'`。
5. 字符串方法
Python提供了一系列内置的字符串方法,如`lower()`(转换为小写),`upper()`(转换为大写),`strip()`(去除两侧空白),`replace(old, new)`(替换子串),`split()`(按分隔符拆分字符串)等。
6. 查找与替换
`find(substring)`用于查找子串第一次出现的位置,返回索引;`index(substring)`与之类似,但找不到时会抛出异常。`count(substring)`统计子串在字符串中出现的次数。
7. 格式化操作符高级用法
对于`%`操作符,可以指定宽度和精度,如`'%-10s' % 'hello'`左对齐并填充空格,`'%05d' % 42`填充0到5位整数。`%s`用于字符串,`%d`用于整数,`%f`用于浮点数,`%e`和`%g`用于科学记数法。
8. `format()`函数的高级用法
`format()`可以设置对齐、填充、精度等,如`'{:<10}'.format('hello')`左对齐并填充空格到10位。还可以通过字段名指定参数,如`'{name}, {age}'.format(name='Alice', age=25)`。
9. f-string的动态插入
f-string允许在字符串中直接插入变量的值,如`f'I have {count} apples.'`,`count`的值会被自动插入。
三.字符串编码与解码
在处理不同编码的字符串时,可以使用`encode()`将字符串编码为字节,`decode()`将字节解码为字符串。例如,将UTF-8编码的字符串转为GBK编码:
```python
s = '你好,世界'
encoded = s.encode('utf-8') # 编码为字节
decoded = encoded.decode('gbk') # 使用GBK解码
```
四.正则表达式
Python的`re`模块提供正则表达式支持,可以用于匹配、查找、替换等复杂字符串操作。例如,使用正则表达式查找所有数字:
```python
import re
text = 'The price is $123.45'
numbers = re.findall('\d+', text) # 返回['123', '45']
```
五.字符串与Unicode
Python默认使用Unicode编码,这使得它能处理全球各种语言的文本。在处理非ASCII字符时,确保数据正确编码和解码以避免乱码问题。
Python中的字符串是其强大的特性和功能之一,不仅包含基本的字符串操作,还有丰富的格式化选项和正则表达式支持,使其成为处理文本数据的强大工具。了解和熟练掌握这些基础知识,对于Python编程至关重要。
2020-09-21 上传
2022-12-18 上传
2021-01-20 上传
2021-01-20 上传
2021-01-20 上传
2022-09-21 上传
2023-08-23 上传
2018-06-12 上传
2024-05-18 上传
weixin_38640242
- 粉丝: 4
- 资源: 970
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库