私の私による私のためのPythonメモ Part2

Pythonの基本とか??

パート2

Pythonの制御構文

if文

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
"""
if 条件式1:
    条件式がTrueの時に実行される処理
elif 条件式2:
    条件式1がFalseかつ条件式2がTrueの時に実行される処理
else:
    条件式1と2がFalseの時に実行される処理
"""

A = True
if A is True:
    print("A is True")
elif A is False:
    print("A is False")
else:
    print("A is unknown")

for文

1
2
3
4
5
6
7
8
"""
for 変数 in リスト:
    リストの要素を順番に変数に代入して処理を実行する
"""

lists = [1, 2, 3, 4, 5]
for i in lists:
    print(i)

while文

1
2
3
4
5
6
7
8
9
"""
while 条件式:
    条件式がTrueの間は処理を繰り返す
"""

i = 0
while i < 5:
    print(i)
    i += 1

Pythonの関数

関数の定義

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
"""
def 関数名(引数):
    処理
    return 戻り値
"""

def add(a, b):
    return a + b

print(add(1, 2)) # 3

関数の引数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
"""
def 関数名(引数=デフォルト値):
    処理
    return 戻り値
"""

def add(a, b=1):
    return a + b

print(add(1)) # 2  (bにデフォルト値の1が入る)
print(add(1, 2)) # 3 (bに2が入る)

# ------------------------------

def add(a=1, b=1):
    return a + b

print(add()) # 2 (a, bにデフォルト値の1が入る)
print(add(1)) # 2 (bにデフォルト値の1が入る)
print(add(1, 2)) # 3 (a, bにそれぞれ1, 2が入る)

引数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
"""
def 関数名(*引数):
    処理
    return 戻り値
"""

def add(*args):
    return sum(args)

print(add(1, 2, 3, 4, 5)) # 15

キーワード引数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
"""
def 関数名(**引数):
    処理
    return 戻り値
"""

def add(**kwargs):
    return sum(kwargs.values())

print(add(a=1, b=2, c=3, d=4, e=5)) # 15

グローバル変数

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
"""
グローバル変数は関数の外で定義された変数
"""

a = 1

def add():
    return a + 1

print(add()) # 2

グローバル変数の変更

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
"""
グローバル変数を変更するにはglobalを使う
"""

a = 1

def add():
    global a
    a += 1
    return a

print(add()) # 2

ローカル変数

1
2
3
4
5
6
7
8
9
"""
ローカル変数は関数の中で定義された変数
"""

def add():
    a = 1
    return a + 1

print(add()) # 2

ローカル変数の変更

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
"""
ローカル変数を変更するにはnonlocalを使う
"""

def add():
    a = 1
    def add2():
        nonlocal a
        a += 1
        return a
    return add2()

print(add()) # 2

ラムダ式

1
2
3
4
5
6
"""
lambda 引数: 処理
"""

add = lambda a, b: a + b
print(add(1, 2)) # 3

ジェネレータ

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
"""
def 関数名():
    yield 戻り値
"""

def add():
    yield 1
    yield 2
    yield 3
    
def gen():
    yield from add()
    yield 4
    yield 5

for i in gen():
    print(i) # 1, 2, 3, 4, 5

Pythonのクラス

クラスの定義

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
"""
class クラス名:
    クラスの定義
"""

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say(self):
        print("私の名前は" + self.name + "です。年齢は" + str(self.age) + "です。")

person = Person("midorichan", 18)
person.say() # 私の名前はmidorichanです。年齢は18です。

クラスの継承

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"""
class クラス名(継承元クラス名):
    クラスの定義
"""

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def say(self):
        print("私の名前は" + self.name + "です。年齢は" + str(self.age) + "です。")

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def say(self):
        print("私の名前は" + self.name + "です。年齢は" + str(self.age) + "です。学年は" + str(self.grade) + "です。")

student = Student("midorichan", 18, 3)
student.say() # 私の名前はmidorichanです。年齢は18です。学年は3です。

Pythonの例外処理

例外処理

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
"""
try:
    例外が発生する可能性のある処理
except 例外クラス as 変数:
    例外が発生した時の処理
else:
    例外が発生しなかった時の処理
finally:
    例外の有無に関わらず実行される処理
"""

try:
    print(1 / 0)
except ZeroDivisionError as e:
    print("0で割ることはできません。")
else:
    print("例外は発生しませんでした。")
finally:
    print("処理を終了します。")

Pythonのモジュール

モジュールのインポート

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
"""
import モジュール名
from モジュール名 import 関数名
"""

import math
print(math.pi) # 3.141592653589793

from math import pi
print(pi) # 3.141592653589793

モジュールの作成

1
2
3
4
5
6
"""
モジュール名.py
"""

def add(a, b):
    return a + b

Pythonのパッケージ

パッケージの作成

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
"""
パッケージ名
├── __init__.py
├── モジュール名1.py
└── モジュール名2.py
"""

# パッケージ名/__init__.py
from .モジュール名1 import 関数名1
from .モジュール名2 import 関数名2

# パッケージ名/モジュール名1.py
def 関数名1():
    pass

# パッケージ名/モジュール名2.py
def 関数名2():
    pass

パッケージのインポート

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
"""
import パッケージ名
from パッケージ名 import モジュール名
from パッケージ名.モジュール名 import 関数名
"""

import パッケージ名
print(パッケージ名.モジュール名.関数名())

from パッケージ名 import モジュール名
print(モジュール名.関数名())

from パッケージ名.モジュール名 import 関数名
print(関数名())

Pythonのファイル操作

ファイルの読み込み

1
2
3
4
5
6
7
"""
with open(ファイル名, モード, encoding=エンコード) as 変数:
    ファイルの読み込み
"""

with open("test.txt", "r", encoding="utf-8") as f:
    print(f.read())

ファイルの書き込み

1
2
3
4
5
6
7
"""
with open(ファイル名, モード, encoding=エンコード) as 変数:
    ファイルの書き込み
"""

with open("test.txt", "w", encoding="utf-8") as f:
    f.write("Hello, World!")

Made with 💚 and Stack (Jimmy)