print和格式化字符串文字有什么区别?

时间:2017-09-04 16:27:15

标签: python python-3.x format-string

使用代码时有什么意义,比如第8行和第9行,我们可以在第10行使用print吗?

my_name = 'Zed A. Shaw'
my_age = 35
my_height = 74
my_weight = 180
my_eyes = 'Blue'
my_teeth = 'White'
my_hair = 'Brown'
print(f"Let's talk about {my_name}.") # Line 8
print(f"He's {my_height} inches tall.") # Line 9
print("He's", my_teeth, "pounds heavy.") # Line 10

2 个答案:

答案 0 :(得分:2)

您在第8-9行看到的内容被称为格式化字符串文字 f-strings 。它们在版本3.6中添加到Python中,并在PEP498中详细说明。它们基本上允许您直接在字符串中嵌入表达式。

  

如果我们可以使用第10行,那么使用第8行和第9行是什么意思?

那么,是什么print的正常调用中使用它们的意义呢?在上面的例子中,并不多。当您需要使用多个值格式化字符串时,会显示真正的好处。您可以直接使用变量名称或在字符串中包含表达式,而不是进行一堆字符串连接:

>>> a = 12
>>> b = 6
>>> f'The sum of 12 and 6 is: {a + b}'
'The sum of 12 and 6 is: 18'
>>> name = 'Bob'
>>> age = 32
>>> f'Hi. My name is {name} and my age is {age}'
'Hi. My name is Bob and my age is 32'
>>> def fib(n):
    if n <= 1:
        return 1
    return fib(n - 1) + fib(n - 2)

>>> f'The Fibonacci number of 10 is: {fib(10)}'
'The Fibonacci number of 10 is: 89'

虽然从上面的例子中可能很难说, f-strings非常强大。能够将整个表达式嵌入到字符串文字中是一个非常有用的功能,并且还可以使代码更加清晰简洁。当您开始编写更多代码并且代码的用例变得非常重要时,这将变得非常清楚。

答案 1 :(得分:0)

简而言之,它们允许您格式化字符串。如果您需要格式化(例如)

print(f"hello {world}")

返回

你好世界