呼び出されるたびに行列を作る関数を作ろうとしています。行列の関数を定義し、リストとして別々に行列の値を得るためのPythonプログラム
問題1:2x3または3x2を作成して、それを書き込もうとすると:
IndexError: list index out of range
。 Haminaa
def mtx():
m=int(raw_input("Rows"))
n=int(raw_input("Col"))
a=[[0 for i in range(m)]for j in range(n)]
l=[]
for i in range(m):
for j in range(n):
s=a[i][j]=int(raw_input("Fill"))
l.append(s)
for i in range(m):
for j in range(j+1):
print a[i][j], '\t',
print
が解決しようあなたが入力のリストを取得するためのコードでリストを、見ている必要があります。 それぞれの行列に対してmとnの値を別々に求めたいと思います。リストも。 Mが定義されていないことを示すエラー(SO Nであり、L):
は、例えば、私はこの
mtx()
m1=m
n1=n
l1=l
mtx()
m2=m
n2=n
l2=l
Problem2(A)を取得したいです。
また、mとnを定義から外してパラメータとして使用しようとしました。だから私はmとnを得ることができる。
def mtx(m,n):
a=[[0 for i in range(m)]for j in range(n)]
l=[]
for i in range(m):
for j in range(n):
s=a[i][j]=int(raw_input("Fill"))
l.append(s)
for i in range(m):
for j in range(j+1):
print a[i][j], '\t',
print
m1=int(raw_input("Rows"))
n1=int(raw_input("Col"))
mtx(m1,n1)
m2=int(raw_input("Rows"))
n2=int(raw_input("Col"))
mtx(m2,n2)
Problem2(B):しかし、それはリストlを取得することは可能でしょうか?
問題2(a)を解くと、問題2(b)はありません。
私はあなたの2番目の問題を理解していません。あなたのコードを(リストの理解を逆にして)試してみました。そして、 "Fill"入力として与えられた一連の値を表示しました。これはあなたが望むものではありませんか?どのようなエラーメッセージが表示されますか? – Haminaa
@ハミナ私はmとnの値を得たいです。関数が呼び出されるときと同じように、mとnを入力するようにユーザーに求め、 "Fill"で入力のリストを作成します。したがって、これらのm、n、lの値が必要なので、将来、行列の加算や乗算などのアプリケーションで使用できます。たとえば、乗算では、最初の行列の列数= 2番目の行数(つまり、m1 = n2)にする必要があります。次に、リストを使用して回答行列を掛けて回答行列を作成します。 –
あなたのコードでは、 'm'と' n'の値はすでに 'n1'、' m1'などに格納されているようです。しかし、あなたが定義する変数は関数内でのみ定義されています。関数の外側でそれらを定義するには、関数の最後に 'return'を使うことができます。私はこれを含めるために私の答えを更新しました。 – Haminaa