Python

Python入門

コードを書き、実行結果を確かめながら、Pythonの基礎を一歩ずつ学びましょう。

この講座はPython 3.10以降を対象にしています。

01

Pythonとは

Pythonは、読みやすい文法を大切にしたプログラミング言語です。Webアプリ、データ分析、AI、業務の自動化など幅広い用途で使われています。この講座では、分野を問わず必要になる言語の基礎を学びます。

Pythonでできること
  • ファイル名の整理や集計作業の自動化
  • WebサイトやWeb APIの開発
  • 表形式データの分析とグラフ作成
  • 機械学習や画像処理

最初からAI用ライブラリの使い方だけを覚えるのではなく、値、条件、繰り返し、関数を理解すると、サンプルを自分の目的に合わせて変更できるようになります。

02

Pythonを実行してみよう

公式サイトなどからPython 3をインストールし、ターミナルでバージョンを確認します。Windowsでは python、macOSやLinuxでは python3 を使う環境があります。

ターミナルCOMMAND
python3 --version

hello.py というテキストファイルを作り、次の1行を保存します。ファイル名の末尾は .py です。

hello.pyPYTHON
print("こんにちは、Python!")
実行COMMAND
python3 hello.py
実行結果OUTPUT
こんにちは、Python!
うまく動かないとき 「コマンドが見つからない」と表示されたら、PythonのインストールとPATH設定を確認します。python3 の代わりに python またはWindowsの py で動くこともあります。
03

基本の書き方

上から順番に実行される

通常、コードは上の行から順番に実行されます。文字列は引用符で囲み、数値は囲みません。文末のセミコロンは不要です。

順番を確認PYTHON
print("1番目")
print(10 + 20)
print("3番目")
実行結果OUTPUT
1番目
30
3番目

コメントとインデント

# から行末まではコメントです。条件分岐や関数の内側は、行頭を半角スペース4個で字下げします。Pythonではインデントも文法の一部です。

インデントPYTHON
# 18歳以上ならメッセージを表示
age = 20

if age >= 18:
    print("成人です")

print("確認終了")
注意 タブとスペースを混ぜたり、必要な字下げを忘れたりすると IndentationError になります。エディターの設定を「スペース4個」に揃えましょう。
04

変数とデータ型

変数は値に名前を付ける仕組みです。= の右側の値を左側の名前へ代入します。変数名には役割が分かる英単語を使い、複数語は user_name のようにアンダースコアでつなぎます。

主なデータ型PYTHON
name = "Mity"       # str: 文字列
age = 20             # int: 整数
height = 170.5       # float: 小数
is_student = True    # bool: 真偽値
memo = None          # NoneType: 値がない

print(type(name))
print(type(age))
print(type(height))
print(type(is_student))
print(type(memo))
print(f"{name}さんは{age}歳です")
実行結果OUTPUT
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'NoneType'>
Mityさんは20歳です

type()を使うと、値の型を確認できます。表示されるstrintfloatboolNoneTypeが、それぞれのデータ型です。f"..."はf文字列で、波かっこの中へ変数や式を書けます。TrueFalseNoneは先頭が大文字です。

変数は箱というより名札 Pythonの変数は値そのものを収納する箱というより、オブジェクトへ付けた名前として考えると、後でリストの変更を学ぶときに理解しやすくなります。
05

入力と型変換

input() を使うと、キーボードから文字を受け取れます。入力結果は、数字を入力しても必ず文字列です。計算前に int()float() で変換します。

年齢を受け取るPYTHON
age_text = input("年齢を入力してください: ")
age = int(age_text)
next_age = age + 1

print(f"来年は{next_age}歳です")
実行例OUTPUT
年齢を入力してください: 20
来年は21歳です
よくあるエラー int("二十")int("")ValueError になります。利用者の入力は想定どおりとは限らないため、後の「例外処理」で安全な受け取り方を学びます。
06

演算子

種類演算子
計算+ - * / // % **7 // 2 は3
比較== != > < >= <=score >= 80
論理and or notage >= 18 and has_ticket
代入= += -= *= /=total += 100
料金計算PYTHON
price = 500
count = 3
subtotal = price * count
tax_rate = 10
tax = subtotal * tax_rate // 100
total = subtotal + tax

print(f"小計: {subtotal}円")
print(f"消費税: {tax}円")
print(f"税込: {total}円")
実行結果OUTPUT
小計: 1500円
消費税: 150円
税込: 1650円
金額の端数処理 floatによる小数計算には内部的な誤差が生じる場合があります。この例は税率を整数で持ち、//で1円未満を切り捨てています。正の値ならint()math.floor()でも小数部分を切り捨てられますが、実際の金額計算では法律や業務で定められた端数処理に従ってください。
=== = は代入、== は左右が等しいかの比較です。役割が異なります。
07

