Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法准确理解一行Python代码_Python_Syntax - Fatal编程技术网

无法准确理解一行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?
这似乎意味着

  • 应用%2d。对我来说
  • 将%8.2f应用于付款
  • 将%8.2f应用于利息
  • 将%8.2f应用于月付款
  • 这些词的意思似乎如下

  • %2d:两个小数的十进制表示法

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

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


    您如何理解挑战行?

    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

    转换说明符包含两个或多个字符,并具有以下组件,这些组件必须按此顺序出现:

  • “%”字符,它标记说明符的开头
  • 映射键(可选),由括号中的字符序列组成(例如,(somename))
  • 转换标志(可选),影响某些转换类型的结果
  • 最小字段宽度(可选)。如果指定为“*”(星号),则从中读取实际宽度