地層を剥がす

声を失った人間の発声練習です

【松尾研データサイエンティスト育成講座】第1章・練習問題と総合問題を解いてみた

現在、東大・松尾研が公開中のコンテンツ「データサイエンティスト育成講座」に取り組んでいます。独りで勉強し続けるのは寂しく、モチベーションも保ちにくいため、このブログで学習過程を公開していくことにしました。

 

現在までに勉強し終えているのは「第1章 データサイエンティスト講座概要とPythonの基礎」。練習問題と総合問題を解いてみました。

 

1.2.1 Jupyterの使い方とPythonの基礎

<練習問題 1>

ある文字列(Data Scienceなど)を変数として、それを1文字ずつ表示させるプログラムを書いてください。 

変数に文字列を格納→for文で回して1文字ずつ出力、という処理。こういうのを「イテレーション」と呼ぶのでしたっけ?

 

<練習問題 2>

1から50までの自然数の和を計算するプログラムを書いて、最後の計算結果を表示させるプログラムを書いてください。

 足し算の結果を保持するための変数を最初に宣言し、for文で1から50までを足し上げました。

 

1.3.1 素数判定

(1)10までの素数を表示させるプログラムを書いてください。なお、素数とは、1とそれ自身の数以外は約数をもたない正の整数のことをいいます。

 素数判定のプログラムを書くのが苦手で混乱し、自力で作成するのに失敗。大学院時代にプログラミングの授業で配られた資料を参考にしながら書きました。「最初に素数フラグを立て、素数でなかった場合にはフラグをはずす」という考え方が前提になっていますね。日常生活では、あまりこういう考え方はしないかも。でも、他のプログラムを書く時に応用できそうです。

 

(2)上記をさらに一般化して、Nを自然数として、Nまでの素数を表示する関数を書いてください。 

  前出の(1)を 関数にしました。(1)では素数と判定した数をそのつどprintで出力していましたが、(2)ではすべての結果をいったん変数に保持し、最後に戻り値として返しています。