条件分岐

ifelifelse で、条件に応じて実行する処理を切り替えます。条件の後ろにはコロンを書きます。

点数を判定PYTHON
score = 82

if score >= 80:
    result = "合格(よくできました)"
elif score >= 60:
    result = "合格"
else:
    result = "再挑戦"

print(result)
実行結果OUTPUT
合格(よくできました)

上から順番に判定し、最初に真になった1つだけを実行します。80点以上の条件を60点以上より先に書くことが重要です。

08

繰り返し

forとrange

range(1, 6) は1から5までの整数を順番に作ります。終了値の6は含まれません。

forPYTHON
for number in range(1, 6):
    print(f"{number}回目")
実行結果OUTPUT
1回目
2回目
3回目
4回目
5回目

while、break、continue

カウントダウンPYTHON
count = 3

while count > 0:
    print(count)
    count -= 1

print("スタート!")
無限ループ while の条件がいつまでも真だと処理が終わりません。上の例では count -= 1 を忘れないでください。break は途中終了、continue は今回だけを飛ばして次へ進みます。
09

複数の値を扱うコレクション

リスト

リストは順番のある複数の値です。位置は0から数えます。

リストPYTHON
fruits = ["りんご", "みかん", "ぶどう"]
fruits.append("もも")

print(fruits[0])
print(len(fruits))

for index, fruit in enumerate(fruits, start=1):
    print(f"{index}: {fruit}")
実行結果OUTPUT
りんご
4
1: りんご
2: みかん
3: ぶどう
4: もも

辞書

辞書はキーと値の組を保存します。存在しない可能性があるキーは get() で安全に取得できます。

辞書PYTHON
user = {"name": "Mity", "age": 20}
user["city"] = "東京"

print(user["name"])
print(user.get("email", "未登録"))

for key, value in user.items():
    print(f"{key}: {value}")

タプルと集合

タプルは作成後に要素を変更しない値、集合は重複しない値を扱うときに便利です。

タプルと集合PYTHON
point = (120, 80)
tags = {"Python", "Web", "Python"}

print(point[0])
print(tags)  # Pythonは1つだけ

内包表記

内包表記は、繰り返しながら新しいリストや辞書を簡潔に作るPythonらしい書き方です。最初は通常のfor文で処理を理解し、短く読みやすくなる場合に使いましょう。

リスト内包表記と辞書内包表記PYTHON
scores = [40, 65, 80, 95]
doubled = [score * 2 for score in scores]
passed = [score for score in scores if score >= 60]
labels = {score: ("合格" if score >= 60 else "不合格") for score in scores}

print(doubled)
print(passed)
print(labels)
実行結果OUTPUT
[80, 130, 160, 190]
[65, 80, 95]
{40: '不合格', 65: '合格', 80: '合格', 95: '合格'}
読みやすさを優先 条件や処理が複雑になる場合は、無理に一行へ詰め込まず通常のfor文を使います。
範囲外に注意 3要素のリストで使える位置は0、1、2です。fruits[3]IndexError になります。
10

関数

関数は、まとまった処理へ名前を付ける仕組みです。def で定義し、引数で値を受け取り、return で結果を返します。

関数を定義するPYTHON
def calculate_total(price: int, count: int) -> int:
    """単価と個数から合計金額を返す。"""
    return price * count


total = calculate_total(500, 3)
print(f"合計は{total}円です")
実行結果OUTPUT
合計は1500円です

: int-> int は型ヒントです。実行時に型を強制するものではありませんが、関数が何を受け取り何を返すか伝えられます。

よい関数にするコツ
  • 名前から目的が分かるようにする
  • 一つの関数へ一つの役割を持たせる
  • 画面表示と計算処理を分ける
  • 外側の変数を書き換えすぎず、結果をreturnする

デフォルト引数

初期値を持つ引数PYTHON
def greet(name: str, message: str = "こんにちは") -> str:
    return f"{message}、{name}さん"

print(greet("Mity"))
print(greet("Mity", "こんばんは"))
11

文字列を操作する

よく使う文字列操作PYTHON
text = "  apple,orange,grape  "
cleaned = text.strip()
fruits = cleaned.split(",")

print(cleaned.upper())
print(fruits)
print(" / ".join(fruits))
実行結果OUTPUT
APPLE,ORANGE,GRAPE
['apple', 'orange', 'grape']
apple / orange / grape

文字列は変更できない(イミュータブルな)値です。strip()upper() は元の文字列を書き換えず、新しい文字列を返します。

12

モジュールを使う

モジュールは関連する機能をまとめたファイルです。標準ライブラリはPythonと一緒に導入されており、import して利用できます。

