本日の内容
今日の記事はPythonを使用する上で基礎的な情報を記載していきます。
実際に勉強会でも使用する内容になります。
下記に記載しているコードはコードスタイル「PEP8」を意識して記載しています。
PEP8については以下のサイトをご覧ください。
変数と四則演算
Pythonでは、整数、文字列、リスト、関数など、すべての値はメモリ上のどこかに存在するオブジェクトです。
変数には、値がどこにあるのかを示す「オブジェクトID」(オブジェクトのアドレス)が代入されます。
コードは以下になります。
# 変数
num = 1 # メモリ上に整数値1のint型オブジェクトが作られ、変数numにはオブジェクトIDが代入される
print(type(num)) # <class 'int'>
moji = "こんにちは"
print(type(moji)) # <class 'str'>
num_1 = 1.1
print(type(num_1)) # <class 'float'>
flg = True
print(type(flg)) # <class 'bool'>
num_lst = [1, 2, 3, 4, 5]
print(type(num_lst)) # <class 'list'>
num_tuple = (1, 2, 3, 4)
print(type(num_tuple)) # <class 'tuple'>
num_dict = {1: 'リンゴ', 2: 'バナナ'}
print(type(num_dict)) # <class 'dict'>
num_set = {1, 2, 3, 4, 5}
# print(type(num_set)) # <class 'set'>
# 四則演算
def operations():
"""
四則演算
"""
x = 4
y = 2
print(f'{x} + {y} = {x + y}') # 和
print(f'{x} - {y} = {x - y}') # 差
print(f'{x} × {y} = {x * y}') # 積
print(f'{x} ÷ {y} = {x / y}') # 商
print(f'{x} ÷ {y} = {x // y}') # 商の切り捨て
print(f'{x}の{y}乗 = {x ** y}') # べき乗
print(f'{x} の余り {y} = {x % y}') # 余り
operations()
型説明
list:データを一直線にまとめたもの。インデックスでアクセスできる。
tuple:リストオブジェクトのように要素を変更することはできない。
複数の要素が決まった順番にならんだ値。
dict(辞書):キー (key) と値 (value) を対応づけるデータ型。
set(集合):リストと同様に複数の要素から構成されるデータです。 セットでは、リストと異なり要素の重複はしない。
実行結果
制御構造
コードは以下になります。
# 条件分岐
num = int(input('数字を入力-> ')) # ユーザから入力
if num == 10:
print('10です。')
elif num >= 10:
print('10以上です。')
else:
print('10以下です。')
# ループ
for i in range(10):
print(i) # 0始まり
moji = [chr(ord("A")+i) for i in range(26)] # アルファベットを格納
# enumerate-> forループでインデックスを取得できる
for j, k in enumerate(moji, 1):
print(f'{j}:{k}', end= ' ')
# ループ、条件分岐、内包表記
def even_1(even):
"""偶数を返す関数
Args:
even(list[int]): 空のリスト
Returns:
list[int]: 偶数リスト
"""
for i in range(1, 10 + 1):
if i % 2 == 0:
even.append(i)
return even
even_lst = []
print(*even_1(even_lst))
def odd_1(odd):
"""奇数を作成する関数
Args:
odd (list): 空のリスト
Returns:
list[int]: 奇数のリスト
"""
odd = [i for i in range(1, 10 + 1)if i % 2 != 0]
return odd
odd_lst = []
print(*odd_1(odd_lst))
docstring: コード内で文字を記載する際の方法の一つ。関数の場合は、何をするのかの概要、パラメータ、戻り値、発生する例外などについて記述する。
内包表記:既存のリストから新しいリストを作ることができる、リスト作成方法の一つ。
関数:処理を一つにまとめたもの。
実行結果
データ構造(list)
コードは以下になります。
import random
# データ構造
num_lst = [1, 2, 3, 4, 5]
n_lst = [random.randint(1, 100) for _ in range(15)]
# リストのインデックス
print(num_lst[0]) # 最初
print(num_lst[-1]) # 最後
print(num_lst[0:1])
print(num_lst[0:2]) # [1, 2]
num_lst_1 = num_lst[0:2]
print(type(num_lst_1))
print(num_lst[0:]) # [1, 2, 3, 4, 5]
print(f"ランダムなリスト -> {n_lst}") # 半角区切りで出力
print(f"合計 -> {sum(n_lst)}") # sum関数(合計)
print(f"要素数 -> {len(num_lst)}") # len関数(要素数)
print(f"最大値 -> {max(n_lst)}") # max関数(最大値)
print(f"最小値 -> {min(n_lst)}") # min関数(最小値)
print(f"平均 -> {sum(n_lst) // len(n_lst)}") # n_lstの平均
# まとめて変数にセット
a, b, c, d, e = num_lst
print(a, b, c, d, e)
実行結果
データ構造(dict)
コードは以下になります。
d = {'x': 10, 'y': 20}
print(d['x'])
d['z'] = 200
print(d)
# 辞書作成
d_1 = dict(a=10, b=20)
print(d_1)
print(d.keys()) # keyを確認
print(d.values()) # valueを確認
d2 = {'x': 10000, 'z': 900}
d.update(d2) # アップデート
print(d)
x = {'a': 10, 'b': 20} # 変数xにはオブジェクトID(オブジェクトのアドレス)が代入される
y = x # 別変数への代入でもオブジェクトIDが代入され、オブジェクトを共有する
y['a'] = 1000
print(x)
print(y)
x = {'a': 10, 'b': 20}
y = x.copy() # オブジェクトをシャローコピーして別オブジェクトを作ってから変数に代入する
y['a'] = 1000
print(x)
print(y)
fluits = {
'apple': 100,
'banana': 200,
'orange': 300
}
print(fluits['apple'])
実行結果
データ構造(set)
コードは以下になります。
# 集合
s = {1, 2, 3, 4, 5, 6, 7}
print(s)
a = {6, 7, 8}
print(s - a) # sからaを抜いたもの
print(a & s) # aかつb
print(a | s) # aまたはb
print(a ^ s) # 二つのもので重複していないものを出力
s.add(6)
s.add(6) # 重複はしない
s.remove(6) # 6を消せる
s.clear() # 全部消す
my_friends = {'A', 'B', 'D'}
A_friends = {'B', 'C', 'D', 'F'}
print(my_friends & A_friends) # 共通の友達
# 種類を確認する時などにも使用できる。
f = ['apple', 'banana', 'apple', 'banana']
kind = set(f) # 重複を消す。
print(kind)