回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>1)如果我这样做:</p>
<pre><code>tablero = [[' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', '
'], [' ', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' '], ['
', ' ', ' ', ' ', ' ', ' '], [' ', ' ', ' ', ' ', ' ', ' ']]
def dibujar_cruz():
x = 0
a = "X"
size = len(tablero)
for row in tablero:
tablero[x][x] = a
tablero[x][size-x-1]=a
x += 1
for l in tablero:
print (" ".join(l))
dibujar_cruz()
</code></pre>
<p>我获得:</p>
<p><a href="https://i.stack.imgur.com/IklQQ.jpg" rel="nofollow noreferrer">an star of size 6</a></p>
<p>2)但是如果函数“dibujar_cruz()”从另一个函数获取初始嵌套列表,如下所示:</p>
<pre><code>tablero =[]
def construir_tablero():
size =int(input("Which is the size of the nested lists? "))
col=[]
for x in range (size):
col .append(" ")
for b in range(size):
tablero.append(col)
return (tablero)
print (construir_tablero())
def dibujar_cruz():
x = 0
size = len(tablero)
for row in tablero:
row [x]= "X"
row[size-x-1]="X"
x += 1
for l in tablero:
print (" ".join(l))
dibujar_cruz()
</code></pre>
<p>我获得:</p>
<p><a href="https://i.stack.imgur.com/r45Ly.jpg" rel="nofollow noreferrer">Square obtained calling the two functions consecutively</a></p>
<p>当我期望得到与第1点相同的星星时)。你知道吗</p>
<p>3)如果我定义了调用前两个函数的第三个函数:</p>
<pre><code>def construir_cruz():
construir_tablero()
dibujar_cruz()
construir_cruz()
</code></pre>
<p>我希望得到与1)中相同的星,但我得到了一个错误:</p>
<blockquote>
<p>... row[size-x-1]="X"</p>
<p>IndexError: list assignment index out of range</p>
</blockquote>
<p>2)和3)中的结果出乎我意料。我为什么得到它们?你知道吗</p>