3-python字符串进阶

在这里插入图片描述

  • 原始字符串

    原始字符串就是在字符串前以 rR 为标志,原始字符串中的 \ 不会被解读为转义字符,因此在输入某些文件路径时不用写 \\

    例如,你要输入某个文件路径,有两种方法:

    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 ,你也可以使用 gbkgb2312 等编码方式

  • errors:表示用你设置的编码方式进行编码时如果出错,该如何处理,默认下是报错(strict),你也可以选择使用 ignorereplace 等处理方式

反之,如果要将从网络接收的字节串(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
posted @   aJream  阅读(28)  评论(0编辑  收藏  举报
编辑推荐:
· 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训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示