python语法——用f-string实现字符串连接

老方法

将字符串与变量连接起来,比如想打印记录一个函数输入内容和输出内容的日志,一般方法有:

1、字符串相加

a = 'input:' + input + ',output:' + output

2、使用 C 语言中的 %

a = 'input:%s,output:%s' % (input, output)

3、使用 format 方法

a = 'input:{},output:{}'.format(input, output)

以上三种方法各有利弊:

1、字符串相加最大的缺点是代码不够简洁,尤其是变量名多的时候,会看到许许多多的单引号和双引号。

2、使用 % 和 format 的好处是,一个字符串是完整简洁的,让人一眼可以看出这个字符串的全局结构,只是抠出了几个变量来供填充。但是 % 的缺点是,当变量名多的时候,不知道哪个 % 对应的是哪个变量,还需要去数数。虽然 format 可以通过在 {} 中指定key来避免这个缺点,但是这会让代码变得很长,因为只要在{}指定的key,一定会在 format 的参数中再次出现一遍。

新方法(f-string)

从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快!

使用方法:

1、在字符串前面加上 f

2、在字符串内部,将需要连接的变量用 {} 括起来即可。

示例:

a = f'input:{input},output:{output}'

特点

1、综合了上面三种老方法的优点,代码简洁,且变量名多的时候,不需要去数数,也没有繁琐的单引号双引号

2、括号{}里面的变量,可以是字符串类型,也可以是整型、浮点型,或者是复杂类型,比如数组、词典等,会自动转换成成字符串形式。

3、括号{}里面还可以是函数,比如 f'数组a的长度为:{len(a)}'。一句话,只要是位于 {} 中的,都会当做 python 代码来执行。但里面只能写表达式,不能写执行语句如{a=2}之类的。

4、f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式,速度比上面三种老方法要块。

因此对于Python3.6及以后的版本,推荐使用f-string进行字符串格式化。

你可能感兴趣的:(python)