问题标签 [f-string]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何清理兼容 Python 2.7 + 3 的包以使其仅兼容 Python 3.6?
对于某些项目,我想停止支持 Python 2.7(请参阅http://python3statement.org/)以仅使用 Python > 3.6(或者更确切地说是 3.5 + f-string,如 Pypy v6.0)。
如果尝试将包与没有 f-string 的 Python 版本一起使用,第一步可能是修改 setup.py 文件以获得显式错误。
但是要切换到纯 Python 3.6 语法并删除所有
并在许多地方更换
class MyClass(object)
->class MyClass:
super(MyClass, self)
->super()
"{}".format(foo)
->f"{foo}"
我基本上是手动为代码完成了这项工作(实际上我还通过使用 Python 脚本处理代码来自动化一些步骤),我真的看到了不同之处。代码现在不那么冗长了,全局也变得更好了。
我确信我忘记了许多其他可以做的很好的简化,例如我现在使用了很多from pathlib import Path
,但这些更改不那么直接。
您如何将 Python 2.7/3.6 兼容代码转换为干净的 Python 3.6 代码?如何避免手动完成这项无聊的工作?
在第一个答案后编辑
我认为假设的内化(在许多情况下不会附加)不应该阻止我们使用 f-strings,它只是更干净(并且稍微快一点)。
我仍然认为我提到的修改是合理的。
python - 什么时候可以在 setup.py 脚本中使用来自 python 的后续次要版本更新的功能?
原始问题标题:
我们应该在 setup.py 中使用 python 3.6 功能吗?
我为依赖于 python 3.6 的私有库安装程序创建了 setup.py。我试图让这个文件对任何试图在 python 版本上安装它的人更友好一点,并意识到我的想法有一个重大缺陷。
我在 setup.py 中使用了f-strings ,它只在 >=3.6 中工作!
任何试图在以前版本的 python 中运行 setup.py 的人甚至都不会到达检查解释器版本的第一行代码。所以这让我想到了创建 setup.py 文件的指南以及可能存在哪些其他语法限制,这些限制会阻止 setup.py 在多个环境中正常运行。
运行上面的代码会给你这个:
我的问题是
当使用仅限于较新版本的解释器功能时,对 setup.py 有什么建议?
编辑:
3.8.2 现已推出,这让我再次思考这个问题。所以我重新措辞了这个问题。
什么时候可以在 setup.py 脚本中使用来自 python 的后续次要版本更新的功能?
F-strings 是在 3.6 中添加的。什么时候可以在 setup.py 中开始使用它们?两个小版本?三?下一个主要版本?
python - 大括号内的 f 字符串公式不起作用
我在 Python 3.7 上。
我在第 3 行的代码工作正常,但是当我将基础公式插入第 4 行时,我的代码返回错误:
SyntaxError: f-string: mismatched '(', '{', or '[' (错误指向第 4 行中的第一个 '('。
我的代码是:
我无法弄清楚第 4 行有什么问题。
python - 如何在 fstrings 中使用 .loc?
我有一个这样的数据框:
和这样的字典:
字典包含要从数据框中提取的列名和值的索引以生成如下字符串:
因此,每个字符串都以元素本身开头,并在括号中显示索引和列名。
我尝试了以下列表理解:
产生
所以,几乎没问题,只是col1\n0
需要避免的部分。
如果我尝试
我明白了
然而,根据需要,与
我明白了
这怎么可能解决?
python - Python:用 f-string 隐藏 json 空键值
我使用 f-strings 而不是 print改进了我的第一个 Python 程序:
该程序通过 json 文件获取数据以构建科学引文:
它工作得很好,除了(再次)我不知道如何在键没有值时从 return 语句中隐藏键值(即,json 文件中没有针对一个特定引用的这样的键)。
例如,一些科学引文没有“Pubmed”键/值 (pmd)。我不想用空白值打印“Pubmed:”,而是想摆脱它们:
使用 publi 函数中的print语句,我可以编写以下内容:
有谁知道如何使用f-string获得相同的结果?
谢谢你的帮助。
PS:作为一个 python 初学者,我无法解决这个特定问题,只是阅读文章Using f-string with format based on a condition
python - 如何在 Python 的 print 函数中读取数组的元素?
我只想使用打印功能创建一次以下输出:
为此,我使用以下代码:
但我得到的输出是:
你能帮我做错什么吗?如何在打印函数中调用数组元素?
python - 如何使用 f"" 字符串而不是 .format() 打印二进制数?
为了将一些数字打印为二进制格式,我们只需使用该.format()
方法,如下所示:
以其他格式(十六进制和八进制)打印也是如此,只需将后面的大括号替换为我们要打印的数字即可。但是有没有办法使用新f""
字符串来替换.format()
命令?我知道这可能看起来微不足道,但我在使用新功能时遇到了这个问题,此外还f""
使代码更短且更具可读性。
python - 将 Python f 字符串与 Yaml 文件结合使用?
如果我有一个 yaml 文件,其中包含与 python f-strings 合作使用的带有括号符号 {} 的字符串,那么在这里如何利用 f-string 插值?以这个简单的 yaml 文件为例:
如果x = 'val3'
,我希望 k2 的值能够反映val2 as well as val3
这可以很容易地用格式字符串来完成......
但是如何对 f-strings 做同样的事情呢?
python - Python中的“懒惰”列表项评估
由于缺乏更好的词,我用这个标题。
我想要的是能够做这样的事情:
但相反,字符串中的文字表达式在创建列表时被评估一次,并且每次访问它时都会给出相同的结果。
我想知道除了编写一些复杂的边缘案例处理之外是否有更简单/更智能的方法来解决这个问题(毕竟我们是程序员;谁不喜欢编写漂亮的代码并且优雅而花哨?)。我说的是边缘情况处理,因为我的 49 个字符串中只有 6 个需要这种“特殊”行为。
到目前为止,我尝试的是从 randint 调用中创建一个 lambda 函数,但这无济于事;同样的结果。也许这是惰性评估的一个案例,但我需要一些关于如何(或是否?)将它与列表一起使用的指导。
python - Python f 字符串格式不适用于 strftime 内联
我遇到了一个我试图理解的奇怪错误。进行一些常规代码清理并将所有字符串格式转换为 f 字符串。这是在 Python 3.6.6 上
此代码不起作用:
但是,这(功能相同)确实有效:
我觉得我可能遗漏了一些明显的东西,并且对第二次迭代很好,但我想了解这里发生了什么。