我的任务是编写一个函数,该函数将在其内部打印我的姓名首字母。如果你没有首字母,它会在中间打印 x,我没有中间首字母。他告诉我们继续硬编码我们要输入到函数中的列表。
所以我的函数获取了一个列号列表,其中应该打印 x。它遍历列表中的数字,检查它是否等于索引号,如果是,则打印 ax,如果不是,则打印空白,然后将索引值减 1,并重复该过程直到所有列表中的数字已被检查。我应该做所有事情,以便该函数遍历第二个列表的每一行(第一个列表),但我无法让它这样做,所以我只是在第一个复制了第二个列表并使用所有第一个列表运行该函数。这是我的代码
import sys
# function thst takes each row of the namelist and determines where to print x
def oned (row) :
index = 11
while index >= 0 :
for numbers in row :
if numbers == index :
sys.stdout.write('X')
else :
sys.stdout.write(' ')
index = index - 1
print
#Main
namelist = [[11, 2, 1, 0],
[11, 2],
[11, 2],
[11, 8, 5, 2, 1, 0],
[11, 7, 6, 0],
[11, 7, 6, 0],
[11, 8, 5, 2, 1, 0]]
testrow0 = [11, 2, 1, 0]
testrow1 = [11, 2]
testrow2 = [11, 2]
testrow3 = [11, 8, 5, 2, 1, 0] #only prints 11, 2, 1, 0 needs 8, 5
testrow4 = [11, 7, 6, 0] #only prints 11, 0 needs 7,6
testrow5 = [11, 7, 6, 0] #skips over 7, 6 like other one
testrow6 = [11, 8, 5, 2, 1, 0] #skips over 8, 5
oned (testrow0)
oned (testrow1)
oned (testrow2)
oned (testrow3)
oned (testrow4)
oned (testrow5)
oned (testrow6)
输出是
X XXX
X X
X X
X XXX
X X
X X
X XXX
这就是我想要的,但中间的 x 不见了。我似乎找不到导致此问题的错误,所以如果你能找到它,请告诉我。
我希望输出看起来像:
X XXX
X X
X X
X X X XXX
X XX X
X XX X
X X X XXX