<p>假设python知道要将表达式带到下一行。在本例中,它不知道这一点,除非在行尾使用<code>\</code>告诉它,或者将表达式括在<code>()</code>中。基本上以某种方式表示看似完成的表达式不完整,并继续下一行</p>
<p>这:</p>
<pre class="lang-py prettyprint-override"><code> ostr = istr + ": Was issued by " + IssuerList[int(istr[1])] + " in 20"
+ istr[2:4] + ". The card expires on " + istr[4:6] + "/" + istr[6:8]
+ ". The card is linked to a " + TypeList[int(istr[8])]
+ " with the account number: " + istr[8:]
</code></pre>
<p>应该是:</p>
<pre class="lang-py prettyprint-override"><code> ostr = istr + ": Was issued by " + IssuerList[int(istr[1])] + " in 20" \
+ istr[2:4] + ". The card expires on " + istr[4:6] + "/" + istr[6:8] \
+ ". The card is linked to a " + TypeList[int(istr[8])] \
+ " with the account number: " + istr[8:]
</code></pre>
<p>或:</p>
<pre class="lang-py prettyprint-override"><code> ostr = (istr + ": Was issued by " + IssuerList[int(istr[1])] + " in 20"
+ istr[2:4] + ". The card expires on " + istr[4:6] + "/" + istr[6:8]
+ ". The card is linked to a " + TypeList[int(istr[8])]
+ " with the account number: " + istr[8:])
</code></pre>
<p>现在让我解释一下您得到的实际错误“TypeError:一元+的错误操作数类型:”“str'in string creation”是因为它已经完成了对看似完整的第一行或上面删掉的部分的解析,现在又开始解析第二行。它看到新行以<code>+</code>开头,因此它必须是一元数<code>+</code>,因为<code>+</code>的左边没有操作数。它不适用于下一个字符串操作数,因此会出现问题</p>