diff --git a/docs/01python/01google-colaboratory/index.mdx b/docs/01python/01google-colaboratory/index.mdx
index b8e53132f..687c5faad 100644
--- a/docs/01python/01google-colaboratory/index.mdx
+++ b/docs/01python/01google-colaboratory/index.mdx
@@ -6,9 +6,11 @@ import helloWorldOnColab from "./hello-world-on-colab.mp4";
# 環境構築(Google Colaboratory)
-昔はプログラミングの開発環境を整えることはとても大変な作業でしたが、今は Google の開発した Google Colaboratory を使うとブラウザ上で簡単に Python を実行することができます。
+まずは、プログラミングをするための環境構築をしましょう。
-次の動画のようにすることでプログラムを簡単に実行できるので、一度やってみてください。
+環境構築と言っても、昔はプログラミングの開発環境を整えることはとても大変な作業でしたが、今は Google の開発した Google Colaboratory を使うとブラウザ上で簡単に Python を実行することができます。
+
+次の動画のようにすることでプログラムを簡単に実行できるので、やってみてください。
@@ -22,7 +24,7 @@ import helloWorldOnColab from "./hello-world-on-colab.mp4";

-4. 新しいファイルが開いたら、コードを書くことができます。セルの中に `print("Hello World!")` のように書いて、Windows や Linux では `Ctrl + Enter`、Mac では `Command + Enter` で任意の Python のコードを実行させることができます。
+4. 新しいファイルが開いたら、コードを書くことができます。セルの中に `print("Hello World!")` のように書いて(意味は分からなくて構いません。この後解説します。)、Windows や Linux では `Ctrl + Enter`、Mac では `Command + Enter` を押すことで任意の Python のコードを実行させることができます。

