前提・実現したいこと
pythonです。
inputで貰った値をlist型かつint型で保存、同時に倍数をinputで貰います。
これを一番上の関数で実行。
二個目の関数はlist型で貰った値を一つずつ倍数でかける関数です。しかし、ここで問題発生。
エラーではなく、なぜかstring型として計算が実行されてしまいます。int型に変えたはずなのに、、なぜでしょうか?
発生している問題・エラーメッセージ
なし
該当のソースコード
def input_mul(): 知りたい3次元ベクトルの値を間に半角空白を入れて入力 x = input("알고 싶은 벡터의 값을 반각공백을 사이에 넣어서 입력해 주세요.").split() x = [int(a) for a in x] #倍数を入力 i = input("배수를 입력해주세요.") return x, i def scalar_mul(a, i): result = [] for b in range(len(a)): a[b] = int(a[b]) result.append(i * a[b]) return result x, i = input_mul() scalar_mul(x, i)
試したこと
typeを利用してどこでstringに変わっているのかを調べた結果、どうやらscalar_mulのfor文を回す直前まではintのようでした。なぜいきなりstringに変わってしまうんですか?
ちなみに、inputを3 3 3, 3で入力すると、普通は[9, 9, 9]なのですが、[333, 333, 333]と出力されます。
補足情報(FW/ツールのバージョンなど)
pythonをjupyter notebookを使って学んでいます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/11 05:53