Tech

AI時代の Python 再入門 Part 1

投稿日:

はじめに

前回の記事「Claude Code が書きがちな Python コードを読めるようになる」では、Claude Code が実行するコードの中でよく出てくるパターン(内包表記や f-string など)を扱いました。今回からは少し立ち止まって、Python の文法そのものを基礎から順番に整理していきます。

Python とは何か

本題に入る前に、Python がどんな言語なのかを、他の言語と対比しながら簡単に整理しておきます。

  • インタプリタ言語である
    python3 script.py のように、ビルドの手順を挟まずソースコードをそのまま実行します。
  • 動的型付けである
    変数を使う前に型を宣言する必要がありません。同じ変数に、後から別の型の値を入れ直すこともできます。詳しくは後述します。
  • データ処理がやりやすい
    CSV や JSON ファイルの読み書きが標準ライブラリのモジュールだけで完結できます。さらに、 pandasnumpy などの外部ライブラリ使うと、データ分析や数値計算が非常に効率的に行えます。

文とブロック

Python のプログラムは、「文」(statement)と呼ばれる 1 つ 1 つの命令を、上から順に並べたものです。
多くの言語のように、文の終わりを ; で示す必要はなく、基本的には改行が文の区切りになります。ただし、丸括弧 () 、角括弧 [] 、波括弧 {} の中では、1 つの文を複数行に分けて書くことができます。
ちなみに、Python でもセミコロンを使って複数の文を 1 行に書くことはできますが、可読性が下がるため、通常は行いません。
また、複数の文をひとまとまりの「ブロック」として扱いたいときは、インデントでそれを表します。

if score >= 60: の行末にはコロン : が付いています。その次の行から、インデントされている行が「 if の条件が真のときに実行されるブロック」です。
Python では、 ifforwhilewith などは新しいスコープを作りません。そのため、これらのブロック内で代入された変数は、同じ関数やモジュール内の後続のコードからも参照できます。上の例では、 if または else のどちらかで result に必ず値が代入されるため、ブロックの後にある print() から参照できます。
一方、関数やクラスなどを定義すると、固有のローカルスコープが作られます。
なお、ブロック内の処理が一度も実行されず、変数に値が代入されなかった場合は、その変数を参照できません。

インデントは、1 段につき半角スペース 4 つが慣習です。これは、PEP 8 という Python のスタイルガイドで推奨されています。構文上は 4 スペース以外でも動作する場合がありますが、同じ階層のインデントは一貫させる必要があります。
インデントの対応が取れていない場合や、タブとスペースを不整合に混在させた場合はエラーになります。
また、コメントは # で書き始めます。

変数と型

変数への代入は = で行います。

変数名には英字、数字、アンダースコア _ のほか、一定の Unicode 文字も使えます。ただし、数字から始めることはできず、 iffor などの予約語も使用できません。

日本語などを変数名に使うこともできますが、一般的な開発では英字とアンダースコアを使うことが多いです。複数の単語からなる変数名は、 user_name のようにアンダースコアで区切る snake_case が Python の慣習です。

型は自動で決まる

Python では変数の型を宣言しません。また、再代入により別の型の値を入れることもでき、動的型付けの特徴を持っています。
ただし、型ヒントや型チェッカーを利用すると、型安全性を高めることができます。

