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 中的 *tuple 和 **dict 是啥意思? [复制]