无法准确理解一行Python代码
翻译成英语时有以下行无法准确理解一行Python代码,python,syntax,Python,Syntax,翻译成英语时有以下行 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? 这似乎意味着 应用%2d。对我来说 将%8.2f应用于付款 将%8.2f应用于利息 将%8.2f应用于月付款 这些词的意思似乎如下 %2d:两个小
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?
这似乎意味着
您如何理解挑战行?8.2f表示允许8个字符的空格保存包含浮点的响应变量所给出的数字,然后小数精度为2。8.2f表示允许8个字符的空格保存包含浮点的响应变量所给出的数字,然后,小数精度为2。最后一个%是一个运算符,它将字符串放在前面,元组放在后面,并按照您的说明应用格式。有关详细信息,请参阅。最后一个%是一个运算符,它将字符串置于前面,元组置于后面,并按照您的说明应用格式。有关详细信息,请参阅。该%是一个生成格式字符串的运算符。一个简单的例子是:
"%s is %s" % ( "Alice", "Happy" )
它将计算为字符串“Alice很高兴”。提供的格式字符串定义如何将传递的值放入字符串中;语法是可用的。简而言之,d
是“视为十进制数”,而8.2
是“填充到8个字符,四舍五入到2个小数位”。从本质上看,它似乎特别使用了这种格式,以便在使用单空格字体查看时,答案排成一行。:)
在我的代码示例中,
s
表示“作为字符串处理”。是一个生成格式字符串的运算符。一个简单的例子是:
"%s is %s" % ( "Alice", "Happy" )
它将计算为字符串“Alice很高兴”。提供的格式字符串定义如何将传递的值放入字符串中;语法是可用的。简而言之,d
是“视为十进制数”,而8.2
是“填充到8个字符,四舍五入到2个小数位”。从本质上看,它似乎特别使用了这种格式,以便在使用单空格字体查看时,答案排成一行。:)
在我的代码示例中,
s
表示“作为字符串处理”。8.2中的8是宽度“要打印的最小字符数。如果要打印的值小于此数字,则结果将用空格填充。即使结果较大,该值也不会被截断”
2是小数位数 最后的%只是将格式字符串(引号中)与参数列表(括号中)链接起来。 他们选择了%来做这件事有点让人困惑——这可能是python的深层原因
编辑:显然使用“%”只是因为“%”在格式中使用-这太愚蠢了,肯定会引起混淆。这就像在一个浮点数的末尾需要一个额外的点来表示它是浮点数 8.2中的8是宽度
“要打印的最小字符数。如果要打印的值小于此数字,则结果将用空格填充。即使结果较大,该值也不会被截断”
2是小数位数 最后的%只是将格式字符串(引号中)与参数列表(括号中)链接起来。 他们选择了%来做这件事有点让人困惑——这可能是python的深层原因
编辑:显然使用“%”只是因为“%”在格式中使用-这太愚蠢了,肯定会引起混淆。这就像在一个浮点数的末尾需要一个额外的点来表示它是浮点数 字符串后面的%告诉Python尝试填充字符串左侧的变量 “%”运算符,列表中的项位于“%”运算符的右侧 “%”运算符知道如何通过在以%开头的字符串中查找字符来查找字符串中的变量 您的困惑在于您认为字符串中的%运算符和%字符是相同的
试着这样看,在字符串外部%是一个运算符,在字符串内部它可能是一个用于替换的模板 字符串后面的%告诉Python尝试填充字符串左侧的变量 “%”运算符,列表中的项位于“%”运算符的右侧 “%”运算符知道如何通过在以%开头的字符串中查找字符来查找字符串中的变量 您的困惑在于您认为字符串中的%运算符和%字符是相同的
试着这样看,在字符串外部%是一个运算符,在字符串内部它可能是一个用于替换的模板 像往常一样,需要对文档进行引用-: 字符串和Unicode对象有一个唯一的内置操作:百分比运算符(模)。这也称为字符串格式或插值运算符。给定格式%值(其中格式为字符串或Unicode对象),%格式中的转换规范将替换为零个或多个值元素。其效果类似于在C语言中使用sprintf 以及用于解释
%8.2f
转换说明符包含两个或多个字符,并具有以下组件,这些组件必须按此顺序出现: