【Scratch / Python】リストの中の数字の個数を求める

リストの中の数字の個数を求める

その他の練習問題一覧はこちら

問題

①ユーザー入力で整数Nを受け取ろう
②リスト1を作成し1番目~N番目にそれぞれ1~3のランダムな数を入れよう
③リスト2を作成しリスト2のi番目(i:1~3)にリスト1に含まれるiの個数を入れよう
例:N=5で、「リスト1:1,1,3,2,3」の場合
 リスト2の1番目は2、2番目は1、3番目は2となる。

解説

今回の問題は、ScratchとPythonの2つの言語で解いています。Scratchに慣れてきてPythonを始めてみたい人の参考になるかもしれません。

以下の動画で解説しております。ぜひ問題に挑戦した後にご覧ください。

【PythonとScratchで解く】リストの中身をカウント【プログラミング練習問題】

ポイント解説(Scratch)

③が少し難しい問題となっています。リスト2には、リスト1に含まれる1、2、3の個数がそれぞれ入ります。つまりリスト2の長さは3となります。
リスト2の1番目から3番目を0で初期化して、リスト1の中身を上から見ていったときに1が出てきたら、リスト2の1番目を、2が出てきたらリスト2の2番目を、3が出てきたらリスト2の3番目をプラス1してあげれば個数を数えられますね。

ポイント解説(Python)

Scratchのプログラムを参考にしながらPythonプログラムを書く場合、気を付けなければいけない点は、リストの~番目という概念が少し異なるところです。Scratchの場合、リストの1つ目の数を参照するときには「リストの1番目」というブロックを使います。しかし、Pythonの場合はリストの1つ目の数を参照するときに「リストの0番目」という考え方をします(list[0])。なので、ScratchとPythonでリストの中を見るときの数を同じにしてしまうと上手くいきません。

Sctatchでプログラムができたのであれば、プログラムを書く考え方はできているので、あとはPythonのルールを覚えるだけでPythonで問題が解けます。動画では、比較しながら解説していますので、ぜひご覧ください。

タイトルとURLをコピーしました