Python3 基础语法之字符串
目录
字符编码
Python字符串
在最新的Python 3版本中,字符串是以Unicode编码的,也就是说,Python的字符串支持多语言,例如:
>>> print('包含中文的str')
包含中文的str
对于单个字符,Python提供了ord()
函数来该获取字符对应的十进制编码,chr()
函数用于把十进制编码转换为对应的字符:
>>> ord('A')
65
>>> ord('中')
20013
>>> chr(66)
'B'
>>> chr(25991)
'文'
1个中文字符经过UTF-8编码后通常会占用3个字节,而1个英文字符只占用1个字节。
由于Python源代码也是一个文本文件,所以,当你的源代码中包含中文的时候,在保存源代码时,就需要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
声明了UTF-8编码并不意味着你的.py
文件就是UTF-8编码的,必须并且要确保文本编辑器正在使用UTF-8编码。
所以请牢记编写Python代码时仅使用UTF-8编码。
字符串格式化
其作用是为了输出格式化的字符串。
常见的字符串格式化操作符有:
占位符 | 替换内容 |
---|---|
%d | 表示用整数替换 |
%f | 表示用浮点数替换 |
%s | 表示用字符串替换 |
%x | 表示用十六进制整数替换 |
>>> print("%s同学,你好;" % "周曦")
周曦同学,你好;
>>> "%s同学,你好;" % "周曦"
'周曦同学,你好;'
>>> print('我叫 %s 今年 %d 岁' % ('小明',18)) #当有多个替换文本时,一定要用括号括起来
我叫 小明 今年 18 岁
格式化操作符辅助指令:
符号 | 功能 |
---|---|
. | 定义小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号( + ) |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X') |
0 | 显示的数字前面填充'0'而不是默认的空格 |
% | '%%'输出一个单一的'%' |
(var) | 映射变量(字典参数) |
m.n. | m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话) |
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
更多详细内容请看:字符串与编码