3-python字符串进阶
-
原始字符串
原始字符串就是在字符串前以
r
或R
为标志,原始字符串中的\
不会被解读为转义字符,因此在输入某些文件路径时不用写\\
。例如,你要输入某个文件路径,有两种方法:
path = r"D:\Python\test.txt" path = "D:\\python\\test.txt"
-
格式化字符串
格式化串 意义 %c 单个字符 %s 字符串 %d 十进制整数 %o 八进制整数 %x 十六进制整数,若有字母则小写,如 7f
%X 十六进制整数,若有字母则大写,如 7F
print('I am %s...'%'abc') # I am abc... print('%d + %d = %d'%(1, 2, 1+2)) # 1 + 2 = 3 print('%x_%X'%(127, 127)) # 7f_7F
-
中文字符串处理
在 python3.x 版本中,字符串已经全面支持中文了,且默认是
utf-8
编码的字符串。然而在不同平台或不同的应用系统下,字符编码可能不同,这样就会导致字符串从一台设备传输到另一台设备后产生乱码现象,为避免这种情况,可以使用python中相关的函数对字符串进行编码或解码。
例如,要在网络上发送一个字符串(str),必须要将这一字符串编码为字节串(bytes)形式,这时你需要考虑用什么编码方式(如utf-8、gbk、gb2312
),在python中用 encode(enciding='utf-8', errors='strict')
函数将字符串编码为字节串,参数意义如下:
-
encoding:表示你所要选择的编码方式,默认是 utf-8 ,你也可以使用
gbk
、gb2312
等编码方式 -
errors:表示用你设置的编码方式进行编码时如果出错,该如何处理,默认下是报错(strict),你也可以选择使用
ignore
、replace
等处理方式
反之,如果要将从网络接收的字节串(bytes)转换为字符串,则要用 decode(encoding='utf-8',errors='strict')
解码,参数意义与上面一样(不过这时你应该把encoding 称为解码方式
),还要注意一点,你用什么方式将一个字符串编码为字节串,你就要用同样的方式将这个字节串解码,否则将不能还原或者将会报错(特别是含有中文的时候)。
s = '学习:+python123'
b = s.encode(encoding='utf-8')
s1 = b.decode(encoding='utf-8')
print(b,s1,s,sep='\n')
# b'\xe5\xad\xa6\xe4\xb9\xa0:+python123'
# 学习:+python123
# 学习:+python123
s = '学习:+python123'
b = s.encode(encoding='gb2312')
s1 = b.decode(encoding='utf-8')
print(b,s1,s,sep='\n')
# b'\xd1\xa7\xcf\xb0:+python123'
# ѧϰ:+python123
# 学习:+python123
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/15383610.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人