PYTHON解説

【1,前提】

㋑ コードは上から一行ずつ算出される。
㋺ コードは一行で完結させる。
(改行すると別物として扱われる。)
㋩ 全て半角で書く。
㋥ カンマの後はスペースを入れる。
㋭ 基本的に"集合論"で考える!

【2,解説で使う記号と法則について】

「 $${\overline{x}}$$ 」< not $${x}$$[ bar $${x}$$ ]
「$${\rm{A} \cap \rm{B}}$$」< $${\rm{A}}$$かつ$${\rm{B}}$$(AとBの共通要素)
「$${\rm{A} \cup \rm{B}}$$」< $${\rm{A}}$$または$${\rm{B}}$$(AとBのすべて)
「ド・モルガンの法則」
  ↳ 【 $${\overline{\rm{A}} \cap \overline{\rm{B}} = \overline{\rm{A} \cup \rm{B}}}$$ 】
    【 $${\overline{\rm{A}} \cup \overline{\rm{B}} = \overline{\rm{A} \cap \rm{B}}}$$ 】

【3,加減乗除に関する記号】

「 $${a+b}$$ 」< $${a}$$ 足す $${b}$$(加法)
「 $${a-b}$$ 」< $${a}$$ 引く $${b}$$(減法)
「 $${a \ast b}$$ 」< $${a}$$ 掛ける $${b}$$(乗法)
「 $${a \ast\ast  b}$$ 」< $${a}$$ の $${b}$$ 乗(累乗)
「 $${a/b}$$ 」< $${b}$$ 分の $${a}$$(除法)
「 $${a//b}$$ 」< $${b}$$ 分の $${a}$$(商の整数部分)

print(10+5)
print(10-5)
print(10*5)
print(10**5)
print(10/4)
print(10//4)

【4,計算の優先順位】

➀(  )内
➁ 累乗
➂ 乗除
➃ 加減

【5,四則演算】

「加法」< "$${+}$$"記号を使う。
 ex, ) $${2+3}$$ , $${12+54}$$

「減法」< "$${-}$$"記号を使う。
 ex, ) $${5-3}$$ , $${75-38}$$

「乗法」< "$${\times}$$"記号ではなく、"$${\ast}$$"を使う。
 ex, ) $${3 \ast 7}$$ , $${24 \ast 56}$$

「累乗」< "$${\ast \ast}$$"のように2個続ける。
 ex, ) $${3 \ast \ast  4  (=3^4)}$$ , $${12 \ast \ast  9  (=12^9)}$$

「除法」< "$${\div}$$"記号でなく、"$${/}$$"を使う。
 ex, ) $${10/5  \left(=\frac{10}{5}\right)}$$ ,$${123456789/3  \left(=\frac{123456789}{3}\right)}$$
これは、分数の形で表記したほうが分かりやすいかも。

「乗法式/分数式」
  ↳ 多項式を小括弧"( )"で囲う。
そして、乗法式は"$${\ast}$$"、分数式は"$${/}$$"を間に入れる。
単項式のときは括弧で囲う必要ナシ!
※注意※ 四則演算の括弧は、小括弧しか使えない!
 ex, ) $${5 \ast (3+8)}$$ , $${(3+8)/(54-36)}$$

【6,論理回路➀】

㋑ 機械語は0と1の世界!
  ↳ 一番精度が高い。
㋺ 真理値表を書く。

「AND gate(論理積回路)」

  ↳ 2数を掛ける。

【 真理値表 】

$$
\def
\arraystretch{1.5}
\begin{array}{ccc:cccccccc}
\rm{P} & \times & \rm{Q} & \rightarrow & \rm{X} \\
\hline
0 &  & 0 &  & 0 \\
0 &  & 1 &  & 0 \\
1 &  & 0 &  & 0 \\
1 &  & 1 &  & 1 \\
\end{array}
$$

