python中的'%%'是啥意思? [复制]

Posted

技术标签:

【中文标题】python中的\'%%\'是啥意思? [复制]【英文标题】:What does '%%' mean in python? [duplicate]python中的'%%'是什么意思? [复制] 【发布时间】:2019-03-30 03:39:16 【问题描述】:

我在学习python的时候遇到了一个问题。

print('test%d, %.2f%%' % (1,1.4))

但是,它有一个错误。

ValueError: incomplete format

但是如果我这样执行:

print('test%d, %.2f%%' % (1,1.4))
test1, 1.40%

它可以工作并打印“%”。但我不知道为什么?有人能帮我吗?谢谢。

【问题讨论】:

这些行看起来是一样的。 表示输出文字%符号。 我敢打赌你的第一行是真的,print('test%d, %.2f%' % (1,1.4))。单个% 开始一个格式说明符,并且需要 后面的格式说明符字符。然后如何将% 打印为字符?你使用%% 你用什么材料来学习python,因为那个符号已经过时了……应该是print('test:d, :.2f%'.format(1,1.4))或者更好的print(f'test1, 1.4:.2f%')。学习一些较新的材料而不是学习过时的符号可能值得您花时间学习 在哪种情况下你会得到ValueError,如果你运行它,它会打印OK? 【参考方案1】:

由于% 在(旧的C 风格)格式字符串中用作特殊字符,因此您必须使用%% 来打印文字百分号。

【讨论】:

只是一点点补充:这是格式化字符串的方法。现在人们宁愿使用str.format(),另见PEP-3101。 @colidyre 好点。对于任何编写新代码的人,我绝对会推荐它。【参考方案2】:

您需要研究 c 样式的字符串格式。 %% 是对这一系列字符串格式化命令的引用。

以下页面: https://docs.python.org/3.4/library/string.html 有一个“字符串格式化迷你语言”部分可以详细回答您的问题。

【讨论】:

以上是关于python中的'%%'是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python 中的 @ 和 lambda 是啥意思? [复制]

Python中的空返回是啥意思? [复制]

Python 中的 *tuple 和 **dict 是啥意思? [复制]

Python 列表推导中的“或”是啥意思? [复制]

Python 中的“变量 //= 值”语法是啥意思? [复制]

以下代码中的 zip(*res) 在 python 中是啥意思? [复制]