for文を使いリストの要素すべての積を求め答えは変数answerとし最後にprint()するにはどのようにすれば可能でしょうか?
(例)
python3
1list = [1,3,5,7,9] 2 3answer = 1 4 5
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
こんにちは
まず、本題とは関係ありませんが、ご質問のコードにある list
という変数名は、組み込み型のlistと被るので、避けたほうがよいかと思います。ですので下記では lis
という変数名にしています。
ご質問のコードは、他の回答者の方々もお答えされているように、ひとまず以下でよいかと思います。
python
1lis = [1, 3, 5, 7, 9] 2 3answer = 1 4 5for x in lis: 6 answer *= x 7 8print(answer)
ただ、上記だと、初期値が 1 である answer に lis
の最初から最後の要素までを掛けていくので
- 1 × 1 × 3 × 5 × 7 × 9
という掛け算を計算していることになります。これを、lis
の要素だけの掛け算
- 1 × 3 × 5 × 7 × 9
をしているコードにするには、answer = 1
の行を修正して、例えば以下のようにします。
python
1lis = [1, 3, 5, 7, 9] 2 3answer, *lis = lis # このように修正 4 5for x in lis: 6 answer *= x 7 8print(answer)
- 動作確認用 Repl.it: https://repl.it/@jun68ykt/Q233320
上記のコードにある
python
1answer, *lis = lis
によって answer
にもともとのリストの先頭要素である 1
が入り、 2番目の要素以降のリスト [3, 5, 7, 9]
がlis
に再代入されます。これによって、次からの for
ループでは、もともとのリストの2番目以降の要素が、(もともとのリストの先頭要素の入っている) answer
に、順次掛け合わされていきます。
以上、参考になれば幸いです。
投稿2020/01/05 08:14
総合スコア9058
0
3 つの方法でかいてみました。(3 つ目はおまけ的)
m.py
python3
1 2answer = 1 3for e in nums: 4 answer *= e 5 6print(answer) 7 8answer = 1 9for i in range(len(nums)): 10 answer *= nums[i] 11 12print(answer) 13 14answer = [nums[0:-1], nums[-1]] 15for i in range(len(answer[0])): 16 print(answer) 17 answer = [answer[0][0:-1], answer[1] * answer[0][-1]] 18 19print(answer[1])
投稿2020/01/05 07:22
総合スコア22324
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
単純に答えを出すだけでしたら…
Python
1# forを使う場合 2list = [1,3,5,7,9] 3 4answer = 1 5 6for i in list: 7 answer *= i 8 9print(answer) 10 11 12# forを使わない場合 13import functools 14import operator 15 16list = [1,3,5,7,9] 17 18answer = functools.reduce(operator.mul, list) 19 20print(answer)
投稿2020/01/05 06:03
編集2020/01/05 06:25総合スコア303
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/05 06:19
2020/01/05 06:26
2020/01/05 12:06
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/05 12:45
2020/01/05 13:06