目次

基本構文

コメント

#記号やヒアドキュメントを使用する。

# 1行コメント
a = 1    # 行の途中からコメントにすることも可能
 
"""
ヒアドキュメントを変数に代入しないことで
コメント扱いにすることが可能。
"""

命令文の終了

命令文の終了はセミコロン(;)を使用する。

a = 1; b = 2; c = 3;
d = 4                   # 1行に1命令の場合、省略可能

演算子

分類 種類 演算子 使用例
代入演算子 加算 += 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
論理演算子 論理積 and (a > b) and (b < c)
論理和 or (a > b) or (b < c)
否定 not not(a < b)
ビット演算子 論理積 & a & b
論理和 | a | b
排他的論理和 ^ a ^ b
ビット反転 ~ ~a
左ビットシフト << a << 1
右ビットシフト >> a >> 1

代入演算子

・・・

比較演算子

・・・

論理演算子

論理演算子and, or, notでは、bool型True, Falseだけでなく、数値/文字列/リストなども真偽値として評価される。

評価結果 種類
False ・bool型のFalse
・None
・数値の0(int)または0.0(float)
・空文字列''
・空コンテナ(リスト、タプル、辞書など)[], (), {}
True 上記以外

論理演算の結果はbool関数で取得可能。ただし'0'や’False'を評価するには、distutils.util.strtobool()を使用する。

ビット演算子

・・・

関数

関数呼び出し

Pythonには関数とメソッドの2種類存在

種類 説明 呼び出し方
関数 - 関数名(引数) print(“aiueo”)
メソッド - データ.メソッド名(引数) -

関数定義

# 引数なし
def hello1():
    print("Hello !")
 
 
# 引数あり
def hello2(name1, name2):
    print(f"Hello {name1} and {name2} !")
 
 
# 引数のデフォルト値あり
def hello3(name = "foobar"):
    print(f"Hello {name} !")
 
 
# 戻り値あり
def calc1(height, weight):
    ret = height * weight
    return ret                     # 値の返却
 
a = calc2(100 * 200)               # 呼び出し
 
 
# 無効な戻り値を戻したい場合
def calc2(i, j)
    if i < 100:
        return None                # 無効値という意味でNoneを返す
    return height * weight

リストなど

リスト

要素を[]の中で記述して定義する。

a = [ 1, 2, 3, 4, 5 ]                       # 数値のリスト
b = [ "aaa", "bbb", "ccc" ]                 # 文字列のリスト
c = [ 1, "aaa", 2, "bbb", 3, "ccc" ]        # 数値、文字列の混在も可能
d = []                                      # 空のリスト

他の型(文字列やrange())からリストを生成する場合、list()を使用する。

s1 = list("Hello")                          # [ 'H', 'e', 'l', 'l', 'o' ]のリストが生成
s2 = list(range(0, 3))                      # [ 0, 1, 2 ]のリストが生成
s3 = list()                                 # []の空リストが生成

複数のリストを纏めた新しいリストを作成する場合、zip()やenumerate()を使用する。

s1 = [ 1, 2, 3 ]
s2 = [ 4, 5, 6 ]
s3 = [ 7, 8, 9 ]
tmp1 = zip(s1, s2, s3)
t1 = list(tmp1)                             # [ ( 1, 2, 3 ), ( 4, 5, 6 ), ( 7, 8, 9 ) ]のリストが生成
                                            # 縦に要素が結合されるので注意
 
s4 = [ "aaa", "bbb", "ccc" ]
tmp2 = enumerate(s4)
t2 = list(tmp2)                             # [ ( 0, "aaa" ), ( 1, "bbb" ), ( 2, "ccc" ) ]のリストが生成
tmp3 = enumerate(s4, 1)
t3 = list(tmp3)                             # [ ( 1, "aaa" ), ( 2, "bbb" ), ( 3, "ccc" ) ]のリストが生成
参照
s1 = [ 1, 2, 3, 4, 5 ]
t1 = s1[0]                                  # 0番目の要素(1)を取得
t2 = s1[1:3]                                # 1番目~3番目の要素[2, 3]を取得
t3 = s1[0:5:2]                              # 0番目~5番目の要素を増分2で取得[1, 3, 5]
 
