LoginSignup
0
2

More than 1 year has passed since last update.

python研修の振り返り①

Last updated at Posted at 2021-05-07

python研修を終えたので、その備忘録としてメモ書きをしていきたい。
混乱しやすいところを中心に書きます。
誤りなどがあれば指摘いただければと思います。

演算子

演算子.py
8/2 #割り算
5//4 #商
10%4 #余り
---
4
1
2

インデックス

pythonのインデックスは

 0, 1, 2, 3, 4, 5,
-6,-5,-4,-3,-2,-1

で示される。

index.py
"python"[0]
----
"p"

一文字目のpが指定されている。

index.py
"python"[-1]
----
"n"

引数を-1と指定すると最後尾の"n"が返される。

スライス

スライス.py
"apple"[2:4]
----
"pl"

文字列[開始地点:終了地点]で文字列をスライスすることができる。開始地点のインデックス番号は含むが、終了地点のインデックス番号は含まないのがややこしいと感じた。

zipを使って辞書を作成

words.py
list_1 = [1,2,3]
list_2 = ["APPLE", "ORANGE", "WOWOW"]
dict(zip(list_1, list_2))
----
{1: 'APPLE', 2: 'ORANGE', 3: 'WOWOW'}

ループ

words.py
words = {1:"a", 2:"b", 3:"c", 4:"d", 5:"e"}

辞書型のwordsを作成

for.py
for x in words:
  print(x)
----
1
2
3
4
5
for.key().py
for x in words.keys():
  print(x)
----
1
2
3
4
5

辞書の後にkey()で辞書のキー部分を取り出すことができる。

for.values().py
for x in words.values():
  print(x)
----
a
b
c
d
e

一方でvalue()を指定すると辞書のバリュー部分を抽出することができる。

for.items().py
for key, value in words.items():
  print(key, value)
----
1 a
2 b
3 c
4 d
5 e

items()をwordsに追加し、key,valueとすることで辞書内で対応するペアを抽出することができる。

関数

以下が関数の最もベーシックな型。

def.py
def plus(a, b):
  return a+b

plus(10, 10)
----
20

〜以下怪しい範囲〜
args → 複数の引数を受け取ることができる

args.py
def greeting(*args):
  for arg in args:
    print(arg)

greeting("hello", "Moimoi", "kon")
----
hello
Moimoi
kon

t=[]のようにひとまずリストでまとめてからでも、*argsで受け取ることができる

args2.py
def greeting(*args):
  for arg in args:
    print(arg)

t = ["hello", "Moimoi", "kon"]
greeting(*t)
----
hello
Moimoi
kon

kwargs → 複数のキーワード引数を辞書化する

kwargs.py
def haraheri(**kwargs):
  print(kwargs)

haraheri(main="beef", drink="coffee")
----
{'main': 'beef', 'drink': 'coffee'}

for.items.pyでのitems()をここでも利用してみると、(**kwargs)で受け取った辞書型の引数を対応するペア同士で出力することができる。

kwargs2.py
def haraheri(**kwargs):
  for kind, food in kwargs.items():
    print(kind, food)

haraheri(main="beef", drink="coffee")
----
main beef
drink coffee

argsと*kwargsの併用

args_kwargs.py
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となっている。
~~~~~~~~~~~

リスト内包表記

リスト内包表記.py
[i**2 for i in range(5)]
----
[0, 1, 4, 9, 16]
リスト内包表記1.py
[i*j for i in range(1,5) for j in range(1,3)]
リスト内包表記1'.py
for i in range(1,5):
  for j in range(1,3):
    print(i*j)

上記2つは同様の内容を出力している。

map()とlambdaを使ったリスト内包表記.py
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(実行したい処理, 実行対象)で行うことができる。

とりあえず今回はこの辺りで。
また次回に続きを書きます。

0
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2