for ループと if ステートメントを使用して、範囲内のすべての数値をチェックしようとするコードを書いています。ループは最初のチェックの後に停止し、メッセージが 間違った型 ,,None,, expected integerでエラーをスローします。
以下を実行する関数 findLine(prog, target) を定義します。prog は、getBASIC() によって生成される型のような、BASIC プログラムを含む文字列のリストであると仮定します。target は、GOTO ステートメントのターゲットである行番号を含む文字列であると仮定します。この関数は、prog[i] がターゲットと等しいラベルを持つ行になるように、インデックス i (0 から len(prog)-1 までの数値) を返す必要があります。ヒント 入出力例: findLine(['10 GOTO 20','20 END'], '10') を呼び出す場合
def findLine(prog, target):
L=[]
for i in range(0, len(prog)):
L=L+prog[i].split()
for j in range(0,len(L)):
i=L.index(L[j])
if j == int(target):
i=i//3
return i
これらはいくつかの情報です:
Running findLine(['10 GOTO 20', '20 END'], '20')… Error: findLine(['10 GOTO 20', '20 END'], '20') has wrong type "None" Type, expected Integer