「OR gate(論理和回路)」

  ↳ 2数を足す。

【 真理値表 】

$$
\def
\arraystretch{1.5}
\begin{array}{ccc:cccccccc}
\rm{P} & + & \rm{Q} & \rightarrow & \rm{X} \\
\hline
0 &  & 0 &  & 0 \\
0 &  & 1 &  & 1 \\
1 &  & 0 &  & 1 \\
1 &  & 1 &  & 1 \\
\end{array}
$$

「NOT gate(否定回路)」

  ↳ 0と1を入れ替える。

【 真理値表 】

$$
\def
\arraystretch{1.5}
\begin{array}{c:cccccccccc}
\rm{P} & \rightarrow & \overline{\rm{P}} \\
\hline
0 &  & 1 \\
1 &  & 0 \\
\end{array}
$$

【7,論理回路➁】

「NAND gate(否定論理積回路)」

  ↳ AND gateの操作のあと、NOT gateの操作をする。
   Not - AND gate と呼ばれることもある。
   A nand B = not ( A and B ) と同義である!

【 真理値表 】

$$
\def
\arraystretch{1.5}
\begin{array}{ccc:cccccccc}
\rm{P} & \times & \rm{Q} & \rightarrow & \rm{X} & \rightarrow & \overline{\rm{X}} \\
\hline
0 &  & 0 &  & 0 &  & 1 \\
0 &  & 1 &  & 0 &  & 1 \\
1 &  & 0 &  & 0 &  & 1 \\
1 &  & 1 &  & 1 &  & 0 \\
\end{array}
$$

「NOR gate(否定論理和回路)」

  ↳ OR gateの操作のあと、NOT gateの操作をする。
   Not - OR gate と呼ばれることもある。
   A nor B = not ( A or B ) と同義である!

【 真理値表 】

$$
\def
\arraystretch{1.5}
\begin{array}{ccc:cccccccc}
\rm{P} & \times & \rm{Q} & \rightarrow & \rm{X} & \rightarrow & \overline{\rm{X}} \\
\hline
0 &  & 0 &  & 0 &  & 1 \\
0 &  & 1 &  & 1 &  & 0 \\
1 &  & 0 &  & 1 &  & 0 \\
1 &  & 1 &  & 1 &  & 0 \\
\end{array}
$$

「XOR gate(排他的論理和回路)」

  ↳ 特定の1つを優遇する。
   Exclusive - OR gate と呼ばれることもある。
   A xor B = ( A or B ) and ( A nand B ) と同義である!

【 真理値表 】

$$
\def
\arraystretch{1.5}
\begin{array}{ccc:cccccccc}
\rm{P} & \oplus & \rm{Q} & \rightarrow & \rm{X} \\
\hline
0 &  & 0 &  & 0 \\
0 &  & 1 &  & 1 \\
1 &  & 0 &  & 1 \\
1 &  & 1 &  & 0 \\
\end{array}
$$

「XNOR gate(否定排他的論理和回路)」

  ↳ XOR gateの操作のあと、NOT gateの操作をする。
   A xnor B = not { ( A or B ) and ( A nand B ) }
         = ( A or B ) nand ( A nand B ) と同義である!

【 真理値表 】

$$
\def
\arraystretch{1.5}
\begin{array}{ccc:cccccccc}
\rm{P} & \oplus & \rm{Q} & \rightarrow & \rm{X} & \rightarrow & \overline{\rm{X}} \\
\hline
0 &  & 0 &  & 0 &  & 1 \\
0 &  & 1 &  & 1 &  & 0 \\
1 &  & 0 &  & 1 &  & 0 \\
1 &  & 1 &  & 0 &  & 1 \\
\end{array}
$$

【8,リスト表示】

これは、マジで理解不能な人多いと思う。

$$
a = [ 1, 4, 7, 10, 13, 16, 19 ]
$$