代表的な型や値には、次のようなものがあります。

  • int … 整数( 10-3 など)
  • float … 浮動小数点数( 3.14-0.5 など)
  • str … 文字列( "hello"'こんにちは' など)
  • bool … 真偽値( True / False
  • None … 値が存在しないことなどを表す、 NoneType 型の特別な値

None は、値が「ない」状態を表現するためなどに使われます。この値を確認するときは、 == None ではなく is None を使うのが Python の慣習です。 is は、2 つの参照が同じオブジェクトを指しているかを判定します。

== と is の違い

値を比較するときには、主に ==is の 2 つの演算子がありますが、その役割は異なります。

  • == は値が等しいか(equality)を判定します。
  • is は同じオブジェクトかどうか(identity)を判定します。

None は Python において唯一無二の特別なオブジェクト(シングルトン)であるため、値の比較ではなく「そのオブジェクト自体かどうか」を判定する is None を使うのがルールです。

条件分岐とループ

if / elif / else

条件によって処理を分けるには if を使います。複数の条件を順に試すときは elif (else if を短縮した綴り)、どれにも当てはまらない場合は else を使います。

比較には == (等しい)、 != (等しくない)、 <><=>= を使います。複数の条件を組み合わせるには and / or / not を使います。

match / case

Python 3.10 以降では、値の形や内容によって処理を分けるために match を使えます。

match の後ろに調べたい値を書き、各 case に一致するかを上から順に確認します。最初に一致した case の処理だけが実行されます。
case _:_ は、どのパターンにも一致するワイルドカードで、 if 文の else に近い役割を持ちます。
match 文は、単純な値の比較だけでなく、タプルやリストなどの構造に応じた分岐にも使えます。
なお、JavaScriptのようなフォールスルーはありません。一度条件に一致すると、そのブロックのみを実行してmatch文を抜けます。
そのため、複数の値にマッチさせたい場合には `case

for

Python の for は、C 言語などにある「カウンタを回すループ」ではなく、「並んでいるものを 1 つずつ取り出すループ」です。

回数を指定して繰り返したいだけのときは、 range() と組み合わせます。

range(3)0, 1, 2 という 3 つの数を順番に生成します。終了値の 3 自体は含まれない点に注意してください。

while

条件が真である間、処理を繰り返すには while を使います。

Python には、他の言語にある do-while のような「最低 1 回は実行してから条件を判定する」構文はありません。

さいごに

今回は、Python がどんな言語かという概観から、文・インデント・コメント・変数・型、そして制御構文まで、Python の文法の土台にあたる部分を扱いました。他の言語の経験があれば、個々の概念自体は馴染みのあるものだったと思います。それでも、インデントでブロックを表すことは、Python ならではの部分として押さえておくと、この先のコードが読みやすくなるはずです。
次回は、関数を扱います。Python の関数は数値や文字列と同じように受け渡しできる「値」であることや、関数の定義と呼び出しの順序にまつわるハマりどころを中心に見ていきます。

おすすめ書籍

直感 LLM ―ハンズオンで動かして学ぶ大規模言語モデル入門 実践 LLMアプリケーション開発 ―プロトタイプを脱却し、実用的な実装に迫るための包括的な手引き LLM入門:しくみから学ぶ生成AIの基礎:

blog-page_footer_336




blog-page_footer_336




-Tech
-

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

Go言語

Golang で図形描画してみた

1 はじめに2 Golangで画像描画する方法3 ggでの画像描画3.1 導入3.2 基本的な画像描画4 ジェネレーティブしてみた5 さいごに6 おすすめ書籍 はじめに 今回は、Goで2Dグラフィック ...

iOS13ダークモード対応

1 はじめに2 一時しのぎ3 実装3.1 UI Element Colors3.2 Color Set3.3 コードで描きたい3.4 カスタムのカラーを定義する3.5 画像をモードで動的に変更したい4 ...

【iOS14】App Groups を使用して WidgetKit にデータ共有

1 はじめに2 App Groupsの準備2.1 App Groupsの許可2.2 App Groupsの使い方3 WidgetKitにデータ共有4 さいごに5 おすすめ書籍 はじめに 今回はアプリ側 ...

[Unity] Terrain(地形)を使ってみた

1 はじめに2 Terrainの追加方法3 Terrainの使い方4 Create Neighbor Terrain5 Paint Terrain5.1 Raise or Lower Terrain5 ...

[C#]Genericsの使い方をまとめてみた。その1

1 はじめに2 Genericsとは3 Genericsの例3.1 Genericsを使わない場合3.2 Genericsを使う場合4 Genericsのメリット5 さいごに6 おすすめ書籍 はじめに ...

フォロー

blog-page_side_responsive

2026年9月
 12345
6789101112
13141516171819
20212223242526
27282930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。