在Python中,字符串前面的'f'是什么意思?

13

我是新手,也是 Python 的新手。 我想知道在 print(f'Column names are {"-".join(row)}') 中的 f 代表什么意思。我试图将其删除,但是 Column names are {"-".join(row)} 变成了普通字符串。

请告诉我 f 调用了什么,这样我就可以通过谷歌学习更多相关内容了。谢谢。

import csv

with open('CSV_test.txt') as csv_file: 
    csv_reader = csv.reader(csv_file, delimiter=',')
    line_count = 0
    for row in csv_reader:
        if line_count == 0:
            print(f'Column names are {"-".join(row)}')
            line_count += 1
        else:
            print(f'\t{row[0]} works in the {row[1]} '
                  f'department, and was born in {row[2]}.')
            line_count += 1
    print(f'Processed {line_count} lines.')

2
请阅读此文章:https://realpython.com/python-f-strings/ - Chandan Kumar
3
它们被称为"f-strings"。请参阅fstring文档 - han solo
3个回答

24
这被称为f-strings,非常简单明了:在字符串前面使用"f"时,花括号内的所有变量都会被读取并替换为它们的值。例如:
age = 18
message = f"You are {age} years old"
print(message)

会返回"你今年18岁"。
这与str.formathttps://docs.python.org/3/library/stdtypes.html#str.format)类似,但更简洁。

5

以f开头的字符串是格式化字符串字面量。

假设有一个变量:

pi = 3.14

如果想要将它连接到一个字符串中,可以这样做:

s = "pi = " + str(pi)

在这里可以使用格式化字符串来简化操作。你可以使用格式化字符串来做同样的事情:

s = f"pi = {pi}"

{pi} 将会被 pi 的值替换。


2

join 方法返回一个字符串,其中序列的元素已经用分隔符连接起来。在您的代码中,它将行列表取出并用分隔符 - 连接。

然后通过使用 f-string,由 {} 指定的表达式将被其值替换。

假设 row = ["1", "2", "3"],则输出将是 Column names are 1-2-3


小心,'-'.join([1, 2, 3]) 会抛出异常。'-'.join(['1', '2', '3']) 返回你期望的结果。我已经在你的答案中修复了它。 - BlueSheepToken
.join()接受一个可迭代对象,其元素必须是字符串。 - Nameless

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接