【Python-Basic】Note 01

## 記載概要
（目的）
　　日常的に専念できる環境では無い為、基本的な部分はOutPutして、
　　記憶の定着を進め、振り返りの効率化を目的とする。

（主なポイント）
　　・対象書籍は『python入門ノート』とした。
　　（ボリュームと網羅範囲のバランスがちょうどよい為定着用とする事としている）
　　・少し特殊な内容Numpyや機械学習などはまとめテーマからは除く。
　　・記憶にかなり鮮明な部分はノートに記載しない。

###1.値と変数
####1-1.基本
```config:[基本]
・改行：\
・大小文字は区別される(変数aと変数Aは別物）
```

####1-2.Print関数
```py:[Print関数]
print(a,b ... , sep="区切り文字", end="行末文字")
# 通常だと行末文字は改行

a = 10
b = 20
c = 30
abc = a+b+c
print(a, b, c, sep='...', end='以上')
```

```text:[実行結果]
10...20...30以上
```

####1-3.数値演算子
```py:[数値演算子]
a + b   # 足し算
a - b   # 引き算
a * b   # 掛け算
a / b   # 割り算
a // b  # 商の整数
a % b   # 商のあまり
a ** b  # べき乗
```

####1-4.エスケープシーケンス
```py:[エスケー―プシーケンス]
'\n'  # 改行
'\t'  # タブ
'\r'  # キャリッジリターン
'\"'  # ダブルクウォート
'\''  # シングルクウォート
'\\'  # バックスラッシュ
```

####1-5.改行認識
```py:[改行認識]
hoge="""改行を
認識する
入力方法
"""
print(hoge)
```

```text:[実行結果]
改行を
認識する
入力方法
```

####1-6.型変換
```py:[型変換]
aaa = 2500
bbb = '円'
print('代金は' + str(aaa) + bbb + 'です')
```

```text:[実行結果]
代金は2500円です
```

####1-7.繰り返し文字
```py:[繰り返し文字]
symbol = '*'
print('東京' + symbol *13)
```

```text:[実行結果]
東京*************
```

####1-8.インデックス番号
```py:[インデックス番号]
id = 'abcdefghi'

print(id[0])
print(id[-9])
print(id[1])
print(id[-8])
```

※左から数える時は『0』からカウント
※右から数える時は『-1』からカウント

```text:[実行結果]
a
a
b
b
```

####1-9.文字列のスライス
```py:[文字列のスライス]
msg = '俳句という名称は、江戸時代にも見られないことはない。'

print(msg[:])
print(msg[0:7])
print(msg[9:9+4])
print(msg[:-19])
```

```text:[実行結果]
俳句という名称は、江戸時代にも見られないことはない。
俳句という名称
江戸時代
俳句という名称
```

####1-10.インデックス番号
```py:[インデックス番号]
msg = 'aabbccddeeffgg'

print(msg[::])
print(msg[::1])
print(msg[::2])
print(msg[::3])
print(msg[::-2])
```

```text:[実行結果]
aabbccddeeffgg
aabbccddeeffgg
abcdefg
abdeg
gfedcba
```

####1-11.比較演算子
```py:[比較演算子]
a == b  # aとbが等しい時Trune
a != b  # aとbが等しくない時True
a > b   # aがbより大きい時True
a >= b  # aがb以上の時True
a < b   # aがbより小さい時True
a <= b  # aがb以下の時True
```

####1-12.論理演算子
```py:[論理演算子]
a and b  # aかつbの両方がTrureの時True
a or b   # aまたはbのどちらか一方でもTrune成らばTrune
not a    # aがTrue成らばFalse。aがFalseならばTrue
```

####1-13.ビット演算子
```py:[ビット演算子]
a & b   # 論理積/両ビット伴に１の時
a | b   # 論理和/どちらかのビットが１ならば１
a ^ b   # 排他的論理和/比較したビットの値が異なる時１
~a      # ビット反転/ビットの１，０を反転させます。
a << 1  # 左シフトビットを左にずらす値は2倍になる
a >> 1  # 右シフトビットを右にずらす値は2分の１になる。
```

####1-14.型変換
  
```py:1.型を調べる
print(type(1))
```

```text:実行結果
<class 'int'>
```


```py:2.文字列型に変換
len = 10  * 1.23
ans = "長さ" + str(len) + "cm"
print(ans)
```

```text:実行結果
長さ12.3cm
```

```py:3.数値型
print(int("250")*3)
```

```text:実行結果
750
```

```py:4.不動点少数
print(float("1.5") + 0.2)
```

```text:実行結果
1.7
```

####1-15.複合代入演算子
```py:[複合代入演算子]
a += b   # aにbを足した値を代入
a -= b   # aからbを引いた値を代入
a *= b   # aにbをかけた値を代入
a /= b   # aをbで割った値を代入
a //= b  # aをbで割った商の整数値を代入
a %= b   # aをbで割った余りを代入
a **= b  # aをb回掛け合わせた値を代入
####################################
who = "猫"
text = ""
text += "吾輩は"
text += who
text += "である"

print(text)
```

```text:実行結果
吾輩は猫である
```