標準ライブラリPYTHON
import random
from datetime import date

dice = random.randint(1, 6)
today = date.today()

print(f"サイコロ: {dice}")
print(f"今日: {today}")

random.randint(1, 6) は1から6を含む範囲から整数を返します。自作ファイルを読み込む場合は、実行時に勝手な処理が走らないよう if __name__ == "__main__": も活用します。

13

例外処理

利用者の入力やファイル操作は失敗することがあります。想定できる失敗は tryexcept で処理します。

数値入力を安全に扱うPYTHON
try:
    age = int(input("年齢: "))
except ValueError:
    print("数字で入力してください")
else:
    print(f"来年は{age + 1}歳です")
何でも捕まえない 理由なく except: とだけ書くと、プログラムの間違いまで隠してしまいます。上の例のように、予想している例外の種類を指定します。

詳しくは例外処理とテストで、エラーメッセージの読み方、独自例外、assertunittestを学びます。

14

ファイルを読み書きする

with open(...) を使うと、処理の終了時やエラー時にもファイルを自動で閉じられます。次の例で使うPath.write_text()Path.read_text()も、内部でファイルを開閉するため、自分で閉じる処理を書く必要はありません。日本語を扱うときは文字コードを明示します。

テキストを保存して読むPYTHON
from pathlib import Path

path = Path("message.txt")
path.write_text("Pythonを勉強中です。\n", encoding="utf-8")

content = path.read_text(encoding="utf-8")
print(content)
上書きに注意 write_text()は同名のファイルがあると、その内容を上書きします。既存の内容を残して末尾へ追記する場合は、詳細ページで扱うopen(..., mode="a")を使います。
実行場所 Path("message.txt") は「現在の作業ディレクトリ」を基準にします。スクリプトの場所と同じとは限りません。大切なファイルで試さず、練習用フォルダーを作りましょう。

CSVとJSONを含む詳しい操作はファイルとJSONで学べます。

15

クラス

クラスは、データとそのデータに関する操作をまとめる設計図です。クラスから作った具体的な値をインスタンスと呼びます。

商品クラスPYTHON
class Product:
    def __init__(self, name: str, price: int):
        self.name = name
        self.price = price

    def price_with_tax(self) -> int:
        return self.price * 110 // 100


book = Product("Python入門", 2000)
print(book.name)
print(book.price_with_tax())
実行結果OUTPUT
Python入門
2200
round()は一般的な四捨五入とは異なる ちょうど中間の値は偶数側へ丸めるため、round(2.5)は2、round(3.5)は4です。この例では整数のまま計算し、//で1円未満を切り捨てています。

self は操作対象のインスタンス自身です。最初からすべてをクラスにせず、同じデータと処理をひとまとめにしたいときに使います。詳しくはクラスとオブジェクトで学びます。

PRACTICE

練習問題

問題1:偶数・奇数判定

整数 number = 7 が偶数なら「偶数」、それ以外なら「奇数」と表示してください。

解答例PYTHON
number = 7

if number % 2 == 0:
    print("偶数")
else:
    print("奇数")

% 2 の余りが0なら2で割り切れます。

問題2:平均点を求める

[72, 95, 81, 68] の平均を求め、小数第1位まで表示してください。

解答例PYTHON
scores = [72, 95, 81, 68]
average = sum(scores) / len(scores)
print(f"平均: {average:.1f}点")
実行結果OUTPUT
平均: 79.0点
問題3:在庫を検索する関数

商品名を受け取り、辞書にあれば在庫数、なければ0を返す関数を作ってください。

解答例PYTHON
stocks = {"りんご": 5, "みかん": 8}

def find_stock(name: str) -> int:
    return stocks.get(name, 0)

print(find_stock("みかん"))
print(find_stock("もも"))
実行結果OUTPUT
8
0
練習の進め方 すぐ解答を開かず、まず紙に入力・処理・出力を書きます。動いたら値を変え、空のリストや存在しない商品など境界の例も試しましょう。
NEXT

次に学ぶこと

基礎を読み終えたら、次の4テーマで「小さなコード」から「管理できるプログラム」へ進みましょう。

さらに学習を広げる

目的に合わせた発展テーマ
  • 内包表記:リスト・辞書・集合を簡潔に組み立てる
  • mypy:型ヒントを使って型の不一致を静的に確認する
  • Ruff・Black:コードの問題を検査し、書式を統一する
  • Flask・Django・FastAPI:WebサイトやWeb APIを作る
  • asyncio:待ち時間のある複数の処理を非同期に進める

ツールやフレームワークを一度に覚える必要はありません。まず小さなプログラムを完成させ、その目的に必要なテーマを一つずつ選びましょう。