Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 在Jinja2中执行算术运算_Python_Flask_Jinja2 - Fatal编程技术网

Python 在Jinja2中执行算术运算

Python 在Jinja2中执行算术运算,python,flask,jinja2,Python,Flask,Jinja2,我想找出两个不同值之间的差异。但是,我得到了一个Jinja2错误。我不知道如何找到这个模板中的差异 我尝试使用-操作符,但没有成功。因此,我使用sub查找实际分数和预测分数之间的差异 {% for e in question.essays %} <div class="panel panel-default"> <div class="panel-heading"> <h3 class="panel-title"&g

我想找出两个不同值之间的差异。但是,我得到了一个
Jinja2
错误。我不知道如何找到这个模板中的差异

我尝试使用
-
操作符,但没有成功。因此,我使用
sub
查找实际分数和预测分数之间的差异

 {% for e in question.essays %}
    <div class="panel panel-default">
        <div class="panel-heading">
            <h3 class="panel-title">{{loop.index}}</h3>
        </div>
        <div class="panel-body">
            <div class="actual-score">Actual score: {% if e.actual_score %} {{e.actual_score|round(1)}}/5{% endif %}</div>
            <div class="predicted-score">Predicted score: {% if e.predicted_score %}{{e.predicted_score|round(1)}}/5{% endif %}</div>
            <p class="essay-text">Text: {{e.text}}</p>
        <div class="diff">Difference: {{ e.actual_score|sub(e.predicted_score)}} </div>

        </div>
根据,使用
-
应该可以很好地工作。同样在我这边,它工作得很好。请注意在使用操作员时发布您收到的错误消息。我在Jinja2的文档中也找不到
sub
标记

因此,如前所述,我认为这应该是可行的:

{{ e.actual_score - e.predicted_score }} 

只是一个旁注,我发现唯一一个做算术运算的模板标记,也就是说,它也不做减法运算

你的
sub
是指
标记吗?不是,我用它来执行减法,但发现jinja没有默认的sub作为过滤器。现在我怎么才能找到差异呢?我只是尝试了
{{e.actual_score-(e.predicted_score)}
?类型错误:不支持的操作数类型-:“float”和“NoneType”我在使用{e.actual_score-e.predicted_score}时遇到了这个错误。看起来你正在尝试在一个数字和
无之间执行减法。您需要有一个数值才能执行减法
{{ e.actual_score - e.predicted_score }}