Python基礎いろいろ

さーて、本日はPythonの基本的な文法のまとめだよー!

1. Pythonは動的型付

    a = 10
    b = 'string'
    print(type(a))
    print(type(b))

と、いうわけで、上記のように、変数の宣言時に型の宣言は必要ない。
(JavaではintとかStringとかで宣言してるよね。) 変数の型を調べるときはtype()を使用する。

<class 'int'>
<class 'str'>

2. 文字列

2.1 変数の宣言

text = 'text'

2.2 文字列の取り出し(スライス)

    print(text[1]) #e
    print(text[0:2]) #te

string[x:y]とすると、x番目からy-1番目までの文字列が取得できる。

2.3 文字列の分割

    text2 = 'i have a apple'
    print(text2.split(" "))

['i', 'have', 'a', 'apple']

2.4 文字列の結合

    arr = ['one','two','three','four']
    print('_'.join(arr))

one_two_three_four

2.5 文字列中の文字の探索

    text = 'i have a pen and apple'
    print(text.find('apple'))

17

3. コレクション

コレクションには、リスト・タプル・辞書・集合の4種がある。 以下、順に見ていく。

3.1 リスト

    array = ['abc', 'def', 'ghi']
3.1.2 リストの中身の変更
    array[0] = 'jkl'
    print(array)
3.1.3 リストもスライス
    array[0:2]

['jkl', 'def']

3.1.4 リスト要素の削除

削除にはpop()もしくはdel(index)を使用する

   a = ['i','have','pen']
   a.pop() #末尾要素の削除
   a.del(2)#指定要素の削除
3.1.5 リストへの要素の追加
   a.append('!')
   a.insert(2, 'ooo')

3.1.6 リストの長さ
   len(a)

3.2 タプル

ほぼリストと一緒。ただし、 要素の変更ができないことには注意する!

   a = ('one', 'two', 'three')#タプルは()で作成する
   a[2] = 'error'
TypeError: 'tuple' object does not support item assignment

要素を変更しようとすると、こんなエラーが出る!

3.3 辞書

{キー:値}でデータを保持するデータ構造。
JavaのMapと似てる。

3.3.1 辞書の生成
   d = {'left':'apple', 'right':'pen'}
3.3.2 キーがあるか
   'left' in d
3.3.3 辞書の一覧
   d.keys() #キーの一覧を取得
   d.values() #値の一覧を取得

といっても、上記のままではオブジェクトが返却されるだけなので、
普通は以下のようにリストやタプルにして使用する。

   list(d.keys()) #キーをリストに
   tuple(d.values()) #値をタプルに

3.4 集合

値のないキーだけの集合みたいなもん。
要素の重複は許されないぞ。

3.4.1 生成
   s = {'abc', 'def', 'ghi', 'abc'}
   print(s) #{'abc', 'def', 'ghi'} abcの重複が排除される

4. 制御構文

どんな言語でもおなじみの条件分岐、繰り返しなど

4.1 条件分岐 if, else , elif

何はともあれ書いてみるのが一番。

       if a > 10 :
           print('over 10')
       elif a < 10 :
           print('under 10')
       else :
           print('just 10')

4.2 繰り返し

pythonには繰り返しを実現するのに二つの方法がある。 以下順に!

4.2.1 while文

while文は条件に合致する間だけ 処理を実行する制御文。
以下のようにカウンタを使用した繰り返しはwhileが適している。

    c = 10
    while c > 0 :
        print(c)
        c = c - 1


4.2.2 for文

一方、for文は以下のようにリストや辞書などのコレクションを走査する場合に 用いる。

    arr = ['one','two','three','four']
    for n in arr :
        print(n)


5. 関数

defを使って定義したものがpythonでは関数としてみなされる。 以下、いろいろな使い方がある。

5.1 位置引数

def plus(a, b):
    print(a + b)

5.2 キーワード引数

上記の位置引数で例示したplus(a, b)をキーワード引数として呼び出すとこのようになる。
plus()で定義した仮引数のa, bそれぞれに値を指定することができる。

plus(b = 'two', a = 'one') #onetwo

5.3 デフォルト引数

引数が渡されなかった場合に、デフォルトで使用する実引数を定義することができる。
呼び出しもとで引数を省略した場合にはこの値が使用される。

def square(a, b=2):
    print(a ** b)

square(3) #9 ※3の2乗が計算される
square(3, 3) #27 ※3の3乗が計算される

5.4 可変長引数(タプル引数)

仮引数に*を付けると、引数にタプルを使用することができる。この方法で可変長引数が実現できる。

def tfunc(*t):
    print(t)
    for n in t:
        print(n)

tfunc('apple', 'lemon', 'orange', 'grape')

5.5 辞書引数

仮引数に**を付けると引数を辞書で受け取ることができる。

def dicFunc(**dic):
    print(dic)
    for n in list(dic.values()):
        print(n)


dicFunc(one='いち', two='に', three='さん')

5.6 ジェネレータ

反復処理で使用できる特殊な関数。
リストとの違い?知らん。

def gfunc(a,b,c):
    yield a
    yield b
    yield c

for v in gfunc('apple','strawberry','cream'):
    print(v)