无法准确理解一行Python代码

2024-09-30 12:31:47 发布

您现在位置:Python中文网/ 问答频道 /正文

Alex's answer翻译成英语时有以下行

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

我不确定线路

^{pr2}$

它似乎意味着

  1. 将%2d.应用于i
  2. 对付款应用%8.2f
  3. 对利息应用%8.2f
  4. 将%8.2f应用于月付款

%这个词似乎是指

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

    2-4页。%8.2f:两位小数的浮点表示

我不知道为什么我们在%8.2f中使用8

你如何理解这条充满挑战的路线?


Tags: answerpayment路线线路浮点print小数alex
3条回答

8英寸8.2是宽度
“要打印的最小字符数。如果要打印的值小于此数字,则结果将用空格填充。即使结果大于“
2是小数位数

最后一个%只是将格式字符串(用引号括起来)与参数列表(在括号中)链接起来。 他们选择了一个%来做这件事有点令人困惑——这可能有一些深层的python原因。在

edit:显然使用“%”仅仅是因为“%”是在格式内部使用的-这非常愚蠢,而且肯定会引起混乱。这就像在浮点数的末尾需要一个额外的点来表示它是浮点数!在

%是生成格式字符串的运算符。一个简单的例子是:

"%s is %s" % ( "Alice", "Happy" )

它的计算结果是字符串"Alice is Happy"。提供的格式字符串定义如何将传递的值放入字符串中;语法为here。简而言之,d是“视为十进制数”,而8.2是“填充到8个字符并四舍五入到2个小数位”。从本质上看,这种格式尤其适用,这样当以等宽字体查看时,答案会排成一行。:)

在我的代码示例中,s表示“视为字符串”。在

最后一个%是一个运算符,它接受前面的字符串和后面的元组,并按您的说明应用格式。有关详细信息,请参阅Python tutorial。在

相关问题 更多 >

    热门问题