2022-09

Python

【Python】datetimeモジュールで日付・時刻を扱う

こんにちは、かつコーチです。「今日の日付を取得したい」「日付の文字列を、扱いやすい形式に変換したい」そんなとき、Pythonでは標準ライブラリのdatetimeモジュールを使います。「datetime.now()とdate.today()は...
Python

【Python】型ヒント(Type Hints)の書き方入門

こんにちは、かつコーチです。チームで開発しているコードに、def greet(name: str) -> str:のような記述を見かけて、「これは何のためにあるのか」と気になったことはないでしょうか。「型ヒントを書いても、実行結果は変わらな...
Python

【Python】コンテキストマネージャ(with文)の仕組みと自作方法

こんにちは、かつコーチです。with open("file.txt") as f:というコードは頻繁に書くものの、裏側の仕組みまでは説明できない、という方は少なくないと思います。「なぜwithを使うとファイルを閉じ忘れないのか」「自分でwi...
Python

【Python】ジェネレータとyieldの使い方

こんにちは、かつコーチです。大きなファイルを読み込む処理を書いていて、メモリを大量に消費してしまった経験はないでしょうか。「yieldってreturnと何が違うの」「ジェネレータを使うと何が嬉しいのか分からない」そう感じている方も多いと思い...
Python

【Python】ラムダ式とmap・filter・reduceの使い方

こんにちは、かつコーチです。他人が書いたPythonのコードを読んでいて、lambda x: x * 2のような記述に出くわし、手が止まった経験はないでしょうか。「lambdaって何」「mapやfilterは内包表記と何が違うの」そう感じて...
Python

【Python】プロパティ(@property)でgetter/setterを実装する方法

こんにちは、かつコーチです。他の言語からPythonに来た方が戸惑いやすいのが、getter/setterの書き方の違いです。「JavaみたいにgetName()、setName()って書かなくていいの?」「@propertyってdecor...
Python

【Python】デコレータの基本:関数を拡張する仕組みを解説

こんにちは、かつコーチです。Pythonのコードを読んでいると、関数の上に@から始まる記述がついているのを見かけることがあります。「この@login_requiredみたいなのは何?」「デコレータって難しそうで避けてきた」そう感じている方も...
Python

【Python】継承とオーバーライドの書き方をわかりやすく解説

こんにちは、かつコーチです。クラスの基本を覚えると、次に気になってくるのが継承です。「似たクラスを何個も作るのが面倒」「共通の処理はまとめたいけど、一部だけ変えたい」そんな悩みを解決してくれるのが、継承とオーバーライドという仕組みです。この...
Python

【Python】クラスとオブジェクト指向の基本をわかりやすく解説

こんにちは、かつコーチです。Pythonの学習を進めていくと、必ず出てくるのがクラスという概念です。「classって何のために使うの?」「selfって何を指しているの?」このあたりで挫折しかけた経験がある方も、少なくないのではないでしょうか...
Python

【Python】スライスの応用テクニック(逆順・間引き等)を解説

こんにちは、かつコーチです。Pythonのスライスは、リストの基本操作としてlistのような書き方をすでに使っている方も多いと思います。ただ、スライスにはという第3の要素があることをご存じでしょうか。「リストを逆順にしたい」「1つおきに要素...
Python

【Python】collections.defaultdictで初期値付き辞書を扱う

こんにちは、かつコーチです。Pythonで辞書にデータを追加していく処理を書いていると、KeyErrorに何度も遭遇した経験はありませんか。「キーが存在するかどうかを毎回チェックするのが面倒」そんな悩みを解決してくれるのがcollectio...
Python

【Python】collections.Counterで要素の出現回数を数える

こんにちは、かつコーチです。「リストの中で、どの要素が何回出てきたか数えたい」そんなとき、通常の辞書を使って自力でカウント処理を書いた経験はありませんか。実はcollections.Counterを使えば、その処理をたった1行で済ませられま...
Python

【Python】enumerate()でインデックス付きループを書く

こんにちは、かつコーチです。リストをループしながら「今何番目の要素か」を知りたい場面はよくあります。range(len(リスト))を使って何とか書いている方もいるのではないでしょうか。この記事では、range(len())との比較を交えなが...
Python

【Python】zip()で複数のリストをまとめて処理する

こんにちは、かつコーチです。「名前のリストと年齢のリストがあるけど、これを一緒にループしたい」そんな場面で役立つのがzip()です。インデックスを使って無理やり結合するコードを書いた経験がある方も多いのではないでしょうか。この記事では、zi...
Python

【Python】sorted()とsort()でリストを並び替える

こんにちは、かつコーチです。Pythonでリストを並び替えようとすると、必ず出てくるのがsorted()とsort()です。「名前が似ているけど、何が違うの?」「どっちを使えばいいのか毎回迷う」そんな悩みを持つ初心者の方は多いと思います。こ...
Python

【Python】Pythonの辞書内包表記・セット内包表記の書き方をリストとの違いから解説

こんにちは、かつコーチです。前回はリスト内包表記を解説しましたが、今回はその応用編として辞書内包表記とセット内包表記を取り上げます。Pythonでは、リストだけでなく辞書(dict)やセット(set)についても、内包表記を使って1行で作成で...
Python

【Python】Pythonのリスト内包表記の書き方と使いどころを徹底解説

こんにちは、かつコーチです。今回は、Pythonらしいコードを書くうえで欠かせないリスト内包表記を解説します。リスト内包表記とは、for文を使ったリストの生成処理を、1行で簡潔に書ける構文のことです。他の人が書いたPythonコードを読んで...
Python

【Python】Pythonの三項演算子とwalrus演算子(:=)の使い方をやさしく解説

こんにちは、かつコーチです。今回は、コードを短く読みやすくしてくれる2つの演算子、三項演算子とwalrus演算子(:=)を解説します。どちらも「知らなくても書けるが、知っていると一気にコードがスッキリする」タイプの構文です。私も最初にこの2...
Python

【Python】Pythonのモジュールとインポートの基本!import文と自作モジュールの作り方

こんにちは、かつコーチです。今回は、Pythonを学び始めると必ず出てくるimportについて、基本から丁寧に解説します。モジュールとは、変数や関数、クラスなどをまとめて保存したPythonのファイル1つのことです。Pythonでは、便利な...
Python

【Python】Pythonのスコープとは?グローバル変数・ローカル変数の違いとglobal文の使い方

こんにちは、かつコーチです。今回は、Pythonで関数を書き始めた人がほぼ全員一度はつまずく「スコープ」について解説します。スコープとは、変数が参照できる範囲のことです。「関数の中で定義した変数が、関数の外から見えない」「逆に、関数の外の変...