こんな感じで、リスト表示はできる。
今回は"$${a}$$"にしてみたけど、
ここは何でもいいよ!(複数文字可能)

そしてリストのときに使うのは、
大括弧"[ ]"で要素を囲む。

「引数(ヒキスウ)」< 大括弧で囲まれた*データのこと
*今回で言うデータは、数字だけでなく文字列も含まれる。

「要素」< データの1つ1つのこと
※注意※ データの何番目かは、0番目から数える。

このあとやる関数をそのまま書いても、
実際に出力されないので、
出力されるような関数を1つ伝えとく。

$$
\mathrm{print} ( f(x) )
$$

これで出力すると、"$${f(x)=}$$"から先が表示される。
ほかもこの$${f(x)}$$を変えることで出力される。
まず、print って単語が印刷するって動詞だから当たり前か。

(i) 要素数を求める。

$$
f(x) = len( a )
$$

これを$${\rm{print}}$$の括弧内に入れると、
いくつの要素が入っているか分かる。
上の例で行くと、"$${7}$$"と出力される。
len のもとは、lengh関数とか呼ばれる。
lengh は、長さという意味。

(ii) 𝒙番目の要素を求める。

$$
f(x) = a[ x ]
$$

$${x = 3}$$ として$${\rm{print}}$$に入れると、
0番目を入れて数えるから、実質4番目!
だから"$${10}$$"と出力される。

(iii)-1 定めた変域の要素を取り出す。

(0番目の概念は無視する)
$${a[ m:n ]}$$とすると、変域 $${i}$$ は $${ m+1番目 \leqq i \leqq n番目 }$$と表される。
 ex, ) 上記リストの$${a[2:5]}$$の要素を全て書き出せ。$${2+1(=3)番目 \leqq i \leqq 5番目}$$ だから$${ [7, 10, 13] }$$となる。

(iii)-2 負の添字

負の数が出てきたら、要素数$${(=len( a ))}$$から引く。
$${len( a )}$$を $${k}$$ とおくと…
$${a[ - \ell ]}$$を求めるとすると、$${a[ k - \ell ]}$$と同じになる。
 ex, ) $${a[ - 3 ](len(a)は5とする)= a[ 5 - 3 ] = a[2]}$$
同様に、変域で負が出てきても同じ操作で(iii)-1のように考える。

(iv) 函数を使って定めた変域の要素を取り出す。

$$
\mathrm{range} ( f(x) )
$$

中学数学でやったと思うけど、renge関数のrenge範囲という意味。

けど、等差数列の考え方が$${+ \alpha}$$される。

0以上の整数数列でしか扱えないので注意!

cf, ) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, … …
この連続する整数数列でしか使えない。

けど、これをリスト化するとこうなる

$$
\mathrm{suretsu}=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, … …]
$$

これを添え字表記と対応させて考えると、
$${\mathrm{suretsu}[:5]}$$と同値になるのは、
$${\mathrm{range}(5)}$$と一致する。

$${\mathrm{suretsu}[2:5]}$$と同値のなるのは、
$${\mathrm{range}(2, 5)}$$と一致する。

この関数を使う利点としては、無限等差数列であることと、
わざわざリストを作らなくても良いという点だ。

〈添え字表記〉
$${\mathrm{suretsu} = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}$$
$${\mathrm{print}(\mathrm{suretsu}[2:5])}$$

【 出力結果 】
[2, 3, 4]

〈range関数表記〉
$${\mathrm{for}  i  \mathrm{in  range}(2, 5):}$$
    $${\mathrm{print}(i)}$$

【 出力結果 】
2
3
4

欠点としては、条件節内でしか使えない。
かなり、痛手かも?

等差[ステップ]についても触れておく。
とか思ったけど、これは別の機会で!

【9,条件分岐】

(i) if節について

(ii) else節について

(iii) i と ii を組み合わせる


更新終了。[5/24]

この記事が気に入ったらサポートをしてみませんか?