Python3.6新特性:f-strings格式化输出

按照惯例,吟诗一首,苏轼《江城子·密州出猎》

老夫聊发少年狂,左牵黄,右擎苍,锦帽貂裘,千骑卷平冈。
为报倾城随太守,亲射虎,看孙郎。
酒酣胸胆尚开张,鬓微霜,又何妨!持节云中,何日遣冯唐?
会挽雕弓如满月,西北望,射天狼。

f-strings 是python3.6开始加入标准库的格式化输出新的写法,这个格式化输出比之前的%s 或者 format 效率高并且更加简化,非常的好用,以后再用格式化输出选它绝对没有错。

1、简单使用

name = 'allen'
age = 18
sex = '男'
msg_f = f'我的名字叫:{name},我今年{age}岁,我是{sex}生'
msg_F = F'我的名字叫:{name},我今年{age}岁,我是{sex}生'
print(msg_f)
print(msg_F)

结果:

我的名字叫:allen,我今年18岁,我是男生
我的名字叫:allen,我今年18岁,我是男生

是不是阅读代码的时候很清晰

2、结合表达式使用

#运算、转换
res = f'我的名字叫:{name.upper()},我今年{age + 1}岁,我是{sex}生'
print(res)
# 字典
person = {'name': name, 'age': age}
res = f"i am {person['name']}, my age is {person['age']}"
print(res)

结果:

我的名字叫:ALLEN,我今年19岁,我是男生
i am allen, my age is 18

3.结合函数使用

def fun(a, b):
    return a + b
a = 2
b = 3
msg = f'2+3={fun(a, b)}'
print(msg)

结果:

2+3=5

4.多行使用

name = 'allen'
age = 18
sex = '男'

res = f'Hi {name}.'          f'You are {age} years old.'          f'You are {sex}'
print(res)

结果:

Hi allen.You are 18 years old.You are 男

4.结合lambda使用

! , : { } ;这些标点不能出现在{} 这里面。

比如:print(f‘{;12}‘) 就会报错

所以使用lambda 表达式会出现一些问题。

解决方式:可将lambda嵌套在圆括号里面解决此问题。

x = 5
print(f'{(lambda x: x + 2)(x)}') # 7

原文地址:https://www.cnblogs.com/suxianglun/p/10875155.html

时间: 2024-11-02 17:11:49

Python3.6新特性:f-strings格式化输出的相关文章

python3.8 新特性

https://docs.python.org/3.8/whatsnew/3.8.html python 3.8的新功能本文解释了与3.7相比,python 3.8中的新特性. 有关完整的详细信息,请参阅变更日志. 注意:预发布用户应注意,此文档当前处于草稿形式.随着python 3.8向发行版迈进,它将得到实质性的更新,所以即使在阅读了早期版本之后,也值得检查一下.总结-发布亮点新特点编译字节码文件的并行文件系统缓存新的pythonpycacheprefix设置(也可用作-x pycache_

Win10下安装Python3及Python2、数据类型、格式化输出、运算符

Win10下安装Python3及Python2 下载的官网地址: https://www.python.org/downloads/windows/ 安装Python3: 安装完成之后,在开始处输入 cmd ,测试Python是否安装成功. 输入: python -V ----> pip -v ----> pip 安装Python2: 安装完成之后,打开之前打开的命令提示符页面,测试Python是否安装成功. 输入: python -V ----> pip -v Python3.x与Py

函数名的使用和新版格式化输出

1. 函数名的运用 你们说一下,按照你们的理解,函数名是什么? 函数名的定义和变量的定义几乎一致,在变量的角度,函数名其实就是一个变量,具有变量的功能:可以赋值:但是作为函数名他也有特殊的功能就是加上()就会执行对应的函数,所以我们可以把函数名当做一个特殊的变量,那么接下来,我们就来研究一下这个特殊的变量. 1.1 函数的内存地址 def func(): ? print("呵呵") ?print(func)结果: <function func at 0x1101e4ea0>

Python3新特性 类型注解 以及 点点点

Python3新特性 类型注解 以及 点点点 ... Python3 的新特性 Python 是一种动态语言,变量以及函数的参数是 不区分类型 的 在 函数中使用类型注解 相当于 给 形参的 类型 设置了一个备注 # 使用类型注解 a b 参数需要 int 类型的 变量 def func(a: int = ..., b: int = ...): return a + b 使用 PyCharm 编写python代码时 函数调用会有默认参数的 提示 如果传递的 参数不是 指定的类型 正常使用也不会报

Python的输入指令、格式化输出、基本运算符

Python的输入指令.格式化输出.基本运算符 Python的输入指令input name = input('Could I know your name please?') 在Python3版本下,输入的所有内容都视为字符串,所以此时name的类型是字符串.如果输入年龄,需要进行转换 age = int(input('Could I know your age please?')) 在Python2版本下,使用input()输入的内容不会被自动转成字符串,所以需要在输入时指定数据类型. 而Py

相比于python2.6,python3.0的新特性。

这篇文章主要介绍了相比于python2.6,python3.0的新特性.更详细的介绍请参见python3.0的文档. Common Stumbling Blocks 本段简单的列出容易使人出错的变动. print语句被print()函数取代了,可以使用关键字参数来替代老的print特殊语法.例如: Old: print "The answer is", 2*2 New: print("The answer is", 2*2) Old: print x,       

Python3 格式化输出

1 #Python3 格式化输出 占位符%s %d %f 2 name = input("Name:") 3 age = int(input("Age:")) 4 #input默认接受的都是字符串类型,所以要输出%d整型,就要先把字符串强制转换成整型 5 job = input("Job:") 6 salary = input("Salary:") 7 8 info = """ 9 -------

VS2013中F#的新特性

为了更好的迎接新版本的到来,先看一下之前F#的特性. 1.为区分联合(discriminated unions)添加了命名域,使代码更加清晰. 2.用新数据的新特性,使矢量和矩阵编码更容易的工作 3.更强大的泛型算法的扩展 4.得到更好的调试支持,当你使用F #调试时,调试编译器和解释器选项. 5.当你使用LINQ扩展方法如select时,lambda表达式将使你的代码非常简浩. 6.使用.NET框架4.5.1和Windows商店简化版的库支持. 7.支持同时在当前和以前的版本的VisualSt

//%f表示以十进制格式化输出浮点数 %.2f

//%f表示以十进制格式化输出浮点数 String s1 ="评分: %.1f"; String s2 = String.format(s1, 8.0); System.out.println(s2); System.out.printf("%s%n", new Integer(1212)); // %n表示换行 System.out.printf("%s%n", "end line"); // 还能够支持多个參数 Syste