python3字符串

字符串是python中最常用的数据类型,我们可以使用引号(‘或“)来创建字符串。

python字符串格式化

Python支持格式化字符串输出。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符%s的字符串中。

在Python中,字符串格式化使用与C中的sprintf函数一样的语法

1
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

python的格式化字符与C语言的格式化字符没有多大差距

格式化操作符辅助指令

符号 功能
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号(+)
在正数前面显示空格
# 在八进制前面显示零(“0”),在十六进制前面显示’0x‘或者”0X”
0 显示的数字前面填充‘0’而不是默认的空格
%
(var) 映射变量(字典参数)
m.n. m是显示的最小总宽度,n是小数点后的位数(如果可用的话)

python三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符,制表符以及其他特殊字符。

1
2
3
4
5
6
7
8
9
10
11
12
In [134]: para_str = """这是一个多行字符串的实例
...: 多行字符串可以使用制表符
...: TAB ( \t )。
...: 也可以使用换行符 [ \n ]。
...: """

In [135]: print para_str
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( )。
也可以使用换行符 [
]。

三引号让程序员从引号和特殊字符串的泥潭里面解放出来,自始至终保持一小块字符串的格式是所谓的“所见即所得”格式。

一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常繁琐。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (
login VARCHAR(8),
uid INTEGER,
prid INTEGER)
''')

f-string

f-string是python3.6之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

f-string格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号{}包起来,它会将变量或表达式计算后的值替换进去,实例如下:

1
2
3
4
5
6
7
8
9
>>> name = 'Runoob'
>>> f'Hello {name}' # 替换变量
'Hello Runoob'
>>> f'{1+2}' # 使用表达式
'3'

>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'

用这种方式就更简单了,不用再去判断使用%s还是%d。

在python3.8的版本可以使用=符号来拼接运算表达式与结果

1
2
>>> print(f'{x+1=}')   # Python 3.8
x+1=2