python研修を終えたので、その備忘録としてメモ書きをしていきたい。
混乱しやすいところを中心に書きます。
誤りなどがあれば指摘いただければと思います。
演算子
8/2 #割り算
5//4 #商
10%4 #余り
---
4
1
2
インデックス
pythonのインデックスは
0, 1, 2, 3, 4, 5,
-6,-5,-4,-3,-2,-1
で示される。
"python"[0]
----
"p"
一文字目のpが指定されている。
"python"[-1]
----
"n"
引数を-1と指定すると最後尾の"n"が返される。
スライス
"apple"[2:4]
----
"pl"
文字列[開始地点:終了地点]で文字列をスライスすることができる。開始地点のインデックス番号は含むが、終了地点のインデックス番号は含まないのがややこしいと感じた。
zipを使って辞書を作成
list_1 = [1,2,3]
list_2 = ["APPLE", "ORANGE", "WOWOW"]
dict(zip(list_1, list_2))
----
{1: 'APPLE', 2: 'ORANGE', 3: 'WOWOW'}
ループ
words = {1:"a", 2:"b", 3:"c", 4:"d", 5:"e"}
辞書型のwordsを作成
for x in words:
print(x)
----
1
2
3
4
5
for x in words.keys():
print(x)
----
1
2
3
4
5
辞書の後にkey()で辞書のキー部分を取り出すことができる。
for x in words.values():
print(x)
----
a
b
c
d
e
一方でvalue()を指定すると辞書のバリュー部分を抽出することができる。
for key, value in words.items():
print(key, value)
----
1 a
2 b
3 c
4 d
5 e
items()をwordsに追加し、key,valueとすることで辞書内で対応するペアを抽出することができる。
関数
以下が関数の最もベーシックな型。
def plus(a, b):
return a+b
plus(10, 10)
----
20
〜以下怪しい範囲〜
args → 複数の引数を受け取ることができる
def greeting(*args):
for arg in args:
print(arg)
greeting("hello", "Moimoi", "kon")
----
hello
Moimoi
kon
t=[]のようにひとまずリストでまとめてからでも、*argsで受け取ることができる
def greeting(*args):
for arg in args:
print(arg)
t = ["hello", "Moimoi", "kon"]
greeting(*t)
----
hello
Moimoi
kon
kwargs → 複数のキーワード引数を辞書化する
def haraheri(**kwargs):
print(kwargs)
haraheri(main="beef", drink="coffee")
----
{'main': 'beef', 'drink': 'coffee'}
for.items.pyでのitems()をここでも利用してみると、(**kwargs)で受け取った辞書型の引数を対応するペア同士で出力することができる。
def haraheri(**kwargs):
for kind, food in kwargs.items():
print(kind, food)
haraheri(main="beef", drink="coffee")
----
main beef
drink coffee
argsと*kwargsの併用
def menu(food, *args, **kwargs):
print(food)
print(args)
print(kwargs)
menu("apple", "banana", "orange", main="beef", drink="coffee")
----
apple
('banana', 'orange')
{'main': 'beef', 'drink': 'coffee'}
apple-food, banana/orange→*arges, main/drink→kwargsとなっている。
~~~~~~~~~~~
リスト内包表記
[i**2 for i in range(5)]
----
[0, 1, 4, 9, 16]
[i*j for i in range(1,5) for j in range(1,3)]
for i in range(1,5):
for j in range(1,3):
print(i*j)
上記2つは同様の内容を出力している。
num = [i for i in range(7)]
print(num)
[x for x in map(lambda x: "even" if x%2 == 0 else "odd", num)]
----
[0, 1, 2, 3, 4, 5, 6]
['even', 'odd', 'even', 'odd', 'even', 'odd', 'even']
map(実行したい処理, 実行対象)で行うことができる。
とりあえず今回はこの辺りで。
また次回に続きを書きます。