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
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

[小G]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值