自由きままに楽しまないとね

こんなこと知ってますか?という幅広い雑記ブログ

【Python】変数の使い方

備忘録

Pythonを勉強する際に参考にさせていただいたサイトの内容を備忘録としてまとめたものです。
以下のPythonコードの動作確認はWindows版のバージョン「3.7」で行っております。

変数

命名規則

変数の命名規則ですが、Pythonコーディング規約によると以下のように定められています。

対象 ルール
変数 全小文字 + アンダースコア区切り

また、Pythonのインデントはスペースが推奨されています。
Python3ではスペースとタブは混同できないので注意しましょう。

参照

https://qiita.com/naomi7325/items/4eb1d2a40277361e898b

変数の宣言および代入

num = 100           # 数値
str1 = 'abc'        # 文字
str2 = "abc"        # 文字
list1 = [0, 1, 2]   # 数値配列
list2 = ["a", "b"]  # 文字列配列

変数の計算

num1 = 10

# 割り算
num2 = num1 / 3
print(num2)    # 3.3333333333333335

# 割り算(商)
num2 = num1 // 3
print(num2)    # 3

# 割り算(余り)
num2 = num1 % 3
print(num2)    # 1

参考

https://python.ms/division/
https://linus-mk.hatenablog.com/entry/2019/05/26/234642

少数の操作

import math

num1 = 10

# 切り上げ
num2 = num1 / 3
print(math.ceil(num2))     # 4

# 切り捨て
num2 = num1 / 3
print(math.floor(num2))    # 3

# 少数の四捨五入
num2 = 10.345
print(round(num2, 2))    # 10.35

型変換

# 数値変換(整数)
num1 = 10
str1 = "20"
print(num1 + int(str1))  # 30

# 数値変換(少数)
num1 = 10
str1 = "12.345"
print(num1 + float(str1))  # 22.345

# 文字列変換
num1 = 12
num2 = 34
print(str(num1) + str(num2))  # 1234

日付変換

日付⇒文字列

import datetime

now = datetime.datetime.now()
dt = now.strftime("%Y-%m-%d %H:%M:%S")

print(dt)  # 2019-12-23 12:34:56

文字列⇒日付

import datetime

now = "2019-12-23 12:34:56"
dt = datetime.datetime.strptime(now, "%Y-%m-%d %H:%M:%S")

print(type(dt) is datetime.datetime)  # True

参考

https://www.sejuku.net/blog/65214

型判定

type関数よる判定

print(type("str") is str)  # True
print(type("100") is int)  # False

type関数よる判定(複数)

print(type("str") in (str, int))  # True
print(type(12.34) in (str, int))  # False

isinstance関数よる判定

print(isinstance("str", str))  # True
print(isinstance("100", int))  # False

isinstance関数よる判定(複数)

print(isinstance("str", (str, int)))  # True
print(isinstance(12.34, (str, int)))  # False

None判定

str1 = "abc"
str2 = None
print(str1 is None)  # False
print(str2 is None)  # True

参考

https://note.nkmk.me/python-type-isinstance/

型の種類

int   # 整数
float # 少数
str   # 文字列
bool  # 真偽
list  # 配列、リスト
tuple # タプル
dict  # 辞書
None  # 値が存在しない

参考

https://dot-blog.jp/news/python-object-type/

配列

宣言

list1 = []         # 空の配列
list2 = [10, 20]   # 初期値あり
print(list2[0])    # 10

要素の追加

リスト追加

list1 = [1, 2]
list2 = list1 + [10, 20]
print(list2)       # [1, 2, 10, 20]

末尾追加

list1 = [1, 2]
list1.append(10)
print(list1)       # [1, 2, 10]

割り込み追加

list1 = [10, 20, 30]
list1.insert(1, 55)
print(list1)       # [10, 55, 20, 30]

要素の削除

list1 = [10, 20, 30]
list1.pop(1)
print(list1)       # [10, 30]

素数の取得

list1 = [11, 22, 33]
print(len(list1))   # 3

要素の検索

存在チェック

list1 = [11, 22, 33, 44, 55]
print(33 in list1)          # True
print("33" in list1)        # False
print(int("33") in list1)   # True

要素の位置を取得

list1 = [11, 22, 33, 44, 55]
print(list1.index(33))      # 2
print(list1.index(123))     # ValueError

検索の値に一致する要素の個数を取得

list1 = [11, 22, 11, 33, 22, 11]
print(list1.count(11))      # 3
print(list1.index(55))      # ValueError

参考

https://udemy.benesse.co.jp/development/web/python-list.html

タプル

宣言

tuple1 = ()       # 空のタプル
tuple2 = ("北",)  # 1つの場合は最後にカンマが必要
tuple3 = ("北", "南")

値の参照

tuple1 = ("北", "東", "南", "西")
print(tuple1[0])    # 北
print(tuple1[2:])   # ("南", "西")
print(tuple1[1:3])  # ("東", "南")

参照

https://www.lifewithpython.com/2017/12/python-tuple-list-difference.html

辞書

宣言

dict1 = {}     # 空の辞書
dict2 = {"key1": 11, "key2": 22}

生成

list1 = [("key1", 11), ("key2", 22)]
dict1 = dict(list1)
print(dict1)   # {'key1': 11, 'key2': 22}
keys = ["key1", "key2"]
vals = [11, 22]
dict1 = dict(zip(keys, vals))
print(dict1)   # {'key1': 11, 'key2': 22}
keys = ["key1", "key2"]
vals = [11]
dict1 = dict(zip(keys, vals))
print(dict1)   # {'key1': 11}

値の参照

dict1 = {"key1": 11, "key2": 22}
print(dict1["key1"])  # 11

参照

https://www.headboost.jp/python-everything-to-know-about-dict/

※間違い等あればコメントにてご指摘ください