【问题标题】:What does 'f' means before a string in Python?Python中的字符串之前的'f'是什么意思?
【发布时间】:2020-02-02 14:47:45
【问题描述】:

我是新来的,也是 Python 的新手。 我想知道f in print(f'Column names are {"-".join(row)}') 做什么 我尝试删除它,然后'列名是 {"-".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.')

【问题讨论】:

标签: python f-string


【解决方案1】:

这被称为 f 字符串并且非常简单:当在字符串前面使用“f”时,大括号内的所有变量都被读取并替换为那里的值。例如:

    age = 18
    message = f"You are {age} years old"
    print(message)

将返回“您已 18 岁”

这类似于 str.format (https://docs.python.org/3/library/stdtypes.html#str.format),但方式更简洁。

【讨论】:

    【解决方案2】:

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

    假设你有一个变量:

    pi = 3.14

    要将它连接到你会做的字符串:

    s = "pi = " + str(pi)

    格式化的字符串在这里派上用场。使用它们你可以使用它做同样的事情:

    s = f"pi = {pi}"

    {pi} 被简单地替换为pi 中的值

    【讨论】:

      【解决方案3】:

      join 方法返回一个字符串,其中序列的元素已由分隔符连接。在您的代码中,它需要行列表并通过分隔符 - 加入。

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

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

      【讨论】:

      • 小心,'-'.join([1, 2, 3]) 会抛出 Exception'-'.join(['1', '2', '3']) 回复您的期望。我在你的答案中修复了它
      • 哦,是的,谢谢。
      • .join() 接受一个其元素必须是字符串的可迭代对象。
      猜你喜欢
      • 2011-02-05
      • 2015-01-03
      • 2012-10-07
      • 2014-12-23
      • 2017-12-01
      • 2017-12-03
      • 2010-09-29
      相关资源
      最近更新 更多