为什么我们需要在python中的f字符串周围加上撇号?

时间:2019-04-13 23:10:29

标签: python string

我了解什么是f字符串以及如何使用它们,但是我不明白为什么在已经将变量设为字符串的情况下为什么需要对整个f字符串加撇号。

first_name = 'Chris'
last_name = 'Christie'

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

我了解预期的结果。但是,这是我感到困惑的地方。变量的名字和姓氏已经不是字符串吗?因此,当我们将其放入f字符串语句中时,是否不是将两个字符串(变量的名字和姓氏)放在一个大字符串中(因为整个f字符串语句都被撇号包围了)?抱歉,这令人困惑

2 个答案:

答案 0 :(得分: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字符串使您可以看到变量最终在字符串中的位置。正如您所指出的,这种表示法看起来有些奇怪,因为您最终将字符串作为变量插入到字符串中,但是表示法就是这样-表示法。您会以一些晦涩难懂为代价获得一些表现力。

答案 1 :(得分: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'