-1

我了解 f 字符串是什么以及如何使用它们,但我不明白为什么我们已经将变量设置为字符串时需要在整个 f 字符串周围加上撇号。

first_name = 'Chris'
last_name = 'Christie'

sentence = f'That is {first_name} {last_name}'

我明白预期的结果会是什么。但这就是我感到困惑的地方。变量名和姓不是已经是字符串了吗?那么当我们把它放到 f 字符串语句中时,我们不是把两个字符串(变量名和姓氏)放在一个大字符串中(因为整个 f 字符串语句都被撇号包围了)?抱歉,如果这令人困惑

4

2 回答 2

1

我们不是把两个字符串(变量名和姓)放在一个大字符串中吗

是的。在这个例子中,这并不是一件难事。正如你所建议的,你可以这样做:

first_name = 'Chris'
last_name = 'Christie'

sentence = 'That is ' + first_name + ' ' + last_name

连接字符串。但这很快就会变得笨拙。由于所有这些引号和运算符,很难一眼看出最终字符串的外观。

很多语言都想出了一种将变量作为字符串本身的一部分的方法。这样,您可以更自然地编写字符串。例如,在 Python 中,您还可以使用“%-formatting”:

sentence = 'That is %s %s' % (first_name, last_name)

这要好一些,因为您可以轻松地看到变量在字符串中的位置。但是当您有很多替换要做时,它会变得混乱,因为您需要将 % 的顺序与列表的顺序相匹配。如果我们可以将变量放入字符串本身会怎样?嗯,这就是 f 弦的作用。

因此,f-strings 允许您查看变量在字符串中的最终位置。正如您所指出的,符号可能看起来有点奇怪,因为您最终将字符串作为变量插入到字符串中,但符号就是这样 - 符号。你会以一些晦涩为代价获得一些表现力。

于 2019-04-13T23:32:04.713 回答
1

不要对撇号感到困惑:

  • 我们使用撇号在 Python 中定义字符串:

    name = "Chris"
    
  • 我们使用 f-Strings,因为它是Python中格式化字符串的新改进方法:

    # Define two strings
    name = "Chris"
    surname = "Christie"
    
    # Use f-Strings to format the overall sentence
    sentence = f"Hello, {name} {surname}"
    
    # Print the computed sentence 
    print(sentence)
    

    输出: 'Hello, Chris Christie'

于 2019-04-13T23:40:12.780 回答