@@ -32,4 +34,6 @@ import helloWorldOnColab from "./hello-world-on-colab.mp4";
これらは、キーボード・ショートカットと呼ばれ、使いこなすことで高速にパソコンを操作できるようになります。
+例えば、コピーは `Ctrl / Command + C` で、ペーストは `Ctrl / Command + V` です。他にもたくさんあるので、少しずつ使いこなして、高速にパソコンを操作できるようになってみてください。
+
:::
diff --git a/docs/01python/02hello-world/index.mdx b/docs/01python/02getting-started/index.mdx
similarity index 81%
rename from docs/01python/02hello-world/index.mdx
rename to docs/01python/02getting-started/index.mdx
index d68c2c955..cd0ecac43 100644
--- a/docs/01python/02hello-world/index.mdx
+++ b/docs/01python/02getting-started/index.mdx
@@ -7,13 +7,15 @@ import Answer from "@site/src/components/Answer";
# はじめての Python
+はじめてのプログラムを書いてみましょう。
+
## Hello World
はじめてのプログラムを書いてみましょう。
プログラミングの世界では、まず画面上に `Hello World!` と表示させるのが慣例になっています。以下のコードが画面上に `Hello World!` と表示するプログラムです。以下のコードを Google Colaboratory 上で実行してみましょう。
-
+
`Hello World!` と表示されたら成功です。
@@ -27,7 +29,7 @@ import Answer from "@site/src/components/Answer";
`"` と `"` で括られた文字列を `Hello World!` から次のように `Hello from Python!` に変えれば、完成です。
-
+
## コメント
@@ -35,6 +37,6 @@ import Answer from "@site/src/components/Answer";
`#` から文末まではコメントとして扱われます。
プログラムを読みやすくするために説明を書くときや一時的にあるコードを実行しないようにするときなどによく使われます。
-
+
-
+
diff --git a/docs/01python/03expressions/index.mdx b/docs/01python/03expressions/index.mdx
index d1257cbc8..508db4360 100644
--- a/docs/01python/03expressions/index.mdx
+++ b/docs/01python/03expressions/index.mdx
@@ -7,19 +7,21 @@ import Answer from "@site/src/components/Answer";
# 算術演算子
+ここでは、Python で様々な計算を行っていきます。
+
## 算術演算子
-Python を使って計算をしてみましょう。次のように書くと、$1+1$ を Python に計算させて、その結果を表示することができます。
+Python を使って演算をしてみましょう。次のように書くと、$1+1$ を Python に計算させて、その結果を表示することができます。
:::tip
-Python では、多くの場合半角スペースは無視されます。(ただし、単語の途中などに入れてはいけません。)そのため、読みやすくするために半角スペースを入れていますがなくても同じように動きます。
+Python では、多くの場合半角スペースは無視されます。(ただし、単語の途中などに入れてはいけません。)そのため、読みやすくするために半角スペースを入れていますがなくても同じように動きます。
ただし、全角スペースが入っているとエラーが出てしまうのでプログラムを書くときには絶対に全角スペースを入れないように気をつけましょう。
:::
-:::info
+:::note
上のプログラムは、次のようにしても実行できます。それぞれには、少し違いがあるようですが気にしなくて大丈夫でしょう。
Google Colaboratory 以外で実行するときなど上のようなプログラムでうまく動かないときは、下のように書いてみてください。
@@ -27,7 +29,7 @@ Google Colaboratory 以外で実行するときなど上のようなプログラ
:::
-Python では足し算以外にも次のように様々な計算をすることができます。
+Python では足し算以外にも次のように様々な演算をすることができます。
| 演算子 | 説明 | 例 |
| ------ | ------ | -------------------------------------------------- |
@@ -39,10 +41,10 @@ Python では足し算以外にも次のように様々な計算をすること
| `//` | 商 | |
| `%` | 剰余 | |
-括弧`(`、`)` を用いることで、複雑な計算をすることもできます。
+括弧 `(`、`)` を用いることで、複雑な計算をすることもできます。
黄金比を計算してみましょう。黄金比は、$\frac{1+\sqrt{5}}{2}$ で与えられます。
-
+
:::tip
平方根は 0.5 乗とすることで計算できます。
@@ -57,5 +59,5 @@ F=\frac{9}{5}C+32
$$
-
+
diff --git a/docs/01python/04variable/index.mdx b/docs/01python/04variable/index.mdx
deleted file mode 100644
index 623622ff8..000000000
--- a/docs/01python/04variable/index.mdx
+++ /dev/null
@@ -1,78 +0,0 @@
----
-sidebar_position: 4
----
-
-import ViewSource from "@site/src/components/ViewSource";
-import Answer from "@site/src/components/Answer";
-
-# 変数
-
-## 変数
-
-前項のようにして、10℃ での音速を求めてみましょう。$V$ を音速、$t$ を摂氏温度とすると、音速は次のような式で求められるとします。
-
-$$
-V=331.5+0.6t
-$$
-
-
-
-一応できましたが、 $t$ を変えようとすると、(これぐらいならすぐできますが)いちいちプログラムを全て読み直さないといけません。
-
-しかし、Python では変数が使えます。変数は数値や文字列を入れられる箱のようなもので、任意の数値や文字列を格納することができます。そのため、変数を使うと、次のようにより簡単に記述できます。
-
-
-
-このようにすれば、例えば 10℃ ではなく 20℃ のときの音速を求めたくなったときに `t = 20` とするだけでよくなり、より簡単にプログラムを変更することができます。
-
-:::tip
-Python では、数学とは違い `=` は右の結果を左の変数に代入するという意味です。
-そのため、次のようなプログラムを実行すると 2 が出力されます。
-
-
-:::
-
-:::info 命名規則
-複数の語を一語につなげて表す場合、様々な命名規則があります。下に主なものの名称と例を示します。
-
-| 名称 | 例 |
-| -------------- | ------------ |
-| キャメルケース | `camelCase` |
-| パスカルケース | `PascalCase` |
-| スネークケース | `snake_case` |
-| ケバブケース | `kebab-case` |
-
-Python では、スネークケースを使うことが多いようです。
-(ただし、クラス(ここでは説明しません)の命名には、パスカルケースを使うようです。)
-そのため、複数の語を一語につなげる場合は、上記のように `_`(アンダーバー)を使って文節が分かるようにすると良いでしょう。
-:::
-
-:::info 定数(他の言語の学習者へ)
-Python では定数は使えないようです。慣習的に定数は大文字のみの変数として表すようです。例: `SAMPLE_CONST`
-:::
-
-### 練習問題 1
-
-[演算子の項](/docs/01python/03expressions/#問題)の摂氏温度から華氏温度を求める練習問題を変数を使って解いてみましょう。
-
-
-
-
-
-### 練習問題 2
-
-次のプログラムを実行すると、どのような数字が出力されるか考えてみてください。
-
-```python
-x = 2
-y = 3
-y = x + y
-y
-```
-
-
-
-3 行目では、`x + y` の値が評価されてその結果が `y` に代入されます。そのため、$2+3=5$ が `y` に代入され `5` が出力されます。
-
-
-
diff --git a/docs/01python/04variables/index.mdx b/docs/01python/04variables/index.mdx
new file mode 100644
index 000000000..9e2176161
--- /dev/null
+++ b/docs/01python/04variables/index.mdx
@@ -0,0 +1,104 @@
+---
+sidebar_position: 4
+---
+
+import ViewSource from "@site/src/components/ViewSource";
+import Answer from "@site/src/components/Answer";
+
+# 変数
+
+ここでは、変数の使い方を学びます。
+
+## 変数
+
+10℃ での音速を求めてみましょう。$V$ を音速、$t$ を摂氏温度とすると、音速はおおよそ次のような式で求められます。
+
+$$
+V=331.5+0.6t
+$$
+
+
+
+一応できましたが、 $t$ を変えようとすると、(これぐらいならすぐできますが)いちいちプログラムを全て読み直して、温度を書き換えなければなりません。これが、複雑な計算式だったら、どの値を変えればいいのかわからなくなってしまいそうです。
+
+ここで、変数が活躍します。変数は数値や文字列を入れられる箱のようなもので、任意の数値や文字列を格納することができます。例えば、次のように `hoge` と名前のついた箱に $2$ を入れておくことができます。
+
+
+
+:::note メタ構文変数
+
+メタ構文変数は、プログラムなどを説明する際、特に意味のない名前が必要になったときによく使われる言葉です。名前を書くときに、東大太郎や駒場花子といった名前を使うのと同じようなものです。
+
+日本では、`hoge`、`fuga`、`piyo` などがよく使われます。`hogehoge` なども使われます。
+
+英語では、`foo` や `bar` などがよく使われます。`foobar` なども使われます。
+
+これらの単語を見たら、ここのところは任意の文字で書き換えられるんだなと思っておくと良いでしょう。
+
+ちなみに、暗号の仕組みを説明するときなどには Alice と Bob がよく登場します(笑)
+
+:::
+
+そのため、変数を使うと、次のようにより変更しやすいようなプログラムを書くことができます。
+
+
+
+このようにすれば、例えば 10℃ ではなく 20℃ のときの音速を求めたくなったときに次のように `t = 20` とするだけでよくなり、より簡単にプログラムを変更することができます。
+
+
+
+:::tip
+Python では、数学とは違い `=` は右の結果を左の変数に代入するという意味です。
+そのため、次のようなプログラムを実行すると 2 が出力されます。
+
+
+:::
+
+:::note 命名規則
+Python では変数名にスペースを使えないため、語をつなげて変数名を作ることに成ります。これには、様々な命名規則があります。下に主なものの名称と例を示します。
+
+| 名称 | 例 |
+| -------------- | ------------ |
+| キャメルケース | `camelCase` |
+| パスカルケース | `PascalCase` |
+| スネークケース | `snake_case` |
+| ケバブケース | `kebab-case` |
+
+Python では、スネークケースを使うことが多いようです。
+(ただし、クラス(ここでは説明しません)の命名には、パスカルケースを使うようです。)
+そのため、複数の語を一語につなげる場合は、`snake_case` のように `_`(アンダーバー)を使って語の区切りが分かるようにすると良いでしょう。
+:::
+
+:::note 定数(主に他の言語の学習者へ)
+Python では定数は使えないようです。慣習的に定数は大文字のみの変数として表すようです。例: `SAMPLE_CONST`
+:::
+
+### 練習問題 1
+
+[算術演算子の項](/docs/01python/03expressions/#問題)で解いた問題を変数を使って解いてみましょう。20℃ での華氏温度を求めてみましょう。次のような式で表せます。
+
+$$
+F=\frac{9}{5}C+32
+$$
+
+
+
+
+
+### 練習問題 2
+
+次のプログラムを実行すると、どのような数字が出力されるか考えてみてください。
+
+```python
+x = 2
+y = 3
+y = x + y
+y
+```
+
+
+
+3 行目では、`x + y` の値が評価されてその結果が `y` に代入されます。そのため、$2+3=5$ が `y` に代入され `5` が出力されます。
+
+
+
diff --git a/docs/01python/04variables/variable.drawio.svg b/docs/01python/04variables/variable.drawio.svg
new file mode 100644
index 000000000..4888255c5
--- /dev/null
+++ b/docs/01python/04variables/variable.drawio.svg
@@ -0,0 +1,36 @@
+
\ No newline at end of file
diff --git a/docs/01python/05function/index.mdx b/docs/01python/05function/index.mdx
index 33feda432..2b0f019a4 100644
--- a/docs/01python/05function/index.mdx
+++ b/docs/01python/05function/index.mdx
@@ -3,21 +3,24 @@ sidebar_position: 5
---
import ViewSource from "@site/src/components/ViewSource";
+import Hint from "@site/src/components/Hint";
import Answer from "@site/src/components/Answer";
# 関数
+ここでは、関数の使い方を学んでいきます。
+
## 関数
$f(x) = x^2$ としたときの、$f(2) + f(3)$ を求めてみましょう。
-
+
-一応できましたが、このようにつくると関数値を求めるときに毎回 $f(x)$ の定義を見て書かなければなりません。今回のように、単純な関数では良いですがもっと複雑な関数では大変です。このようなときに、Python では関数を使用できます。
+一応できましたが、このようにつくると関数値を求めるときに毎回 $f(x)$ の定義を見て書かなければなりません。今回のように、単純な関数では良いですがもっと複雑な関数では大変です。ここで、関数が活躍します。
関数を用いると、次のように簡単にプログラムを書くことができます。
-
+
関数は、次のようにして定義することができます。引数は「ひきすう」と読みます。
@@ -48,21 +51,15 @@ Python では、きちんとインデント(字下げ)をしないとエラ
-:::info
-上のプログラムでも問題ないのですが、実際には次のプログラムのように `f-string` を使った表記の方が可読性が高くなって良さそうです。
+:::note
+上のプログラムでも問題ないのですが、実際には次のプログラムのように `f-string` を使った表記の方が可読性が高くなって実際の開発では好まれてたりします。しかし、あまり気にしなくて良いでしょう。ちなみに、`"` の前に `f` と書くことで、`"` 内の `{` で囲まれた変数の中身を表示できます。
-
+
:::
戻り値を使うと、次のようにも表現できます。
-
-
-:::info
-`f-string` を使うと、次のようになります。
-
-
-:::
+
### 練習問題 1
@@ -86,12 +83,22 @@ $G=6.7\times 10^{-11}$、$r=2$、$M=60$、$m=20$ とします。
`私の名前は、東大太郎です。中国語選択です。` のように自分の名前と第2外国語を紹介する関数を作ってみましょう。
+
+
+`name` と `language` を引数にとる `introduce_self` 関数を作ってみると、良いでしょう。
+
+
+
+
-:::info
+:::note
+
`f-string` を使うと次のようになります。
-
+
+
:::
+
diff --git a/docs/01python/06library/index.mdx b/docs/01python/06library/index.mdx
index c915988d2..92500db78 100644
--- a/docs/01python/06library/index.mdx
+++ b/docs/01python/06library/index.mdx
@@ -7,9 +7,11 @@ import Answer from "@site/src/components/Answer";
# ライブラリ
+ここでは、ライブラリの使い方を学びます。
+
## ライブラリ
-Python では、自分でいちいち関数を作らなくても、すでに用意されている豊富な関数群を使うことができます。(素晴らしい!)
+Python では、自分でいちいち関数を作らなくても、すでに用意されている豊富な関数群を使うことができます。(素晴らしい!)
例えば、数学に関する計算をするのに便利な `math` ライブラリがあります。`math` ライブラリを使うと、様々な計算を行うことができます。
@@ -29,7 +31,7 @@ import math
:::caution
-下に示した `math` ライブラリの関数をすべて覚えようとしなくて構いません。必要なときに、調べれば十分です。`math` ライブラリのドキュメントは[こちら](https://docs.python.org/ja/3/library/math.html)です。よく使う関数は自然に覚えます。
+下に示した `math` ライブラリの関数をすべて覚えようとしなくて構いません。必要なときに、調べれば十分です。`math` ライブラリのドキュメントは[こちら](https://docs.python.org/ja/3/library/math.html)にあります。よく使う関数は自然に覚えます。
:::
@@ -39,7 +41,7 @@ import math
| `math.ceil(x)` | `x` の切り上げを返す。 | |
| `math.floor(x)` | `x` の切り捨てを返す。 | |
| `math.fabs(x)` | `x` の絶対値を返す。 | |
-| `math.sqrt(x)` | $\sqrt{x}$ を返す。 | |
+| `math.sqrt(x)` | `x` の平方根を返す。 | |
| `math.log(x,base)` | `base` を底とする `x` の対数を返す。 | |
| `math.exp(x)` | $e^x$ を返す。 | |
| `math.sin(x)` | $\sin x$ を返す。`x` はラジアン | |
@@ -58,10 +60,10 @@ Python の公式ドキュメントは、を見る
### 練習問題 1
-`math` ライブラリを使用して、$\sin \frac{\pi}{2}$ の値を計算してみましょう。
+`math` ライブラリを使用して、$\sin (\pi/2)$ の値を計算してみましょう。
-
+
### 練習問題 2
@@ -75,11 +77,14 @@ Python の公式ドキュメントは、を見る
`math` ライブラリの[公式ドキュメント](https://docs.python.org/ja/3/library/math.html#constants)に使い方が載っています。
`math.e` とすれば、自然対数の底を取得することができます。
-
+
+
+:::note
-:::info
-$e^1 = e$ であることを利用して下のようにすれば調べなくてもできますが(笑)、上のようにした方が良いでしょう。
+$e^1 = e$ であることを利用して下のようにすれば調べなくてもできますが(笑)、上のようにした方が良いでしょう。
+
+
-
:::
+
diff --git a/docs/01python/07pip/index.mdx b/docs/01python/07pip/index.mdx
index 8dcb8f3f4..aaccfd981 100644
--- a/docs/01python/07pip/index.mdx
+++ b/docs/01python/07pip/index.mdx
@@ -7,6 +7,8 @@ import Answer from "@site/src/components/Answer";
# パッケージのインストール
+ここでは、パッケージをインストールする方法について説明していきます。
+
## pip
前項で、Python では様々なライブラリを使用することができると書きました。一部のプリインストールされているライブラリは先程のようにただファイルの先頭で `import ライブラリ名` のように書くだけでライブラリを使用することができますが、多くのライブラリはこれだけでは使用することができません。パッケージをインストールする必要があります。
@@ -15,7 +17,7 @@ Python では、パッケージのインストールを行うユーティリテ
## pip の使い方
-Google Colaboratory で pip を使ってパッケージをインストールするには、`!pip install ライブラリ名` のように書くだけです。その後は、前項のように `import ライブラリ名` と書くことで任意のライブラリを使用することができます。
+Google Colaboratory で pip を使ってパッケージをインストールするには、`!pip install ライブラリ名` のように書くだけです。その後は、前項のように `import ライブラリ名` と書くことで任意のライブラリを使用することができます。今回の内容で覚えることは、これだけです。
例として、Python の代表的なデータ解析を支援するパッケージである `pandas` パッケージを使ってみましょう。
@@ -29,16 +31,17 @@ Google Colaboratory で pip を使ってパッケージをインストールす
-:::info
-Google Colaboratory などの Jupyter Notebook を使った方法ではなく、直接 `.py` ファイルを使った方法の場合は、pip の使い方が異なります。
+:::note
+
+Google Colaboratory を使わない場合は少しやり方が異なります。`.py` ファイルを使う場合は、次のようにします。
-ターミナルなどで次のコマンドを実行すると、パッケージをインストールできます。
+ターミナルなどで次のコマンドを実行することで、パッケージをインストールできます。一度インストールすれば、その後はインストールし直す必要はありません。
```shell
pip install pandas
```
-その後、次のようなコードを実行すると、パッケージを使用することができます。
+その後、次のようにすることで、パッケージを使用することができます。
```python title=hello_pandas.py
import pandas as pd
diff --git a/docs/01python/11if/index.mdx b/docs/01python/08if/index.mdx
similarity index 81%
rename from docs/01python/11if/index.mdx
rename to docs/01python/08if/index.mdx
index a8789da8f..1a35d78e1 100644
--- a/docs/01python/11if/index.mdx
+++ b/docs/01python/08if/index.mdx
@@ -1,5 +1,5 @@
---
-sidebar_position: 11
+sidebar_position: 8
---
import ViewSource from "@site/src/components/ViewSource";
@@ -7,6 +7,8 @@ import Answer from "@site/src/components/Answer";
# 条件分岐
+ここでは、Python で条件分岐をする方法について学んでいきます。
+
## 論理値
Python では、文字列や数字以外にも論理値という真か偽かを表す値があります。真は `True`、偽は `False` と表せ、これは変数などにも代入できます。
@@ -23,7 +25,7 @@ Python では、次のように比較演算子を用いて真偽を判定する
-他にも様々な比較演算子があります。
+他にも様々な比較演算子があります。なぜか `!=` の存在を忘れる人が続出するので、要注意!
| 比較演算子 | 説明 | 例 |
| ---------- | ---------- | ----------------------------------------- |
@@ -36,7 +38,7 @@ Python では、次のように比較演算子を用いて真偽を判定する
他の多くのプログラミング言語はできませんが、実は、Python では数学のように複数の比較演算子を使った条件も書くことができます。
-
+
## 論理演算子
@@ -46,7 +48,7 @@ Python では、次のように比較演算子を用いて真偽を判定する
このプログラムは、`>=` 一つを使って書き換えた次と同じです。
-
+
他にも様々な論理演算子があります。
@@ -111,6 +113,34 @@ else:
### 練習問題 1
+学生の成績を判定するプログラムを作ってみましょう。学生の点数から、優上、優、良、可、不可を判定してください。
+
+| 成績 | 点数 |
+| ---- | --------- |
+| 優上 | 90 点以上 |
+| 優 | 80〜89 点 |
+| 良 | 65〜79 点 |
+| 可 | 50〜64 点 |
+| 不可 | 0〜49 点 |
+
+
+
+
+
+
+
+### 練習問題 2
+
+2 つの数のうち大きい方の数を返す関数を作りましょう。
+
+
+
+
+
+
+
+### 練習問題 3
+
絶対値を求めるプログラムを作ってみましょう。
@@ -120,19 +150,10 @@ else:
-実は、組み込み関数で abs 関数があります。また、[math ライブラリの fabs 関数](https://docs.python.org/ja/3/library/math.html#math.fabs)もあります。
+実は、組み込み関数で abs 関数があります。また、前に出てきた[math ライブラリの fabs 関数](https://docs.python.org/ja/3/library/math.html#math.fabs)もあります。
-
-### 練習問題 2
-
-数学の得点の配列が与えられた時、その配列中での最大値を求めるプログラムを作ってみましょう。
-与えられる配列を `[55, 32, 16, 51, 80, 19]` として実際に求めてみましょう。
-
-
-
-
diff --git a/docs/01python/08for/index.mdx b/docs/01python/09for/index.mdx
similarity index 81%
rename from docs/01python/08for/index.mdx
rename to docs/01python/09for/index.mdx
index a048bf853..624f22ade 100644
--- a/docs/01python/08for/index.mdx
+++ b/docs/01python/09for/index.mdx
@@ -1,5 +1,5 @@
---
-sidebar_position: 8
+sidebar_position: 9
---
import ViewSource from "@site/src/components/ViewSource";
@@ -27,13 +27,13 @@ import Answer from "@site/src/components/Answer";
一応作ることはできますが、時間がかかりますし、打ち間違いをする可能性も高くなってきます。もう少し良い方法を考えなければなりません。
-ここで for 文の出番です。for 文は、繰り返し処理を簡単に書くことができます。1 から 100 までの和を for 文を用いて求めるプログラムを見てみましょう。
+ここで for 文の出番です。for 文は、繰り返し処理を簡単に書くことができます。1 から 100 までの和を for 文を用いて求めるプログラムを見てみましょう。※この後、詳しく説明します。
-
+
-for 文を用いると、このように簡単に書くことができます。また、問題が少し変わっても、すぐにそれに合わせたプログラムを作ることができ拡張性があります。例えば、1 から 1000 の和はこのプログラムの `101` を `1001` にするだけで簡単に作ることができます。
+for 文を用いると、このように簡単に書くことができます。また、問題が少し変わっても、すぐにそれに合わせたプログラムを作ることができ拡張性があります。例えば、1 から 1000 の和はこのプログラムの `101` を `1001` にするだけで簡単に作ることができます。※この後、詳しく説明します。
-
+
:::tip
`sum += i` は、`sum = sum + i` と同じ意味です。累算代入演算子と呼ばれます。
@@ -57,32 +57,35 @@ for 変数名 in range(開始値, 終端値):
for 文についてよりよく理解するため 1 から 10 までを出力するプログラムを見てみましょう。
-
+
for 文の中の処理が繰り返し行われています。for 文に指定した変数(ここでは `i` )に、1 回目の処理では 1 が、2 回目の処理では 2 が、…、10 回目の処理では 10 が入っています。つまり、数学的に書けば、`i` には、開始値を $a$ 、終端値を $b$ とすると $[a,b)$ となるような整数が順番に入っていることになります。
for 文は同じ処理をただ繰り返したいときにも用いることができます。
-
+
:::tip
+
上記のプログラムは、次と同じです。
-
+
+
+1. Python では、変数の値が使われないときには、変数名にアンダーバー(`_`)を使用します。
-Python では、変数を使わないときは、アンダーバー(`_`)を使用します。
+2. 次のプログラムを見れば分かるように、 `range` 関数に引数を一つだけ渡すと、開始値は 0 とみなされます。
-次のプログラムを見れば分かるように、 `range` 関数に引数を一つだけ渡すと、`i` には $[0, a)$ ($a$ を引数とする)となるような整数が順番に渡されます。
+
-
:::
:::note while 文
+
Python では、while 文も使うことができます。
-while 文の構文は次のようになっています。条件が真のときに実行し続けます。
+while 文の構文は次のようになっています。条件式が真のときに実行し続けます。
```python
-while 条件:
+while 条件式:
任意の処理
```
@@ -115,5 +118,5 @@ $n$ の階乗を求める関数を作って、実際に 10 の階乗を求めて
これを使えば、次のようになります。
-
+
diff --git a/docs/01python/10array/array.drawio.svg b/docs/01python/10array/array.drawio.svg
new file mode 100644
index 000000000..51e45e4bc
--- /dev/null
+++ b/docs/01python/10array/array.drawio.svg
@@ -0,0 +1,208 @@
+
\ No newline at end of file
diff --git a/docs/01python/09array/index.mdx b/docs/01python/10array/index.mdx
similarity index 77%
rename from docs/01python/09array/index.mdx
rename to docs/01python/10array/index.mdx
index bfa0c713f..575d88797 100644
--- a/docs/01python/09array/index.mdx
+++ b/docs/01python/10array/index.mdx
@@ -1,5 +1,5 @@
---
-sidebar_position: 9
+sidebar_position: 10
---
import ViewSource from "@site/src/components/ViewSource";
@@ -17,7 +17,9 @@ import Answer from "@site/src/components/Answer";
ここで、配列を使います。配列は、複数のデータを順番に並べたもので、大量のデータを扱うことができます。数学におけるベクトルと同じようなものです。
-配列を用いると、先程のプログラムは、次のように書くことができます。
+
+
+配列を用いると、先程のプログラムは、次のように書くことができます。※詳しい説明は後でします。
@@ -30,13 +32,13 @@ import Answer from "@site/src/components/Answer";
配列は、次のような構文で作ることができます。
```python
-配列名 = [一つ目のデータ, 二つ目のデータ, 三つ目のデータ, … , nつ目のデータ]
+配列名 = [一つ目のデータ, 二つ目のデータ, 三つ目のデータ, ..., nつ目のデータ]
```
-配列から、i 番目のデータを取り出すときは次のようにして取り出すことができます。ここで、i-1 となっているのは、配列の添字は **0 から始まっている**からです。
+配列から、`i` 番目のデータを取り出すときは次のようにして取り出すことができます。ここで、`i - 1` となっているのは、配列の添字は **0 から始まっている**からです。
```python
-配列名[i-1]
+配列名[i - 1]
```
配列の長さは、次のようにして取得することができます。
@@ -45,11 +47,11 @@ import Answer from "@site/src/components/Answer";
len(配列名)
```
-次の問題を解いてみてください。
+次の例題を解いてみてください。
-### 問題
+### 例題
-先程の一人目の点数を 96 点から 37 点に書き換えてみましょう。
+一人目の点数を 96 点から 37 点に書き換えてみましょう。5 人の点数は、`scores = [96, 56, 42, 74, 86]` のように与えられます。
@@ -61,7 +63,7 @@ len(配列名)
配列の添字には、変数を使うこともできます。これを用いて、さきほどの問題をさらに一般化した問題を解いてみましょう。
-### 問題
+### 例題
`i` 人目の点数を `laterScore` に書き換えるプログラムを作って、実際に `i` に 1、`laterScore` に 37 を入力して、先程と同じようになるか試してみましょう。
@@ -72,7 +74,7 @@ len(配列名)
-:::info
+:::note
実は for 文を書くときに出てきた range は、配列のようなものを作る関数です。ここで、配列のようなものと言ったのは厳密には配列ではないからですが、ひとまず配列と考えて問題ないでしょう。そのため、例えば `range(1, 11)` は `[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]` を生成します。list 関数は range 関数の返り値を配列にしています。
@@ -91,7 +93,7 @@ len(配列名)
実際に、点数をそれぞれ 26 点、78 点、83 点、20 点、10 点、11 点、22 点、16 点、41 点、95 点として計算してみましょう。
-
+
実は、平均点を求めるライブラリもあります。[statistics ライブラリの mean 関数](https://docs.python.org/ja/3/library/statistics.html#statistics.mean)や[NumPy ライブラリの mean 関数](https://numpy.org/doc/stable/reference/generated/numpy.mean.html)があります。
@@ -104,10 +106,10 @@ len(配列名)
今度は、分散を求めるプログラムを書いてみましょう。
-$n$ 個の観測データを $x_1,x_2,\cdots,x_n$ 、平均を $\bar{x}$ とすると、分散 $s^2$ は次のように与えられるとします。
+$n$ 個の観測データを $x_1,x_2,\cdots,x_n$、平均を $\bar{x}$ とすると、分散 $s^2$ は次のように与えられるとします。
$$
-s^2=\frac{\sum\limits_{i=1}^n(x_i-\bar{x})^2}{n}
+s^2=\frac{\sum_{i=1}^n(x_i-\bar{x})^2}{n}
$$
練習問題 1 と同じように具体的な値を入れて確かめてみましょう。
@@ -115,7 +117,7 @@ $$
-次のようにしても計算できますが( `variance` 関数の中が少し変わっています。)、for 文の中が実行される度に `average` 関数が実行されて計算量が多くなってしまうので、上のようにした方が良いでしょう。
+次のようにしても計算できますが(`variance` 関数の中が少し変わっています。)、for 文の中が実行される度に `average` 関数が実行されて計算量が多くなってしまうので、上のようにした方が良いでしょう。
@@ -126,3 +128,11 @@ $$
+
+### 練習問題 3
+
+最高点を求めるプログラムを作ってみましょう。
+
+
+
+
diff --git a/docs/01python/11multi-array/array.drawio.svg b/docs/01python/11multi-array/array.drawio.svg
new file mode 100644
index 000000000..8bc49089f
--- /dev/null
+++ b/docs/01python/11multi-array/array.drawio.svg
@@ -0,0 +1,598 @@
+
\ No newline at end of file
diff --git a/docs/01python/10multi-array/index.mdx b/docs/01python/11multi-array/index.mdx
similarity index 66%
rename from docs/01python/10multi-array/index.mdx
rename to docs/01python/11multi-array/index.mdx
index 97c1af2af..0d697cbd7 100644
--- a/docs/01python/10multi-array/index.mdx
+++ b/docs/01python/11multi-array/index.mdx
@@ -1,5 +1,5 @@
---
-sidebar_position: 10
+sidebar_position: 11
---
import ViewSource from "@site/src/components/ViewSource";
@@ -21,20 +21,22 @@ A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語
前項の内容を使って、点数の合計を計算してみましょう。
-
+
一応できましたが、生徒の人数が増えてしまうと大変ですし、生徒の人数が変わるごとにプログラムを書き直さないといけません。
ここで、二次元配列を使います。二次元配列は名前の通り配列が二次元となったもので、配列の配列です。数学における行列と同じようなものです。
+
+
上のプログラムを二次元配列を使って記述すると、次のようになります。
-
+
二次元配列を作るときは、配列の要素を配列にすれば作ることができます。
```python
-配列名 = [第一行の配列, 第二行の配列, 第三行の配列, … , 第i行の配列]
+配列名 = [第一行の配列, 第二行の配列, 第三行の配列, ..., 第i行の配列]
```
$i$ 行、$j$ 列の数字を取り出すには、次のようにします。
@@ -43,9 +45,11 @@ $i$ 行、$j$ 列の数字を取り出すには、次のようにします。
配列名[i][j]
```
-### 練習問題 1
+### 練習問題
-A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語の点数が次のようになっているとします。
+全教科の点数の合計点の最高点を求める関数を求めてください。
+
+A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語の点数は次のようになっています。
| | 国語 | 数学 | 英語 |
| ----- | ---- | ---- | ---- |
@@ -53,10 +57,8 @@ A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語
| **B** | 73 | 53 | 84 |
| **C** | 63 | 48 | 64 |
-それぞれの生徒の合計点を出して、その平均値を求めてみましょう。
-
-
+
## 三次元配列
@@ -82,8 +84,33 @@ A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語
三次元配列を用いて、これの合計点を求めると次のようになります。
-
+
+
+### 練習問題
+
+全教科の点数の合計点の最高点を求める関数を求めてください。
+
+1 組に A と B が所属していて、2 組に C と D が所属しています。
+その時、それぞれの生徒の国語と数学と英語の点数が次のように与えられています。
+
+1 組
+
+| | 国語 | 数学 | 英語 |
+| ----- | ---- | ---- | ---- |
+| **A** | 51 | 56 | 10 |
+| **B** | 47 | 52 | 58 |
+
+2 組
+
+| | 国語 | 数学 | 英語 |
+| ----- | ---- | ---- | ---- |
+| **C** | 24 | 92 | 34 |
+| **D** | 28 | 44 | 19 |
+
+
+
+
## 多次元配列
-さらに発展させて、四次元配列、五次元配列、…を考えることもできます。
+さらに発展させて、四次元配列、五次元配列、...を考えることもできます。
diff --git a/docs/01python/12practice/index.mdx b/docs/01python/12practice/index.mdx
index 706d32961..130869e2d 100644
--- a/docs/01python/12practice/index.mdx
+++ b/docs/01python/12practice/index.mdx
@@ -7,7 +7,7 @@ import Answer from "@site/src/components/Answer";
# 練習問題
-これまでの項で、Python についての基本的なことは学び終わったので、実際に様々な練習問題を解いていきましょう。
+これまでの項で、Python の基本的なことは学び終わったので、実際に様々な練習問題を解いてみましょう。
## 練習問題 1
@@ -17,7 +17,27 @@ Fizz Buzz 問題を解くプログラムを作ってみましょう。
Fizz Buzz のルールは、次のようになっています。
> プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの発言した数字に 1 を足した数字を発言していく。ただし、3 の倍数の場合は「Fizz」(Bizz Buzz の場合は「Bizz」)、5 の倍数の場合は「Buzz」、3 の倍数かつ 5 の倍数の場合(すなわち 15 の倍数の場合)は「Fizz Buzz」(Bizz Buzz の場合は「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。
-> Wikipedia フリー百科事典 より
+> -- [フリー百科事典『ウィキペディア(Wikipedia)』](https://ja.wikipedia.org/wiki/Fizz_Buzz)
+
+要するに、次のように出力するプログラムを作れば良いです。
+
+```plaintext
+1
+2
+Fizz
+4
+Buzz
+Fizz
+7
+8
+Fizz
+Buzz
+11
+Fizz
+13
+14
+FizzBuzz
+```
$n$ 番目まで Fizz Buzz での正しい解を表示するプログラムを作ってみましょう。
@@ -55,6 +75,7 @@ $n$ 番目まで Fizz Buzz での正しい解を表示するプログラムを
最大公約数を求めるプログラムを作ってみましょう。最大公約数(greatest common divisor)は、GCD とよく略されます。
+
再帰を使うと次のようにもできます。再帰は後の項で説明します。
diff --git a/src/components/Hint/index.tsx b/src/components/Hint/index.tsx
new file mode 100644
index 000000000..d9efb5c45
--- /dev/null
+++ b/src/components/Hint/index.tsx
@@ -0,0 +1,9 @@
+import React, { type ReactNode } from "react";
+import Details from "@theme/Details";
+
+/**
+ * Hint component
+ */
+export default function Hint({ children }: { children: ReactNode }) {
+ return ヒント}>{children} ;
+}
diff --git a/static/array/average3.ipynb b/static/array/average3.ipynb
index fc7eb60f2..3bcdc804e 100644
--- a/static/array/average3.ipynb
+++ b/static/array/average3.ipynb
@@ -7,10 +7,10 @@
"outputs": [],
"source": [
"scores = [96, 56, 42, 74, 86]\n",
- "sum = 0\n",
+ "sum_val = 0\n",
"for i in range(len(scores)):\n",
- " sum += scores[i]\n",
- "print(sum / 5)"
+ " sum_val += scores[i]\n",
+ "print(sum_val / 5)"
]
}
],
diff --git a/static/array/average10.ipynb b/static/array/average4.ipynb
similarity index 77%
rename from static/array/average10.ipynb
rename to static/array/average4.ipynb
index 0c8d04263..00ca3720c 100644
--- a/static/array/average10.ipynb
+++ b/static/array/average4.ipynb
@@ -7,10 +7,10 @@
"outputs": [],
"source": [
"def average(scores):\n",
- " sum = 0\n",
+ " sum_val = 0\n",
" for i in range(len(scores)):\n",
- " sum += scores[i]\n",
- " return sum / len(scores)\n",
+ " sum_val += scores[i]\n",
+ " return sum_val / len(scores)\n",
"\n",
"\n",
"scores = [26, 78, 83, 20, 10, 11, 22, 16, 41, 95]\n",
diff --git a/static/array/max.ipynb b/static/array/max.ipynb
new file mode 100644
index 000000000..cbbcc4934
--- /dev/null
+++ b/static/array/max.ipynb
@@ -0,0 +1,25 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def calc_max(scores):\n",
+ " max_val = scores[0]\n",
+ " for i in range(1, len(scores)):\n",
+ " if max_val < scores[i]:\n",
+ " max_val = scores[i]\n",
+ " return max_val\n",
+ "\n",
+ "\n",
+ "scores = [26, 78, 83, 20, 10, 11, 22, 16, 41, 95]\n",
+ "print(calc_max(scores))"
+ ]
+ }
+ ],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/static/array/variance.ipynb b/static/array/variance.ipynb
index 8b494ef93..743226fde 100644
--- a/static/array/variance.ipynb
+++ b/static/array/variance.ipynb
@@ -7,18 +7,18 @@
"outputs": [],
"source": [
"def average(scores):\n",
- " sum = 0\n",
+ " sum_val = 0\n",
" for i in range(len(scores)):\n",
- " sum += scores[i]\n",
- " return sum / len(scores)\n",
+ " sum_val += scores[i]\n",
+ " return sum_val / len(scores)\n",
"\n",
"\n",
"def variance(scores):\n",
- " sum = 0\n",
+ " sum_val = 0\n",
" calculated_average = average(scores)\n",
" for i in range(len(scores)):\n",
- " sum += (scores[i] - calculated_average) ** 2\n",
- " return sum / len(scores)\n",
+ " sum_val += (scores[i] - calculated_average) ** 2\n",
+ " return sum_val / len(scores)\n",
"\n",
"\n",
"scores = [26, 78, 83, 20, 10, 11, 22, 16, 41, 95]\n",
diff --git a/static/expressions/golden-ratio.ipynb b/static/expressions/golden_ratio.ipynb
similarity index 100%
rename from static/expressions/golden-ratio.ipynb
rename to static/expressions/golden_ratio.ipynb
diff --git a/static/expressions/fahrenheit.ipynb b/static/expressions/to_fahrenheit.ipynb
similarity index 100%
rename from static/expressions/fahrenheit.ipynb
rename to static/expressions/to_fahrenheit.ipynb
diff --git a/static/for/factorial_lib.ipynb b/static/for/factorial_math.ipynb
similarity index 100%
rename from static/for/factorial_lib.ipynb
rename to static/for/factorial_math.ipynb
diff --git a/static/for/for_1to10.ipynb b/static/for/print_1to10.ipynb
similarity index 100%
rename from static/for/for_1to10.ipynb
rename to static/for/print_1to10.ipynb
diff --git a/static/for/for_hello.ipynb b/static/for/repeat_hello.ipynb
similarity index 100%
rename from static/for/for_hello.ipynb
rename to static/for/repeat_hello.ipynb
diff --git a/static/for/for_hello2.ipynb b/static/for/repeat_hello2.ipynb
similarity index 100%
rename from static/for/for_hello2.ipynb
rename to static/for/repeat_hello2.ipynb
diff --git a/static/for/for_sum_1to1000.ipynb b/static/for/sum_1to1000_revised.ipynb
similarity index 76%
rename from static/for/for_sum_1to1000.ipynb
rename to static/for/sum_1to1000_revised.ipynb
index a45a00f61..73753d3c0 100644
--- a/static/for/for_sum_1to1000.ipynb
+++ b/static/for/sum_1to1000_revised.ipynb
@@ -6,10 +6,10 @@
"metadata": {},
"outputs": [],
"source": [
- "sum = 0\n",
+ "sum_val = 0\n",
"for i in range(1, 1001):\n",
- " sum += i\n",
- "print(sum)"
+ " sum_val += i\n",
+ "print(sum_val)"
]
}
],
diff --git a/static/for/for_sum_1to100.ipynb b/static/for/sum_1to100_revised.ipynb
similarity index 76%
rename from static/for/for_sum_1to100.ipynb
rename to static/for/sum_1to100_revised.ipynb
index ca93d6662..93e0439aa 100644
--- a/static/for/for_sum_1to100.ipynb
+++ b/static/for/sum_1to100_revised.ipynb
@@ -6,10 +6,10 @@
"metadata": {},
"outputs": [],
"source": [
- "sum = 0\n",
+ "sum_val = 0\n",
"for i in range(1, 101):\n",
- " sum += i\n",
- "print(sum)"
+ " sum_val += i\n",
+ "print(sum_val)"
]
}
],
diff --git a/static/for/upto.ipynb b/static/for/up_to.ipynb
similarity index 65%
rename from static/for/upto.ipynb
rename to static/for/up_to.ipynb
index f9354f7b8..b2e2b03e8 100644
--- a/static/for/upto.ipynb
+++ b/static/for/up_to.ipynb
@@ -6,14 +6,14 @@
"metadata": {},
"outputs": [],
"source": [
- "def upto(n):\n",
- " sum = 0\n",
+ "def up_to(n):\n",
+ " sum_val = 0\n",
" for i in range(1, n + 1):\n",
- " sum += i\n",
- " return sum\n",
+ " sum_val += i\n",
+ " return sum_val\n",
"\n",
"\n",
- "print(upto(10))"
+ "print(up_to(10))"
]
}
],
diff --git a/static/for/upto_sum.ipynb b/static/for/up_to_sum.ipynb
similarity index 100%
rename from static/for/upto_sum.ipynb
rename to static/for/up_to_sum.ipynb
diff --git a/static/for/while.ipynb b/static/for/while.ipynb
index 5353211b8..22229e467 100644
--- a/static/for/while.ipynb
+++ b/static/for/while.ipynb
@@ -6,12 +6,12 @@
"metadata": {},
"outputs": [],
"source": [
- "sum = 0\n",
+ "sum_val = 0\n",
"i = 1\n",
"while i <= 10:\n",
- " sum += i\n",
+ " sum_val += i\n",
" i += 1\n",
- "print(sum)"
+ "print(sum_val)"
]
}
],
diff --git a/static/function/x2.ipynb b/static/function/calc_x^2.ipynb
similarity index 100%
rename from static/function/x2.ipynb
rename to static/function/calc_x^2.ipynb
diff --git a/static/function/x2_function.ipynb b/static/function/calc_x^2_revised.ipynb
similarity index 100%
rename from static/function/x2_function.ipynb
rename to static/function/calc_x^2_revised.ipynb
diff --git a/static/function/introduce_language2.ipynb b/static/function/introduce_language_fstring.ipynb
similarity index 100%
rename from static/function/introduce_language2.ipynb
rename to static/function/introduce_language_fstring.ipynb
diff --git a/static/function/introduce_self2.ipynb b/static/function/introduce_self_fstring.ipynb
similarity index 100%
rename from static/function/introduce_self2.ipynb
rename to static/function/introduce_self_fstring.ipynb
diff --git a/static/function/introduce_self3.ipynb b/static/function/introduce_self_return_value.ipynb
similarity index 100%
rename from static/function/introduce_self3.ipynb
rename to static/function/introduce_self_return_value.ipynb
diff --git a/static/hello-world/comment.ipynb b/static/getting-started/comment.ipynb
similarity index 100%
rename from static/hello-world/comment.ipynb
rename to static/getting-started/comment.ipynb
diff --git a/static/hello-world/comment2.ipynb b/static/getting-started/comment2.ipynb
similarity index 100%
rename from static/hello-world/comment2.ipynb
rename to static/getting-started/comment2.ipynb
diff --git a/static/hello-world/hello-from-python.ipynb b/static/getting-started/hello_from_python.ipynb
similarity index 100%
rename from static/hello-world/hello-from-python.ipynb
rename to static/getting-started/hello_from_python.ipynb
diff --git a/static/hello-world/hello-world.ipynb b/static/getting-started/hello_world.ipynb
similarity index 100%
rename from static/hello-world/hello-world.ipynb
rename to static/getting-started/hello_world.ipynb
diff --git a/static/if/grade.ipynb b/static/if/grade.ipynb
new file mode 100644
index 000000000..c3eacebd5
--- /dev/null
+++ b/static/if/grade.ipynb
@@ -0,0 +1,29 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def evaluate_grade(point):\n",
+ " if point >= 90:\n",
+ " print(\"優上です。非常に素晴らしい成績です!\")\n",
+ " elif point >= 80:\n",
+ " print(\"優です。素晴らしい成績です!\")\n",
+ " elif point >= 65:\n",
+ " print(\"良です。よく理解できています!\")\n",
+ " elif point >= 50:\n",
+ " print(\"可です。よく勉強しています。\")\n",
+ " else:\n",
+ " print(\"不可です。もう少し頑張りましょう。\")\n",
+ "\n",
+ "\n",
+ "evaluate_grade(79)"
+ ]
+ }
+ ],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/static/function/introduce_self4.ipynb b/static/if/greater_val.ipynb
similarity index 57%
rename from static/function/introduce_self4.ipynb
rename to static/if/greater_val.ipynb
index 398a81d32..648986054 100644
--- a/static/function/introduce_self4.ipynb
+++ b/static/if/greater_val.ipynb
@@ -6,11 +6,14 @@
"metadata": {},
"outputs": [],
"source": [
- "def introduce_self(name):\n",
- " return f\"私の名前は、{name}です。\"\n",
+ "def greater_val(a, b):\n",
+ " if a > b:\n",
+ " return a\n",
+ " else:\n",
+ " return b\n",
"\n",
"\n",
- "print(introduce_self(\"小林\"))"
+ "print(greater_val(7, 5))"
]
}
],
diff --git a/static/if/logical_operator2.ipynb b/static/if/logical_operator_another.ipynb
similarity index 100%
rename from static/if/logical_operator2.ipynb
rename to static/if/logical_operator_another.ipynb
diff --git a/static/if/max.ipynb b/static/if/max.ipynb
deleted file mode 100644
index 74ffcc230..000000000
--- a/static/if/max.ipynb
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "def max_val(scores):\n",
- " m = scores[0]\n",
- " for i in range(1, len(scores)):\n",
- " if m < scores[i]:\n",
- " m = scores[i]\n",
- " return m\n",
- "\n",
- "\n",
- "SCORES = [55, 32, 16, 51, 80, 19]\n",
- "print(max_val(SCORES))"
- ]
- }
- ],
- "metadata": {},
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/static/if/comparison_operator2.ipynb b/static/if/multi_comparison_operator.ipynb
similarity index 100%
rename from static/if/comparison_operator2.ipynb
rename to static/if/multi_comparison_operator.ipynb
diff --git a/static/library/e.ipynb b/static/library/calc_e.ipynb
similarity index 100%
rename from static/library/e.ipynb
rename to static/library/calc_e.ipynb
diff --git a/static/library/e2.ipynb b/static/library/calc_e_2.ipynb
similarity index 100%
rename from static/library/e2.ipynb
rename to static/library/calc_e_2.ipynb
diff --git a/static/library/sin_pi.ipynb b/static/library/sin_90.ipynb
similarity index 100%
rename from static/library/sin_pi.ipynb
rename to static/library/sin_90.ipynb
diff --git a/static/multi-array/2_dim_array_sample.ipynb b/static/multi-array/2_dim_array_sample.ipynb
deleted file mode 100644
index 06f812e15..000000000
--- a/static/multi-array/2_dim_array_sample.ipynb
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "def sum_val(scores):\n",
- " s = 0\n",
- " for i in range(len(scores)):\n",
- " s += scores[i]\n",
- " return s\n",
- "\n",
- "\n",
- "A_SCORES = [83, 75, 32]\n",
- "B_SCORES = [73, 53, 84]\n",
- "C_SCORES = [63, 48, 64]\n",
- "\n",
- "print(sum_val(A_SCORES) + sum_val(B_SCORES) + sum_val(C_SCORES))"
- ]
- }
- ],
- "metadata": {},
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/static/multi-array/average_of_sum.ipynb b/static/multi-array/average_of_sum.ipynb
deleted file mode 100644
index 49e399c95..000000000
--- a/static/multi-array/average_of_sum.ipynb
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": [
- "def sum_1d(scores):\n",
- " s = 0\n",
- " for i in range(len(scores)):\n",
- " s += scores[i]\n",
- " return s\n",
- "\n",
- "\n",
- "def sum_2d_average(scores):\n",
- " s = 0\n",
- " for i in range(len(scores)):\n",
- " s += sum_1d(scores[i])\n",
- " return s / len(scores)\n",
- "\n",
- "\n",
- "SCORES = [[83, 75, 32], [73, 53, 84], [63, 48, 64]]\n",
- "\n",
- "print(sum_2d_average(SCORES))"
- ]
- }
- ],
- "metadata": {},
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/static/multi-array/calc_sum.ipynb b/static/multi-array/calc_sum.ipynb
new file mode 100644
index 000000000..17e6c4155
--- /dev/null
+++ b/static/multi-array/calc_sum.ipynb
@@ -0,0 +1,27 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def calc_sum1d(scores):\n",
+ " sum_val = 0\n",
+ " for i in range(len(scores)):\n",
+ " sum_val += scores[i]\n",
+ " return sum_val\n",
+ "\n",
+ "\n",
+ "a_scores = [83, 75, 32]\n",
+ "b_scores = [73, 53, 84]\n",
+ "c_scores = [63, 48, 64]\n",
+ "\n",
+ "print(calc_sum1d(a_scores) + calc_sum1d(b_scores) + calc_sum1d(c_scores))"
+ ]
+ }
+ ],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/static/multi-array/3_dim_array_sample.ipynb b/static/multi-array/calc_sum3d.ipynb
similarity index 62%
rename from static/multi-array/3_dim_array_sample.ipynb
rename to static/multi-array/calc_sum3d.ipynb
index 678fea053..04dc38cd7 100644
--- a/static/multi-array/3_dim_array_sample.ipynb
+++ b/static/multi-array/calc_sum3d.ipynb
@@ -6,18 +6,18 @@
"metadata": {},
"outputs": [],
"source": [
- "def sum_3d(scores):\n",
- " s = 0\n",
+ "def calc_sum3d(scores):\n",
+ " sum_val = 0\n",
" for i in range(len(scores)):\n",
" for j in range(len(scores[i])):\n",
" for k in range(len(scores[i][j])):\n",
- " s += scores[i][j][k]\n",
- " return s\n",
+ " sum_val += scores[i][j][k]\n",
+ " return sum_val\n",
"\n",
"\n",
- "SCORES = [[[51, 56, 10], [47, 52, 58]], [[24, 92, 34], [28, 44, 19]]]\n",
+ "scores = [[[51, 56, 10], [47, 52, 58]], [[24, 92, 34], [28, 44, 19]]]\n",
"\n",
- "print(sum_3d(SCORES))"
+ "print(calc_sum3d(scores))"
]
}
],
diff --git a/static/multi-array/2_dim_array_revised.ipynb b/static/multi-array/calc_sum_revised.ipynb
similarity index 58%
rename from static/multi-array/2_dim_array_revised.ipynb
rename to static/multi-array/calc_sum_revised.ipynb
index 01c8dfc08..5e904e94a 100644
--- a/static/multi-array/2_dim_array_revised.ipynb
+++ b/static/multi-array/calc_sum_revised.ipynb
@@ -6,17 +6,17 @@
"metadata": {},
"outputs": [],
"source": [
- "def sum_2d(scores):\n",
- " s = 0\n",
+ "def calc_sum2d(scores):\n",
+ " sum_val = 0\n",
" for i in range(len(scores)):\n",
" for j in range(len(scores[i])):\n",
- " s += scores[i][j]\n",
- " return s\n",
+ " sum_val += scores[i][j]\n",
+ " return sum_val\n",
"\n",
"\n",
- "SCORES = [[83, 75, 32], [73, 53, 84], [63, 48, 64]]\n",
+ "scores = [[83, 75, 32], [73, 53, 84], [63, 48, 64]]\n",
"\n",
- "print(sum_2d(SCORES))"
+ "print(calc_sum2d(scores))"
]
}
],
diff --git a/static/multi-array/total_score_max.ipynb b/static/multi-array/total_score_max.ipynb
new file mode 100644
index 000000000..def73d58b
--- /dev/null
+++ b/static/multi-array/total_score_max.ipynb
@@ -0,0 +1,34 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def calc_sum1d(scores):\n",
+ " sum_val = 0\n",
+ " for i in range(len(scores)):\n",
+ " sum_val += scores[i]\n",
+ " return sum_val\n",
+ "\n",
+ "\n",
+ "def calc_total_score_max(scores):\n",
+ " max_score = 0\n",
+ " for i in range(len(scores)):\n",
+ " total_score = calc_sum1d(scores[i])\n",
+ " if max_score < total_score:\n",
+ " max_score = total_score\n",
+ " return max_score\n",
+ "\n",
+ "\n",
+ "scores = [[83, 75, 32], [73, 53, 84], [63, 48, 64]]\n",
+ "\n",
+ "print(calc_total_score_max(scores))"
+ ]
+ }
+ ],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/static/multi-array/total_score_max_2d.ipynb b/static/multi-array/total_score_max_2d.ipynb
new file mode 100644
index 000000000..3c662f92c
--- /dev/null
+++ b/static/multi-array/total_score_max_2d.ipynb
@@ -0,0 +1,35 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def calc_sum1d(scores):\n",
+ " sum_val = 0\n",
+ " for i in range(len(scores)):\n",
+ " sum_val += scores[i]\n",
+ " return sum_val\n",
+ "\n",
+ "\n",
+ "def calc_total_score_max_2d(scores):\n",
+ " max_score = 0\n",
+ " for i in range(len(scores)):\n",
+ " for j in range(len(scores[i])):\n",
+ " total_score = calc_sum1d(scores[i][j])\n",
+ " if max_score < total_score:\n",
+ " max_score = total_score\n",
+ " return max_score\n",
+ "\n",
+ "\n",
+ "scores = [[[51, 56, 10], [47, 52, 58]], [[24, 92, 34], [28, 44, 19]]]\n",
+ "\n",
+ "print(calc_total_score_max_2d(scores))"
+ ]
+ }
+ ],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/static/variables/sound-velocity_revised_20degree.ipynb b/static/variables/sound-velocity_revised_20degree.ipynb
new file mode 100644
index 000000000..87ab01cf1
--- /dev/null
+++ b/static/variables/sound-velocity_revised_20degree.ipynb
@@ -0,0 +1,17 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "t = 20\n",
+ "331.5 + 0.6 * t"
+ ]
+ }
+ ],
+ "metadata": {},
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/static/variable/sound-velocity.ipynb b/static/variables/sound_velocity.ipynb
similarity index 100%
rename from static/variable/sound-velocity.ipynb
rename to static/variables/sound_velocity.ipynb
diff --git a/static/variable/sound-velocity2.ipynb b/static/variables/sound_velocity_revised.ipynb
similarity index 100%
rename from static/variable/sound-velocity2.ipynb
rename to static/variables/sound_velocity_revised.ipynb
diff --git a/static/variable/substitution.ipynb b/static/variables/substitution.ipynb
similarity index 100%
rename from static/variable/substitution.ipynb
rename to static/variables/substitution.ipynb
diff --git a/static/variable/substitution2.ipynb b/static/variables/substitution_practice.ipynb
similarity index 100%
rename from static/variable/substitution2.ipynb
rename to static/variables/substitution_practice.ipynb
diff --git a/static/variable/fahrenheit.ipynb b/static/variables/to_fahrenheit.ipynb
similarity index 100%
rename from static/variable/fahrenheit.ipynb
rename to static/variables/to_fahrenheit.ipynb