擅长:python、mysql、java
<p>你很接近。这里是你自己尝试的修正版本,范围可达30。问题是你的函数只工作了两位数。这里我使用if-else条件来检查数字是否小于10。如果是这样的话,我只需将它平方,否则我会将它发送给你的函数。你知道吗</p>
<p>在函数中,没有对数字进行平方运算。你也不需要<code>listemm</code>。你可以在你的列表理解中直接使用<code>range</code>。你知道吗</p>
<pre><code>def mult(liste):
a=1
for i in liste:
a*=i**2 # Square here (the problem was partly here)
return a
qe= [numb**2 if numb<10 else mult(int(digit) for digit in str(numb)) for numb in range(1,30)]
print(qe)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
</code></pre>