私は、自分のイニシャルを内部に出力する関数を作成する任務を負っています。イニシャルがない場合は、真ん中に x が表示されます。私には真ん中のイニシャルがありません。彼は、関数に入力する予定のリストをハードコーディングするように言いました。
したがって、私の関数は、x を出力する列番号のリストを取得します。リスト内の数値を調べて、インデックス番号と等しいかどうかをチェックし、一致する場合は ax を出力し、そうでない場合は空白を出力し、インデックス値を 1 減らして、すべての値になるまでプロセスを繰り返します。リストの番号がチェックされました。関数が2番目のリストの各行(最初のリスト)を通過するようにすべてを行うことになっていますが、それを行うことができないので、最初のリストで2番目のリストを複製し、すべての最初のリストで関数を実行しました。これは私のコードです
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