Skip to main content
 首页 » 编程设计

python之无法准确理解一行 Python 代码

2025年05月04日10hnrainll

Alex's answer翻译成英文时有如下一行

print "%2d. %8.2f %8.2f %8.2f" % (     
            i, payment, interest, monthPayment) 

我不确定这条线

"%2d. %8.2f %8.2f %8.2f" %         #Why do we need the last % here? 

好像是下面的意思

  1. 申请 %2d。对我
  2. 使用 %8.2f 付款
  3. 申请 %8.2f 利息
  4. 将 %8.2f 应用于 monthPayment

%-words 似乎意味着以下内容

  1. %2d.:两位小数的十进制表示

    2-4。 %8.2f:两位小数的 float 表示

我不确定为什么我们在 %8.2f 中使用 8。

你是怎么理解挑战线的?

请您参考如下方法:

8.2中的8是宽度
"要打印的最小字符数。如果要打印的值小于此数字,则结果用空格填充。即使结果更大也不会截断该值"
2是小数位数

最后的 % 只是将格式字符串(在引号中)与参数列表(在括号中)链接起来。 他们选择 % 来执行此操作有点令人困惑 - 可能有一些深层的 python 原因。

编辑:显然使用“%”只是因为在格式内部使用了“%”——恕我直言,这是愚蠢的,肯定会引起混淆。这就像要求在一个 float 的末尾多一个点来表明它是 float 一样!