-
原始字符串
原始字符串就是在字符串前以
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