From a0b11f9792f52c7f4681643837961aff4efde59e Mon Sep 17 00:00:00 2001 From: chvmvd Date: Sun, 6 Nov 2022 18:50:16 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A4=9A=E6=AC=A1=E5=85=83=E9=85=8D?= =?UTF-8?q?=E5=88=97=E3=81=AE=E9=A0=85=E3=82=92=E5=9F=B7=E7=AD=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/python/08array/index.mdx | 2 +- .../_samples/2_dim_array_revised.ipynb | 37 ++++++++ .../_samples/2_dim_array_sample.ipynb | 35 ++++++++ .../_samples/3_dim_array_sample.ipynb | 35 ++++++++ .../_samples/average_of_sum.ipynb | 43 +++++++++ docs/python/09multi-array/index.mdx | 89 +++++++++++++++++++ 6 files changed, 240 insertions(+), 1 deletion(-) create mode 100644 docs/python/09multi-array/_samples/2_dim_array_revised.ipynb create mode 100644 docs/python/09multi-array/_samples/2_dim_array_sample.ipynb create mode 100644 docs/python/09multi-array/_samples/3_dim_array_sample.ipynb create mode 100644 docs/python/09multi-array/_samples/average_of_sum.ipynb create mode 100644 docs/python/09multi-array/index.mdx diff --git a/docs/python/08array/index.mdx b/docs/python/08array/index.mdx index 45f905f77..3cd4bbb53 100644 --- a/docs/python/08array/index.mdx +++ b/docs/python/08array/index.mdx @@ -15,7 +15,7 @@ import Answer from "@site/src/components/Answer"; 一応、作ることができましたが、生徒の数が増えてしまうと大変です。前項の for 文を使うと簡単にできそうですが変数を for 文ではうまく扱えないので、繰り返し処理を用いて書くことができません。 -ここで、配列を使います。配列は、複数のデータを順番に並べたもので、大量のデータを扱うことができます。 +ここで、配列を使います。配列は、複数のデータを順番に並べたもので、大量のデータを扱うことができます。数学におけるベクトルと同じようなものです。 配列を用いると、先程のプログラムは、次のように書くことができます。 diff --git a/docs/python/09multi-array/_samples/2_dim_array_revised.ipynb b/docs/python/09multi-array/_samples/2_dim_array_revised.ipynb new file mode 100644 index 000000000..ae9022e00 --- /dev/null +++ b/docs/python/09multi-array/_samples/2_dim_array_revised.ipynb @@ -0,0 +1,37 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def sum(scores):\n", + " s = 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", + "\n", + "\n", + "SCORES = [[83, 75, 32], [73, 53, 84], [63, 48, 64]]\n", + "\n", + "sum(SCORES)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "575" + ] + }, + "metadata": {}, + "execution_count": 1 + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/09multi-array/_samples/2_dim_array_sample.ipynb b/docs/python/09multi-array/_samples/2_dim_array_sample.ipynb new file mode 100644 index 000000000..27bfd04e0 --- /dev/null +++ b/docs/python/09multi-array/_samples/2_dim_array_sample.ipynb @@ -0,0 +1,35 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def sum(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(A_SCORES) + sum(B_SCORES) + sum(C_SCORES))" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "575\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/09multi-array/_samples/3_dim_array_sample.ipynb b/docs/python/09multi-array/_samples/3_dim_array_sample.ipynb new file mode 100644 index 000000000..9496868c0 --- /dev/null +++ b/docs/python/09multi-array/_samples/3_dim_array_sample.ipynb @@ -0,0 +1,35 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def sum(scores):\n", + " s = 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", + "\n", + "\n", + "SCORES = [[[51, 56, 10], [47, 52, 58]], [[24, 92, 34], [28, 44, 19]]]\n", + "\n", + "print(sum(SCORES))" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "515\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/09multi-array/_samples/average_of_sum.ipynb b/docs/python/09multi-array/_samples/average_of_sum.ipynb new file mode 100644 index 000000000..efce25d0c --- /dev/null +++ b/docs/python/09multi-array/_samples/average_of_sum.ipynb @@ -0,0 +1,43 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def sum(scores):\n", + " s = 0\n", + " for i in range(len(scores)):\n", + " s += scores[i]\n", + " return s\n", + "\n", + "\n", + "def average_sum(scores):\n", + " s = 0\n", + " for i in range(len(scores)):\n", + " s += sum(scores[i])\n", + " return s / len(scores)\n", + "\n", + "\n", + "SCORES = [[83, 75, 32], [73, 53, 84], [63, 48, 64]]\n", + "\n", + "average_sum(SCORES)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "191.66666666666666" + ] + }, + "metadata": {}, + "execution_count": 2 + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/09multi-array/index.mdx b/docs/python/09multi-array/index.mdx new file mode 100644 index 000000000..b3424100f --- /dev/null +++ b/docs/python/09multi-array/index.mdx @@ -0,0 +1,89 @@ +--- +sidebar_position: 9 +--- + +import ViewSource from "@site/src/components/ViewSource/ViewSource"; +import Answer from "@site/src/components/Answer"; + +# 多次元配列 + +## 二次元配列 + +前項では生徒の**数学**の点数のみについて考えましたが、生徒の**全教科**の点数について考えたら、どうなるでしょう。 + +A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語の点数が次のようになっているとします。 + +| | 国語 | 数学 | 英語 | +| ----- | ---- | ---- | ---- | +| **A** | 83 | 75 | 32 | +| **B** | 73 | 53 | 84 | +| **C** | 63 | 48 | 64 | + +前項の内容を使って、点数の合計を計算してみましょう。 + + + +一応できましたが、生徒の人数が増えてしまうと大変ですし、生徒の人数が変わるごとにプログラムを書き直さないといけません。 + +ここで、二次元配列を使います。二次元配列は名前の通り配列が二次元となったもので、配列の配列です。数学における行列と同じようなものです。 + +上のプログラムを二次元配列を使って記述すると、次のようになります。 + + + +二次元配列を作るときは、配列の要素を配列にすれば作ることができます。 + +```python +配列名 = [第一行の配列, 第二行の配列, 第三行の配列, … , 第i行の配列] +``` + +$i$ 行、$j$ 列の数字を取り出すには、次のようにします。 + +```python +配列名[i][j] +``` + +## 三次元配列 + +二次元配列をさらに発展させて、三次元配列を考えることもできます。 + +例えば、1 組に A と B が所属していて、2 組に C と D が所属しているとします。 +その時、それぞれの生徒の国語と数学、英語の点数が次のように与えられたとします。 + +1 組 + +| | 国語 | 数学 | 英語 | +| ----- | ---- | ---- | ---- | +| **A** | 51 | 56 | 10 | +| **B** | 47 | 52 | 58 | + +2 組 + +| | 国語 | 数学 | 英語 | +| ----- | ---- | ---- | ---- | +| **C** | 24 | 92 | 34 | +| **D** | 28 | 44 | 19 | + +三次元配列を用いて、これの合計点を求めてみましょう。 + + + +## 多次元配列 + +さらに発展させて、多次元配列を考えることもできます。 + +### 練習問題 1 + +A、B、C の 3 人の生徒がいて、それぞれの国語、数学、英語の点数が次のようになっているとします。 + +| | 国語 | 数学 | 英語 | +| ----- | ---- | ---- | ---- | +| **A** | 83 | 75 | 32 | +| **B** | 73 | 53 | 84 | +| **C** | 63 | 48 | 64 | + +それぞれの生徒の合計点を出して、その平均値を求めてみましょう。 + + + + From c30d8e306c0b3d8a4c72677d90cf947025fb74fa Mon Sep 17 00:00:00 2001 From: chvmvd Date: Sun, 6 Nov 2022 21:15:54 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=E6=9D=A1=E4=BB=B6=E5=88=86=E5=B2=90?= =?UTF-8?q?=E3=81=AE=E9=A0=85=E3=82=92=E5=9F=B7=E7=AD=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/python/10if/_samples/abs.ipynb | 31 ++++ docs/python/10if/_samples/abs2.ipynb | 30 ++++ docs/python/10if/_samples/abs_default.ipynb | 24 +++ docs/python/10if/_samples/abs_math.ipynb | 26 +++ docs/python/10if/_samples/alcohol.ipynb | 30 ++++ docs/python/10if/_samples/and.ipynb | 26 +++ docs/python/10if/_samples/below.ipynb | 26 +++ .../10if/_samples/comparison_operator.ipynb | 26 +++ docs/python/10if/_samples/eq.ipynb | 26 +++ docs/python/10if/_samples/false.ipynb | 25 +++ docs/python/10if/_samples/fizzbuzz.ipynb | 65 ++++++++ docs/python/10if/_samples/fizzbuzz2.ipynb | 65 ++++++++ docs/python/10if/_samples/greater.ipynb | 26 +++ docs/python/10if/_samples/legal_age.ipynb | 29 ++++ docs/python/10if/_samples/less_than.ipynb | 26 +++ .../10if/_samples/logical_operator.ipynb | 26 +++ .../10if/_samples/logical_operator2.ipynb | 26 +++ docs/python/10if/_samples/max.ipynb | 35 ++++ docs/python/10if/_samples/neq.ipynb | 26 +++ docs/python/10if/_samples/not.ipynb | 26 +++ docs/python/10if/_samples/or.ipynb | 26 +++ docs/python/10if/_samples/over.ipynb | 26 +++ .../10if/_samples/the_right_to_vote.ipynb | 22 +++ docs/python/10if/_samples/true.ipynb | 25 +++ docs/python/10if/index.mdx | 155 ++++++++++++++++++ 25 files changed, 874 insertions(+) create mode 100644 docs/python/10if/_samples/abs.ipynb create mode 100644 docs/python/10if/_samples/abs2.ipynb create mode 100644 docs/python/10if/_samples/abs_default.ipynb create mode 100644 docs/python/10if/_samples/abs_math.ipynb create mode 100644 docs/python/10if/_samples/alcohol.ipynb create mode 100644 docs/python/10if/_samples/and.ipynb create mode 100644 docs/python/10if/_samples/below.ipynb create mode 100644 docs/python/10if/_samples/comparison_operator.ipynb create mode 100644 docs/python/10if/_samples/eq.ipynb create mode 100644 docs/python/10if/_samples/false.ipynb create mode 100644 docs/python/10if/_samples/fizzbuzz.ipynb create mode 100644 docs/python/10if/_samples/fizzbuzz2.ipynb create mode 100644 docs/python/10if/_samples/greater.ipynb create mode 100644 docs/python/10if/_samples/legal_age.ipynb create mode 100644 docs/python/10if/_samples/less_than.ipynb create mode 100644 docs/python/10if/_samples/logical_operator.ipynb create mode 100644 docs/python/10if/_samples/logical_operator2.ipynb create mode 100644 docs/python/10if/_samples/max.ipynb create mode 100644 docs/python/10if/_samples/neq.ipynb create mode 100644 docs/python/10if/_samples/not.ipynb create mode 100644 docs/python/10if/_samples/or.ipynb create mode 100644 docs/python/10if/_samples/over.ipynb create mode 100644 docs/python/10if/_samples/the_right_to_vote.ipynb create mode 100644 docs/python/10if/_samples/true.ipynb create mode 100644 docs/python/10if/index.mdx diff --git a/docs/python/10if/_samples/abs.ipynb b/docs/python/10if/_samples/abs.ipynb new file mode 100644 index 000000000..60d47fa46 --- /dev/null +++ b/docs/python/10if/_samples/abs.ipynb @@ -0,0 +1,31 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def abs_val(n):\n", + " if n >= 0:\n", + " return n\n", + " else:\n", + " return -n\n", + "\n", + "\n", + "print(abs_val(-10))" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "10\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/abs2.ipynb b/docs/python/10if/_samples/abs2.ipynb new file mode 100644 index 000000000..2dae729b6 --- /dev/null +++ b/docs/python/10if/_samples/abs2.ipynb @@ -0,0 +1,30 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def abs_val(n):\n", + " if n < 0:\n", + " n = -n\n", + " return n\n", + "\n", + "\n", + "print(abs_val(-10))" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "10\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/abs_default.ipynb b/docs/python/10if/_samples/abs_default.ipynb new file mode 100644 index 000000000..273bba124 --- /dev/null +++ b/docs/python/10if/_samples/abs_default.ipynb @@ -0,0 +1,24 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "print(abs(-10))" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "10\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/abs_math.ipynb b/docs/python/10if/_samples/abs_math.ipynb new file mode 100644 index 000000000..e6981fc87 --- /dev/null +++ b/docs/python/10if/_samples/abs_math.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "import math\n", + "\n", + "print(math.fabs(-10))" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "10.0\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/alcohol.ipynb b/docs/python/10if/_samples/alcohol.ipynb new file mode 100644 index 000000000..dc1fcaab5 --- /dev/null +++ b/docs/python/10if/_samples/alcohol.ipynb @@ -0,0 +1,30 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def can_drink(age):\n", + " if age < 20:\n", + " print(\"お酒は二十歳になってから!\")\n", + "\n", + "\n", + "age = 19\n", + "can_drink(age)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "お酒は二十歳になってから!\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/and.ipynb b/docs/python/10if/_samples/and.ipynb new file mode 100644 index 000000000..bbab926d3 --- /dev/null +++ b/docs/python/10if/_samples/and.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age >= 20 and age < 30)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/below.ipynb b/docs/python/10if/_samples/below.ipynb new file mode 100644 index 000000000..758b3d204 --- /dev/null +++ b/docs/python/10if/_samples/below.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age <= 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "True\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/comparison_operator.ipynb b/docs/python/10if/_samples/comparison_operator.ipynb new file mode 100644 index 000000000..5f4879fed --- /dev/null +++ b/docs/python/10if/_samples/comparison_operator.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age > 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/eq.ipynb b/docs/python/10if/_samples/eq.ipynb new file mode 100644 index 000000000..908e2ded1 --- /dev/null +++ b/docs/python/10if/_samples/eq.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age == 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/false.ipynb b/docs/python/10if/_samples/false.ipynb new file mode 100644 index 000000000..e7a91d576 --- /dev/null +++ b/docs/python/10if/_samples/false.ipynb @@ -0,0 +1,25 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "f = False\n", + "print(f)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/fizzbuzz.ipynb b/docs/python/10if/_samples/fizzbuzz.ipynb new file mode 100644 index 000000000..31200c93b --- /dev/null +++ b/docs/python/10if/_samples/fizzbuzz.ipynb @@ -0,0 +1,65 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def fizzbuzz(n):\n", + " for i in range(1, n + 1):\n", + " if i % 15 == 0:\n", + " print(\"FizzBuzz\")\n", + " elif i % 3 == 0:\n", + " print(\"Fizz\")\n", + " elif i % 5 == 0:\n", + " print(\"Buzz\")\n", + " else:\n", + " print(i)\n", + "\n", + "\n", + "fizzbuzz(30)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1\n", + "2\n", + "Fizz\n", + "4\n", + "Buzz\n", + "Fizz\n", + "7\n", + "8\n", + "Fizz\n", + "Buzz\n", + "11\n", + "Fizz\n", + "13\n", + "14\n", + "FizzBuzz\n", + "16\n", + "17\n", + "Fizz\n", + "19\n", + "Buzz\n", + "Fizz\n", + "22\n", + "23\n", + "Fizz\n", + "Buzz\n", + "26\n", + "Fizz\n", + "28\n", + "29\n", + "FizzBuzz\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/fizzbuzz2.ipynb b/docs/python/10if/_samples/fizzbuzz2.ipynb new file mode 100644 index 000000000..4db6057ab --- /dev/null +++ b/docs/python/10if/_samples/fizzbuzz2.ipynb @@ -0,0 +1,65 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def fizzbuzz(n):\n", + " for i in range(1, n + 1):\n", + " s = \"\"\n", + " if i % 3 == 0:\n", + " s += \"Fizz\"\n", + " if i % 5 == 0:\n", + " s += \"Buzz\"\n", + " if s == \"\":\n", + " s = i\n", + " print(s)\n", + "\n", + "\n", + "fizzbuzz(30)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "1\n", + "2\n", + "Fizz\n", + "4\n", + "Buzz\n", + "Fizz\n", + "7\n", + "8\n", + "Fizz\n", + "Buzz\n", + "11\n", + "Fizz\n", + "13\n", + "14\n", + "FizzBuzz\n", + "16\n", + "17\n", + "Fizz\n", + "19\n", + "Buzz\n", + "Fizz\n", + "22\n", + "23\n", + "Fizz\n", + "Buzz\n", + "26\n", + "Fizz\n", + "28\n", + "29\n", + "FizzBuzz\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/greater.ipynb b/docs/python/10if/_samples/greater.ipynb new file mode 100644 index 000000000..5f4879fed --- /dev/null +++ b/docs/python/10if/_samples/greater.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age > 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/legal_age.ipynb b/docs/python/10if/_samples/legal_age.ipynb new file mode 100644 index 000000000..65b7ea6c7 --- /dev/null +++ b/docs/python/10if/_samples/legal_age.ipynb @@ -0,0 +1,29 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "if age >= 18:\n", + " print(\"成人です。\")\n", + "else:\n", + " print(\"未成年です。\")" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "成人です。\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/less_than.ipynb b/docs/python/10if/_samples/less_than.ipynb new file mode 100644 index 000000000..acbf1f5bf --- /dev/null +++ b/docs/python/10if/_samples/less_than.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age < 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "True\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/logical_operator.ipynb b/docs/python/10if/_samples/logical_operator.ipynb new file mode 100644 index 000000000..66795def6 --- /dev/null +++ b/docs/python/10if/_samples/logical_operator.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age > 20 or age == 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/logical_operator2.ipynb b/docs/python/10if/_samples/logical_operator2.ipynb new file mode 100644 index 000000000..544c6c871 --- /dev/null +++ b/docs/python/10if/_samples/logical_operator2.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age >= 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/max.ipynb b/docs/python/10if/_samples/max.ipynb new file mode 100644 index 000000000..802ec9a1f --- /dev/null +++ b/docs/python/10if/_samples/max.ipynb @@ -0,0 +1,35 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "def max(scores):\n", + " m = scores[0]\n", + " for i in range(len(scores) - 1):\n", + " if scores[i] > scores[i + 1]:\n", + " m = scores[i]\n", + " else:\n", + " m = scores[i + 1]\n", + " return m\n", + "\n", + "\n", + "SCORES = [55, 32, 16, 51, 80, 19]\n", + "print(max(SCORES))" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "80\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/neq.ipynb b/docs/python/10if/_samples/neq.ipynb new file mode 100644 index 000000000..40bcd18f9 --- /dev/null +++ b/docs/python/10if/_samples/neq.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age != 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "True\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/not.ipynb b/docs/python/10if/_samples/not.ipynb new file mode 100644 index 000000000..0178c661b --- /dev/null +++ b/docs/python/10if/_samples/not.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(not age >= 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "True\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/or.ipynb b/docs/python/10if/_samples/or.ipynb new file mode 100644 index 000000000..094635618 --- /dev/null +++ b/docs/python/10if/_samples/or.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age < 20 or age > 70)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "True\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/over.ipynb b/docs/python/10if/_samples/over.ipynb new file mode 100644 index 000000000..544c6c871 --- /dev/null +++ b/docs/python/10if/_samples/over.ipynb @@ -0,0 +1,26 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "\n", + "print(age >= 20)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "False\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/the_right_to_vote.ipynb b/docs/python/10if/_samples/the_right_to_vote.ipynb new file mode 100644 index 000000000..1e1eaccf6 --- /dev/null +++ b/docs/python/10if/_samples/the_right_to_vote.ipynb @@ -0,0 +1,22 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "age = 18\n", + "if age < 18:\n", + " print(\"選挙権はありません。\")\n", + "elif age < 25:\n", + " print(\"投票することができます。\")\n", + "else:\n", + " print(\"衆議院議員に立候補することができます。\")" + ], + "cell_type": "code", + "outputs": [], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/_samples/true.ipynb b/docs/python/10if/_samples/true.ipynb new file mode 100644 index 000000000..a9d76fae5 --- /dev/null +++ b/docs/python/10if/_samples/true.ipynb @@ -0,0 +1,25 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": {}, + "cells": [ + { + "metadata": {}, + "source": [ + "t = True\n", + "print(t)" + ], + "cell_type": "code", + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "True\n" + ] + } + ], + "execution_count": null + } + ] +} diff --git a/docs/python/10if/index.mdx b/docs/python/10if/index.mdx new file mode 100644 index 000000000..7541cd3a5 --- /dev/null +++ b/docs/python/10if/index.mdx @@ -0,0 +1,155 @@ +--- +sidebar_position: 10 +--- + +import ViewSource from "@site/src/components/ViewSource/ViewSource"; +import Answer from "@site/src/components/Answer"; + +# 条件分岐 + +## 論理値 + +Python では、文字列や数字以外にも論理値という真か偽かを表す値があります。真は `True`、偽は `False` と表せ、これは変数などにも代入できます。 + +下のプログラムでは、`True` と `False` を表示しています。`"True"`、`"False"` のようにダブルクォーテーション( `"` )がついていないことに気をつけましょう。 + + + + + +## 比較演算子 + +Python では、次のように比較演算子を用いて真偽を判定することができます。次のプログラムでは、`age > 20` が偽なので、`False` が返されています。 + + + +他にも様々な比較演算子があります。 + +| 比較演算子 | 説明 | 例 | +| ---------- | ---------- | ---------------------------------------------- | +| `==` | 等しい | | +| `!=` | 等しくない | | +| `<` | 小なり | | +| `<=` | 以下 | | +| `>` | 大なり | | +| `>=` | 以上 | | + +## 論理演算子 + +論理値に対して、論理演算子を使ってさらに複雑な計算をすることができます。 + + + +このプログラムは、`>=` 一つを使って書き換えた次と同じです。 + + + +他にも様々な論理演算子があります。 + +| 論理演算子 | 説明 | 例 | +| ---------- | ------ | ---------------------------------------- | +| `not` | 否定 | | +| `and` | かつ | | +| `or` | または | | + +## 条件分岐 + +### if + +年齢に応じて、飲酒可能な年齢かを判定するプログラムを作りましょう。しかし、今までに学習した内容ではこのようなプログラムを作ることはできそうにありません。このような処理をするために、if 文が使えます。飲酒可能な年齢かを判定するプログラムを見てみましょう。 + + + +if 文は、次のようにして作ることができます。 +条件式には、先程の比較演算子や論理演算子が使えます。 + +```python +if 条件式: + 真の時の処理 +``` + +### if ~ else + +条件が偽の時にも行いたい処理がある場合は、if ~ else 文を用いて、次のようにすることができます。 + +未成年か成人かを判定するプログラムを作ってみましょう。 + + + +if ~ else 文の構文は次のとおりです。 + +```python +if 条件式: + 真の時の処理 +else: + 偽の時の処理 +``` + +### if ~ elif ~ else + +条件が偽の時でさらに条件分岐を行いたい場合は、if ~ elif ~ else 文を用いて、次のようにすることができます。 + +選挙権を判定するプログラムを作ってみましょう。 + + + +if ~ elif ~ else 文の構文は次のとおりです。 + +```python +if 条件式: + 真の時の処理 +elif: + 偽の時である条件が真の時の処理 +else: + すべてが偽の時の処理 +``` + +## 練習問題 + +### 練習問題 1 + +Fizz Buzz 問題を解くプログラムを作ってみましょう。 +これは、プログラミング初心者向けの簡単な例題としてとても有名です。初歩的なプログラムを作成する能力があるのかを判定するためによく使われます。 + +Fizz Buzz のルールは、次のようになっています。 + +> プレイヤーは円状に座る。最初のプレイヤーは「1」と数字を発言する。次のプレイヤーは直前のプレイヤーの発言した数字に 1 を足した数字を発言していく。ただし、3 の倍数の場合は「Fizz」(Bizz Buzz の場合は「Bizz」)、5 の倍数の場合は「Buzz」、3 の倍数かつ 5 の倍数の場合(すなわち 15 の倍数の場合)は「Fizz Buzz」(Bizz Buzz の場合は「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。 +> Wikipedia フリー百科事典 より + +$n$ 番目まで Fizz Buzz での正しい解を表示するプログラムを作ってみましょう。 + + + + +もう一つの有名な解法を見てみましょう。 + + + + +### 練習問題 2 + +絶対値を求めるプログラムを作ってみましょう。 + + + + +別解 + + + +実は、組み込み関数で abs 関数があります。また、[math ライブラリの fabs 関数](https://docs.python.org/ja/3/library/math.html#math.fabs)もあります。 + + + + + + + +### 練習問題 3 + +数学の得点の配列が与えられた時、その配列中での最大値を求めるプログラムを作ってみましょう。 +与えられる配列を `[55, 32, 16, 51, 80, 19]` として実際に求めてみましょう。 + + + + From 9adc32db444a9e2e639c6070fb42c7fffcd929f7 Mon Sep 17 00:00:00 2001 From: chvmvd Date: Sun, 6 Nov 2022 21:31:40 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E6=A0=A1=E9=96=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/extras/1vscode/index.mdx | 2 +- docs/extras/2wsl/index.mdx | 16 ++-- docs/python/08array/_samples/average.ipynb | 50 ++++++------- docs/python/08array/_samples/average10.ipynb | 59 +++++++-------- .../08array/_samples/average_numpy.ipynb | 15 ++-- .../08array/_samples/average_statistics.ipynb | 15 ++-- docs/python/08array/_samples/sum.ipynb | 43 +++++------ docs/python/08array/_samples/sum2.ipynb | 43 +++++------ docs/python/08array/_samples/variance.ipynb | 75 +++++++++---------- docs/python/08array/_samples/variance2.ipynb | 73 +++++++++--------- docs/python/08array/index.mdx | 10 +-- .../_samples/2_dim_array_revised.ipynb | 15 ++-- .../_samples/average_of_sum.ipynb | 75 +++++++++---------- 13 files changed, 232 insertions(+), 259 deletions(-) diff --git a/docs/extras/1vscode/index.mdx b/docs/extras/1vscode/index.mdx index 874762e4d..978557270 100644 --- a/docs/extras/1vscode/index.mdx +++ b/docs/extras/1vscode/index.mdx @@ -22,7 +22,7 @@ Visual Studio Code は、Microsoft が開発しているフリーかつオープ