Peteryo01223 发表于 2021-2-1 14:49:22

Python:连续两个 %,是何意?

本帖最后由 Peteryo01223 于 2021-2-1 14:56 编辑

msg = '您目前弓累积编写了 %d 行代码,完成进度:%.2f%%\n离 10 万行代码还差 %d 行,请继续努力。' % (total, total/1000, 100000-total)
以上code,是某题目正确答案里的一句。
请问:如果 %.2f 是表示保留2位小数位的float型数字的意思,那么 后面连续两个 %,是何意?

wp231957 发表于 2021-2-1 14:56:28

就是为了输出百分号

wp231957 发表于 2021-2-1 14:56:58

>>> total=987
>>> print("%.2f%%"%total)
987.00%
>>>

Peteryo01223 发表于 2021-2-1 14:57:39

wp231957 发表于 2021-2-1 14:56
就是为了输出百分号

输出%,为何要用两个%%?难道第一个%有转义的作用吗?

逃兵 发表于 2021-2-1 15:00:34

Peteryo01223 发表于 2021-2-1 14:57
输出%,为何要用两个%%?难道第一个%有转义的作用吗?

是的
第一个%用来转义,转义的内容是第二个%
>>> '%d%%'%10
'10%'

wp231957 发表于 2021-2-1 15:02:47

Peteryo01223 发表于 2021-2-1 14:57
输出%,为何要用两个%%?难道第一个%有转义的作用吗?

python 就是这样的用法,双%类似定界符中间的 原样输出但是它要配合%+占位符的使用
也就是说这样是不行的

>>> print("%987&&%%")
%987&&%%
>>>

Peteryo01223 发表于 2021-2-1 15:08:34

wp231957 发表于 2021-2-1 15:02
python 就是这样的用法,双%类似定界符中间的 原样输出但是它要配合%+占位符的使用
也就是说这样 ...

学习了,感谢~
页: [1]
查看完整版本: Python:连续两个 %,是何意?