u1, u2, u3, u4, u5 = s1                     # s1の各要素を先頭から順番にu1~u5変数へ代入
追加
s1 = []
s1.append("aaa")                            # [ "aaa" ]
s1.append("bbb")                            # [ "aaa", "bbb" ]
s1.append("ccc")                            # [ "aaa", "bbb", "ccc" ]
s1.insert(1, "ddd")                         # [ "aaa", "ddd", "bbb", "ccc" ]
更新
s1 = [ "aaa", "bbb", "ccc" ]
s1[2] = "ddd"                               # [ "aaa", "ddd", "ccc" ]
削除
s1 = [ "aaa", "bbb", "ccc" ]
s1.pop()                                    # [ "aaa", "bbb" ]
s1.pop(0)                                   # [ "bbb" ]
多次元リスト

[]を入れ子にすることで多次元リストの作成が可能。

s1 = [ [ 1, 2 ], [ 3, 4 ], [ 5, 6 ] ]       # 2次元リスト

タプル

タプルはリストと異なる定義後は要素の書き換えができない。定数値や辞書のキーに使用する。

要素を()の中で記述して定義する。

a = ( 1, 2, 3, 4, 5 )                       # 数値のタプル
b = ( "aaa", "bbb", "ccc" )                 # 文字列のタプル
c = ( 1, "aaa", 2, "bbb", 3, "ccc" )        # 数値、文字列の混在も可能
d = ( 1, )                                  # 要素が1つの場合、後ろに,(カンマ)が必要
e = ()                                      # 空のタプル
f = a + b                                   # 既存のタプルから新しいタプルを作成することも可能
g = a * 2                                   # 同上

他の型(文字列やrange())からリストを生成する場合、tuple()を使用する。

s1 = touple("Hello")                          # ( 'H', 'e', 'l', 'l', 'o' )のタプルが生成
s2 = touple(range(0, 3))                      # ( 0, 1, 2 )のタプルが生成
s3 = touple()                                 # ()の空タプルが生成
参照
s1 = ( 1, 2, 3, 4, 5 )
t1 = s1(0)                                  # 0番目の要素(1)を取得
t2 = s1(1:3)                                # 1番目~3番目の要素(2, 3)を取得
t3 = s1(0:5:2)                              # 0番目~5番目の要素を増分2で取得(1, 3, 5)
 
u1, u2, u3, u4, u5 = s1                     # s1の各要素を先頭から順番にu1~u5変数へ代入

セット

要素を{}の中で記述して定義する。セットは順序性を持たないため、重複する要素は登録できない。またスライスを使用した要素の抽出もできない。

a = { 1, 2, 3, 4, 5 }                       # 数値のセット
b = { "aaa", "bbb", "ccc" }                 # 文字列のセット
c = { 1, "aaa", 2, "bbb", 3, "ccc" }        # 数値、文字列の混在も可能
# d = {}                                    # この記述で空のセットは生成できない。後述のset()を使用する

他の型(文字列やrange())からリストを生成する場合、set()を使用する。

s1 = set("Hello")                           # { 'H', 'e', 'l', 'l', 'o' }のセットが生成
s2 = set(range(0, 3))                       # { 0, 1, 2 }のセットが生成
s3 = set()                                  # {}の空セットが生成
追加
s1 = set()
s1.add("aaa")                               # { "aaa" }
s1.add("bbb")                               # { "aaa", "bbb" }         ※順序性は保証しない
s1.add("ccc")                               # { "aaa", "bbb", "ccc" }  ※順序性は保証しない
削除
s1 = { "aaa", "bbb", "ccc" }
s1.remove("bbb")                           # [ "aaa", "ccc" ]
存在判定
s1 = { "aaa", "bbb", "ccc" }
if "bbb" in s1:                            # s1に"bbb"が存在すれば、Trueとなる
    print("bbb is exists.")

辞書

キーと値を:(コロン)で区切り、{}の中で記述して定義する。同名のキーを指定した場合、後勝ちで上書きされる。

a = { "foo": 1, "bar": 2, "hoge": 3 }                   # 値が数値
b = { "foo": "aaa", "bar": "bbb", "hoge": "ccc" }       # 値が数値
c = { "foo": "aaa", "bar": 2, "hoge": 3 }               # 値が数値
d = {}                                                  # 空の辞書を生成
追加・参照
# 追加
s1 = {}
s1["foo"] = 1                               # { "foo": 1 }
s1["bar"] = 2                               # { "foo": 1, "bar": 2 }
s1["hoge"] = 3                              # { "foo": 1, "bar": 2, "hoge": 3 }
 
# 参照
t1 = s1["bar"]                              # t1に2が代入

インポート

特定の関数を使用する場合、モジュールのインポートが必要。

import math          # ceil関数を使用するためのインポート
 
print(math.ceil(a))