私はPythonで、ユーザーが入力する次元の2つの行列を乗算するプログラムを実行しています。私が持っている問題は、ユーザーが入力の各行の値を入力する必要があり、プログラムは各入力の値しか取得できないということです。 私は.split()を使用して試したが、それがないとき乗算が私にこの エラーを送信します。n次元行列乗算python
TypeError : can not multiply sequence by non -int of type 'list'.
私のコードは次のとおりです。あなたが直接入力としてリストを受け入れることができますPythonでは
matriza=[]
matrizb=[]
matrizc=[]
orden=int(input("Ingresa el orden de las matrices: "))
#Para obtener la primer matriz
for i in range(0,orden):
matriza.append([0]*orden)
for j in range(0,orden):
matrizb.append([0]*orden)
for k in range(0,orden):
matrizc.append([0]*orden)
for i in range(0,orden):
for j in range(0,orden):
matriza[i][j]=int(input("entrada renglon para la primer matriz"))
print "La primer matriz que introdujiste fue:" "\n" ,matriza, "\n"
#Para obtener la segunda matriz
for i in range(0,orden):
for j in range(0,orden):
matrizb[i][j]=int(input("entrada renglon para la segunda matriz"))
print "La segunda matriz que introdujiste fue:" "\n" ,matrizb, "\n"
#Para la multiplicación de las dos matrices
for i in range(0,orden):
for j in range(0,orden):
for k in range(0,orden):
matrizc[i][j]+=matriza[i][k]*matrizb[k][j]
print "La matriz que resulta de multiplicar las matrices que introdujiste es:" "\n" ,matrizc
に入るために本当に悪い習慣です:あなたは、おそらく代わりに、以前の問題を抱えたとき、行全体を移入するために、その要素を使用してのマトリックスセルに
split
結果を割り当て悪意のあるユーザーは '__import __( 'os')。system(" whatever ")'のようなものを置くことができ、キーロガーをインストールするか、身代金やその他の厄介なことのためにファイルを保持することができます。 – user2357112私は@ user2357112に同意します:Python 2の 'input'がPython 3(古い' raw_input'から 'input'に名前が変更されました)から完全に削除された理由は、彼または彼女が実証したようなセキュリティ欠陥です。私は[Python 2の 'input'の記述(https://docs.python.org/2/library/functions.html#input)の警告はあまりにも微妙だと思います。単に「raw_input()関数を使用することを検討してください...」と言っています。他のPythonドキュメントで言及されているセキュリティ上の欠陥を取り巻く大きな赤いボックスはありません。 –