gpt4 book ai didi

python - 我知道f弦,但是什么是r弦?还有其他吗?

转载 作者:行者123 更新时间:2023-12-03 07:34:31 25 4
gpt4 key购买 nike

几周前,我在一门关于数据科学的加速类(class)中第一次开始学习python,我们很早就开始学习f字符串。

简单的代码:

name = 'Tim'
print(f'There are some who call me {name}...')

输出字符串“有人叫我蒂姆...”

出于好奇,通过浏览各种程序包,我遇到了类似 this one的页面,详细介绍了可以在matplotlib中调用的函数,以在生成的图像中渲染类似于$\LaTeX $的表达式。在示例代码中,它们使用类似于f字符串的方式,但用r代替f。
import matplotlib.pyplot as plt
plt.title(r'$\alpha > \beta$')
plt.show()

生成的图(否则为空)具有使用文本的标题,该标题的格式类似于使用MathJax或$\LaTeX $并带有希腊字母alpha和希腊字母beta的格式。

我的问题如下:

R弦到底是什么,它与F弦相比如何? r字符串是否专门用于matplotlib的mathtext和usetex?

除了f字符串和r字符串之外,还有其他值得注意的相似的字符串变体或替代品让我熟悉或意识到吗?

最佳答案

  • r字符串是原始字符串。
  • 它忽略转义字符。例如,"\n"是包含换行符的字符串,r"\n"是包含反斜杠和字母n的字符串。
  • 如果您想将其与f字符串进行比较,则可以将f字符串视为“包含电池”。它们在逃脱字符和执行几乎任意表达式的能力方面具有很大的灵活性。另一方面,r字符串被精简和简化,在其引号之间精确包含字符。
  • 就实际使用这些东西而言,如果要将字符串传递到其他使用一堆奇怪字符或自己转义的东西中,则通常将使用r字符串,这样您就不必太费力地思考您需要多少反斜杠才能使一切正常工作。在您的示例中,他们至少需要r字符串才能使\a位正确运行而没有两次转义。请注意,'$\\alpha > \\beta$'r'$\alpha > \beta$'相同。
  • 由于您使用的是f字符串,因此我假设您至少具有Python 3.6。并非所有这些选项都适用于较早的版本,但是以下任何前缀在Python 3.6+中均有效,并且可以使用大写和小写形式:r, u, f, rf, fr, b, rb, br
  • b字符串是二进制文字。在Python 2中,它们什么也不做,只有存在才使源代码与Python 3兼容。在Python 3中,它们允许您创建 bytes object。字符串可以看作是底层字节的 View ,通常在允许哪些组合方面受到限制。类型上的区别有助于防止错误将文本技术盲目地应用于原始数据。在Python 3中,请注意'A'==b'A'False。这些不是一回事。
  • u字符串是unicode literals。在Python 3中,默认情况下字符串是unicode,但是为了与Python 2向后兼容,允许使用u前缀。在Python 2中,字符串默认是ASCII,并且u前缀允许您在字符串中包含非ASCII字符。例如,请注意法语短语u"Fichier non trouvé"中的重音字符。
  • 在我编写的那种代码中,除了r, u, f, b之外,我几乎不需要什么。甚至b都在那里。其他人每天(大概)都会处理这些前缀。他们不一定是您需要熟悉的任何东西,但是了解它们的存在并能够找到其文档可能是一项很好的技能。

  • 只是为了让它出现在答案中,而不是在注释中掩盖,@ JamesGibson链接了 language specification,这与我从中提取前缀列表的位置相同。根据您的数学背景,正式的语言规范可能会特别有趣-取决于您对代数和数学逻辑的喜爱程度。

    即使只是像Forth这样的语义上微不足道的语言,我认为许多程序员还是喜欢编写简短的解释器,并对他们选择的语言如何工作获得宝贵的见解。

    关于python - 我知道f弦,但是什么是r弦?还有其他吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52360537/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com