見出し画像

pythonで使うあれこれとクラスの復習

f-stringsを使う

name = "田村"
age = 30
print(f"私の名前は{name}、年齢は{age}歳です")
#私の名前は田村、年齢は30歳です

f-stringsを使うとフォーマットより簡素に記載することが可能。

タプルのアンパッキング

num_taple = (1,5,10)
x,y,z = num_taple
print(x)
print(y)
print(z)
#
1
5
10

辞書のアップデート

d = {"x": 10, "y": 20}
print(d)
d2 = {"x": 1000, "y": 20, "z": 50}
print(d2)
d.update(d2)
print(d)
#
{'x': 10, 'y': 20}
{'x': 1000, 'y': 20, 'z': 50}
{'x': 1000, 'y': 20, 'z': 50}

集合型で重複している値を纏める

a = {"田村","鈴木","山田","田村"}
print(a)

b = {"鈴木"}
print(a - b)
#
{'鈴木', '山田', '田村'}
{'山田', '田村'}

リストから重複を除く

a = ["a", "b", "c", "c"]
b = set(a)
print(b)
#{'b', 'c', 'a'}


enumarate関数でidを付与

for文で書くと

test_list = ["a", "b", "c", "d","e"]
i = 0
for list in test_list:
   print(i, list)
   i += 1

#
0 a
1 b
2 c
3 d
4 e

enumerate関数を使うと

for i, list in enumerate(test_list):
   print(i, list)

#
0 a
1 b
2 c
3 d
4 e


zip関数で2つのリストを付け合せる

for文で書くと

test_list = ["a", "b", "c", "d","e"]
test_list2 = [1, 2, 3, 4, 5]
for i in range(len(test_list)):
   print(test_list[i], test_list2[i])
   
#
a 1
b 2
c 3
d 4
e 5

zip関数を使うと

for test, test2 in zip(test_list,test_list2):
   print(test, test2)

#
a 1
b 2
c 3
d 4
e 5


関数でリストを追加する

def add_list(x, l=None):
   if l is None:
       l = []
   l.append(x)
   return l
name_list = ["田村", "tamura", "たむら"]
add_list("タムラ",name_list)


引数が多い場合、*argsを使う

def say_something(word, *args):
   print(word + "=第一引数")
   for arg in args:
       print(arg)
       
say_something("田村", "タムラ", "tamura")

#
田村=第一引数
タムラ
tamura

*argsにまとめられる。

ラムダ

たとえば、以下のような小文字を大文字にするようなfuncがあるとします。

l = ["tamura", "Tam", "pachi", "PachiPachi"]
def change_words(words, func):
   for word in words:
       print(func(word))
       
def sumple_func(word):
   return word.capitalize()

change_words(l, sumple_func)

➡
Tamura
Tam
Pachi
Pachipachi

これをlambdaを使うと簡単に書ける

l = ["tamura", "Tam", "pachi", "PachiPachi"]
def change_words(words, func):
   for word in words:
       print(func(word))
       
change_words (l, lambda word: word.capitalize())

クラスの復習

class Man:

   #コンストラクタの設定
   def __init__(self, name):
       self.name = name
       print("コンストラクタ")
       
       
   #メソッド1
   def hello(self):
       print("hello:" + self.name)
       
   
   #メソッド2
   def bye(self):
       print("bye:" + self.name)
       
       
#インスタンス化1
m = Man("tamura")
#インスタンス化2
w = Man("mikako")
m.hello()
w.hello()

#
hello:tamura
hello:mikako

m.bye()
w.bye()

#
bye:tamura
bye:mikako


この記事が気に入ったらサポートをしてみませんか?