###2.標準ライブラリ
・よく利用するコードは呼びだして使えるように予め定義している。
・関数は関数名に（）をつけて呼び出す。
・（）の中には処理をしたい値を入れる→引数と呼ぶ
・引数が複数ある場合は、カンマで区切って入力する

####2-1.組み込み関数
```py:[組み込み関数]
いつでもどこでも呼び出す事の出来る関数
abs(数値)  # 数値の絶対値を求める
divmod(数値a, 数値b)  # aをbで割った結果を（商,　余り）のタプルで返す
max(数値１, 数値２, 数値３, ...)  # 最大値を求める
min(数値１, 数値２, 数値３, ...)  # 最小値を求める
pow(x, y)  # xのy乗を求める
pow(x, y, z)  # xのy乗をｚで割った余りを求める
round(数値, 桁数)  # 数値を指定の桁数にまるめる。省略時は整数にまるめる。
                  # 切り上げ、切り捨ての差が同じ場合は、偶数側にまとめる（2.5→2）
###
print(abs(-3.5))
print(min(5, 9, -2, 1 -3))
print(max(5, 9, -2, 1 -3))
print(round(3.65))
print(round(3.65, 1))
```

####2-2.文字列に使う関数
```py:[文字列に使う関数]
chr(整数)    # 整数が示すUnicodeを文字列で返す
ord(1文字)   # 文字列に対応するUnicodeを調べる
len(文字列)  # 文字列の文字数を求める。2バイト文字も１文字で数える
str(値)      # 値を文字列に変換する
###
print(ord("a"))
print(chr(97))
print(len('パイソン'))
```

```text:実行結果
97
a
4
```

####2-3.文字列に使う関数
```config:[文字列に使う関数]
input(プロンプト文字列)  # キーボードからの入力を受け付ける
open(ファイル名)  # テキストファイルを開く
print(値, sep=文字列, end=文字列)  # 値を出力する
###
val = input("入力して下さい：")
print(val)
```

```text:実行結果
入力して下さい：テスト
テスト
```

####2-4.モジュールの読み込み
```py:[モジュールの読み込み]
from モジュール名 import 関数名
from random import randint
###
from random import randint
print(randint(1, 6))
```

```text:実行結果
1
```

####2-5.オブジェクト
```py:[オブジェクト]
# 属性（データ）は変数で定義
# メソッドは関数で定義
###
s = "Hello Python"

print(type(s))
print(s.upper())
# strオブジェクトのupperメソッド
```

``text:実行結果
<class 'str'>
HELLO PYTHON
```

####2-6.文字列のメソッド１
```py:[文字列のメソッド１]
s = "Hello Python"

print(type(s))
print(s.upper())
print(s.lower())
print(s.swapcase())
print(s.capitalize())
print(s.title())
```

```text:実行結果
<clas 'str'>
HELLO PYTHON
hello python
hELLO pYTHON
Hello python
Hello Python
```

####2-7.文字列のメソッド２
```py:[文字列のメソッド２]
s = "Hello Python"

print(s.count('o', 0, 12))
print(s.find('o', 0, 12))
print(s.find('z', 0, 12))
print(s.rfind("o"))
print(s.replace("o", "A"))
```

```text:実行結果
2
4
-1
10
HellA PythAn
```
####2-8.文字列のメソッド３
```py:[文字列のメソッド３]
strip()   # 文字列の先頭と末尾にあるよ分んあ文字を取り除く
rstrip()  # 末尾にある余分な文字を取り除く
###
t1 ="  hello \n"
print(t1.strip())

t2 ="abc......."
print((t2.rstrip(".")))

t3 ="2, 3, 4,"
print(t3.rstrip("., \n"))

t4 ="dog.peg.jp"
print(t4.rstrip(".jpeg"))
```

```text:実行結果
hello
abc
2, 3, 4
do
```

####2-9.文字列の埋め込み
```py:[文字列の埋め込み]
story = "物語で出てくる動物は{}と{}と{}です。"
story.format("申","鳥", "戌")
print(story.format("申","鳥", "戌"))

name = "田中"
age = 23
point = 30
text = f"{name}さんは{age}歳。ポイントは{point}点です。"
print(text)
```

```text:実行結果
物語で出てくる動物は申と鳥と戌です。
田中さんは23歳。ポイントは30点です。
田中さんは23歳。ポイントは30点です。
```

```py:[位取り]
# .1f .0f：少数点以下一位まで,小数点を表示しない
# , .2f：位取りと少数点以下２位までの表示
# >10：全体が10文字の幅で右詰め
###
tokyo = 123456000
kyoto = 53900

print(f"東京{tokyo:,}と京都{kyoto:,}")

length = 23.54
thickness = 5.62

text = f"長さ{length: .1f}cm,厚み{thickness: .0f}mm"
print(text)

num = 2345.032
print(f"{num:,.2f}")

num1 = 123.4
num2 = 56.9
num3 = 3040.1

print(f"{num1:>10.1f}")
```

```text:実行結果
東京123,456,000と京都53,900
長さ 23.5cm,厚み 6mm
2,345.03
     123.4
```

###3.制御文
###4.リスト
###5.タプル
###6.セット
###7.辞書
###8.ユーザー定義関数
###9.高度な関数
###10.クラス定義
###11ファイルの取り扱い