Pythonとは、少ないコードで読みやすく書ける汎用プログラミング言語のことで、データ収集・ファイル処理・業務の自動化・AI開発まで、ブラウザの外側の作業を幅広く担当します。HTML・CSS・JavaScriptでサイトを作れる人にとっては、「画面の外の作業」を自分の手に取り戻すための言語だと考えると位置づけがはっきりします。
ところが、Pythonの入門記事の多くはプログラミング完全未経験者に向けて書かれています。変数とは何か、繰り返しとは何かという説明から始まるため、JavaScriptで変数もループも関数も書いてきた人にとっては遠回りになります。知りたいのは「変数とは」ではなく、「let は何になるのか」「forEach に当たるものは何か」という差分のはずです。
この記事では、Pythonで何ができるのかを用途別に整理したうえで、JavaScriptとの構文の違いを対比表で示し、基礎文法を6つの練習問題で確認します。環境構築でつまずかないよう、インストールなしでブラウザだけで実行できる練習アプリも用意しました。サーバー側の全体像から知りたい方は バックエンドとは?サーバー・DB・APIの全体像 を先に読むと、Pythonがどの位置にある技術なのかが掴みやすくなります。
Pythonとは?JavaScriptを書ける人の視点で捉え直す
Pythonは1991年に登場した汎用プログラミング言語です。設計思想として読みやすさを重視しており、同じ処理を書いたときのコード量が他の言語より少なくなる傾向があります。この「読みやすさ優先」という性格が、後述するインデントの規則にそのまま表れています。
JavaScriptとの最大の違いは実行される場所です。JavaScriptはブラウザという実行環境が最初から用意されていて、HTMLに書けばその場で動きます。一方Pythonにはブラウザに当たる標準の入れ物がなく、自分のパソコンやサーバーに実行環境を用意して動かします。逆に言えば、ブラウザの外で起きること全部がPythonの担当範囲です。
利用状況も確認しておきます。Stack Overflow Developer Survey 2025によると、この設問に回答した31,771人のうちPythonを使っていると答えた割合は57.9%で全体の4位、JavaScriptは66%で1位でした。同調査ではPythonが2024年から2025年にかけて7ポイント上昇したと報告されており、伸び幅の大きい言語でもあります。
Web制作者がPythonを学ぶ意味は、キャリアチェンジではありません。フロントは書けるが、その手前と後ろが空白になっている状態を埋めることです。競合サイトの見出しを100件集める、納品前に画像を一括でリサイズする、アクセスログを月次で集計する。こうした「毎回手でやっている作業」が、Pythonでは十数行のコードになります。
Pythonでできること
Pythonでできることは幅広いのですが、Web制作の仕事に近い順で並べると優先順位がはっきりします。JavaScriptでも代替できるかどうかを併記したので、「わざわざ別の言語を覚える価値があるか」を判断する材料にしてください。
| できること | 具体例 | JavaScriptでも可能か |
|---|---|---|
| Webスクレイピング | 競合サイトの見出し・価格の収集 | 可能(Puppeteer等)だが記述量が多い |
| 画像・ファイルの一括処理 | 数百枚のリサイズ・圧縮・リネーム | 可能だがPythonの方が短い |
| 業務データの集計 | CSV・Excelの読み書きと自動集計 | 不得意(Excel操作の資産が少ない) |
| API連携・定期実行 | 外部サービスの取得と自動投稿 | 可能(得意分野) |
| Webアプリ開発 | Django・Flaskでの管理画面や業務システム | 可能(Node.js・Next.js) |
| AI・機械学習 | 画像分類・自然言語処理・データ分析 | ほぼ不可能(ライブラリがPython前提) |
サイトのデータを集める(スクレイピング)
Webページを取得して、必要な部分だけ抜き出す処理です。競合調査で「上位10サイトのh1をすべて集める」といった作業が、手作業からコードに変わります。requestsでページを取得し、BeautifulSoupで要素を選ぶのが定番の組み合わせです。CSSセレクタがそのまま使えるので、Web制作者にとっては入りやすい分野です。
ただし取得先サイトの利用規約と robots.txt を必ず確認してください。アクセス間隔を空けずに大量取得すると相手のサーバーに負荷をかけます。技術的にできることと、やってよいことは別です。
画像やファイルを一括で処理する
納品前に「幅1200pxに揃えて、WebPに変換して、連番でリネームする」といった作業です。1枚ずつ画像編集ソフトで開くと数時間かかる処理が、Pillowというライブラリを使えば数十行で終わります。フォルダ内のファイルを順に処理する書き方さえ覚えれば、対象が画像でもPDFでもテキストでも同じ形で応用できます。
CSV・Excelの集計を自動化する
アクセス解析のエクスポート、問い合わせフォームの受信データ、広告の実績レポート。Web制作の周辺には表形式のデータが大量にあります。pandasを使うと、複数ファイルの読み込み・結合・集計・並び替えが数行で書けます。この領域はJavaScriptに同等の資産がなく、Pythonを選ぶ理由がはっきりしている分野です。
AI・機械学習を扱う
画像分類、文章の分類や要約、数値予測といった処理です。この分野の主要なライブラリはPythonを前提に作られており、他の言語からは扱いにくいのが実情です。生成AIのAPIを呼ぶだけならJavaScriptでも書けますが、モデルを自分で学習させたりデータを前処理したりする段階になるとPythonが必要になります。AIを「使う側」から「組み込む側」に回りたい場合の必須言語だと考えてください。
JavaScriptとPythonの違いを構文で見る
ここが本記事の中心です。JavaScriptを書ける人がPythonを覚えるとき、必要なのは概念の学習ではなく書き方の置き換えです。よく使うものを並べて対応させます。
| やりたいこと | JavaScript | Python |
|---|---|---|
| 変数の宣言 | let name = "太郎"; | name = "太郎" |
| 文字列に変数を埋める | `${name}さん` | f"{name}さん" |
| 条件分岐 | if (x > 5) { } | if x > 5: |
| そうでなければ | else if | elif |
| 回数の繰り返し | for (let i = 0; i < 5; i++) | for i in range(5): |
| 配列・リスト | [1, 2, 3] / push() | [1, 2, 3] / append() |
| オブジェクト・辞書 | { name: "太郎" } | {"name": "太郎"} |
| 関数の定義 | function f(x) { return x; } | def f(x): のあとに return x |
| 要素数 | arr.length | len(arr) |
| 真偽値 | true / false | True / False |
| 値がないこと | null / undefined | None |
| かつ・または・否定 | && / || / ! | and / or / not |
| コメント | // コメント | # コメント |
インデントがブロックを決める
JavaScript経験者が最初に戸惑うのがこれです。JavaScriptでは波かっこがブロックの範囲を決め、インデントは見た目を整えるためのものでした。Pythonではインデントそのものが構文で、ずれると意味が変わるかエラーになります。
// JavaScript:波かっこが範囲を決める
if (score >= 80) {
console.log("合格");
}# Python:コロンと字下げが範囲を決める
if score >= 80:
print("合格")字下げは半角スペース4つが標準です。エディタの設定でタブとスペースが混ざると、見た目は同じでもエラーになります。VS Codeを使っているなら、Pythonファイルを開いたときに画面右下が「スペース: 4」になっているかを確認しておくと事故が減ります。
セミコロンと変数宣言のキーワードがない
Pythonには let も const も var もありません。名前に値を代入した時点で変数が生まれます。行末のセミコロンも不要です。書けばエラーにはなりませんが、Pythonらしい書き方ではないので付けません。
宣言キーワードがないぶん、「再代入できない定数」を言語のしくみとしては作れません。慣習として、変更しない値は MAX_COUNT のように大文字で書いて「触らない約束」を示します。const に慣れているとゆるく感じますが、Pythonはこうした部分を書き手の合意に任せる設計です。
命名規則がsnake_caseになる
JavaScriptでは userName のようなcamelCaseが標準でしたが、Pythonでは user_name のようにアンダースコアで区切るsnake_caseが標準です。動作には影響しませんが、他人のコードを読むときや自分のコードを読んでもらうときに揃っていないと違和感が出ます。ファイル名も同様にsnake_caseで付けます。
Pythonを動かす環境を用意する
環境構築は入門者が最も脱落しやすい場所です。結論から言うと、最初はインストールせずにブラウザで書き始めてかまいません。文法を確かめる段階でパスやバージョンの問題に時間を取られるのは、学習の順序として非効率です。
まずブラウザで試す(インストール不要)
本記事の練習問題は、この記事の最後にあるPython練習アプリでそのまま実行できます。コードを書いて実行ボタンを押すと、その場で出力とエラーが表示されます。インストールもアカウント登録も要りません。文法を覚える段階では、この形が最短です。
自分のパソコンに入れる
ファイルを扱ったり外部ライブラリを使ったりする段階になったら、Python公式サイトのダウンロードページからインストールします。2026年8月時点の最新版は3.14系です。バージョンは頻繁に上がるので、細かい番号を追うより「3系の新しいものを入れる」と考えておけば十分です。
- macOS:python.orgの公式インストーラを使う。システムに最初から入っているPythonはOSが使うものなので触らない
- Windows:公式インストーラの最初の画面で「Add python.exe to PATH」に必ずチェックを入れる。これを忘れるとコマンドが見つからない
入ったかどうかはターミナル(Windowsはコマンドプロンプト)で確認します。
python3 --version # macOS:3.14.x のように表示されればOK
python --version # Windowsはこちらローカル環境の考え方そのものに不安がある場合は、PHPでの構築手順ですが MAMPとXAMPPの導入方法 が参考になります。プロジェクトごとに環境を分ける発想を知りたい方は Docker Composeで作るローカル開発環境 もあわせてどうぞ。
基礎文法①:変数・出力・データ型
ここから実際に書いていきます。出力は console.log() ではなく print() です。変数は名前に代入するだけで作られます。
name = "太郎"
age = 28
height = 172.5
is_member = True
print(name)
print(type(age)) # 型を調べる
print(f"{name}さんは{age}歳です")文字列に変数を埋め込む f"{name}さん" は、JavaScriptのテンプレートリテラルに当たるものです。バッククォートではなく、クォートの前に f を付けるのが違いです。型を確かめたいときは type() を使います。これは後半の検証パートで重要になります。
練習問題1:変数と出力
変数 message に「Hello, Python!」を代入して、画面に表示してください。
# 解答例
message = "Hello, Python!"
print(message)練習問題2:四則演算
変数 a に10、b に3を代入し、足し算・引き算・掛け算・割り算の結果をすべて表示してください。
# 解答例
a = 10
b = 3
print(a + b, a - b, a * b, a / b)割り算の結果が小数になる点に注目してください。割り切れない場合も小数で返ります。整数で欲しいときは a // b と書くと、小数点以下を切り捨てた商が得られます。
基礎文法②:条件分岐と繰り返し
条件分岐は if のあとにコロンを置き、次の行を字下げします。かっこは要りません。「そうでなければ」は else if ではなく elif です。
score = 85
if score >= 90:
print("優")
elif score >= 80:
print("良")
else:
print("可")繰り返しは for と range() の組み合わせが基本です。range(1, 6) は1以上6未満、つまり1から5までを表します。終わりの数を含まない点はJavaScriptの i < 6 と同じ考え方です。
for i in range(1, 6):
print(i)
# 配列の中身を順に取り出すときはインデックス不要
for fruit in ["apple", "banana", "grape"]:
print(fruit)練習問題3:条件分岐
変数 score が80以上なら「合格」、それ未満なら「不合格」と表示してください。
# 解答例
score = 85
if score >= 80:
print("合格")
else:
print("不合格")練習問題4:繰り返し
1から5までの数値を、1行ずつ順に表示してください。
# 解答例
for i in range(1, 6):
print(i)range(5) と書くと0から4になります。1から始めたいときは開始値を明示してください。ここは JavaScriptの for 文から移ってきた人が最も間違えやすい箇所です。
基礎文法③:リスト・辞書・関数
JavaScriptの配列に当たるものがリスト、オブジェクトに当たるものが辞書です。書き方はよく似ていますが、メソッド名と辞書のキーの書き方が違います。
fruits = ["apple", "banana"]
fruits.append("grape") # JavaScriptのpush()に当たる
print(fruits)
print(len(fruits)) # 要素数は .length ではなく len()
person = {"name": "太郎", "age": 28}
print(person["name"]) # 辞書はキーを文字列で書く
for key, value in person.items():
print(key, value)辞書は person.name のようなドット記法では取り出せません。必ず角かっことキー名で書きます。JavaScriptのオブジェクトと同じ感覚で書いてエラーになる代表例です。
関数は def で定義します。function ではありません。戻り値の return は同じです。
def greet(name="ゲスト"):
return f"こんにちは、{name}さん"
print(greet("田中"))
print(greet()) # 省略するとデフォルト値が使われる練習問題5:リストの操作
空のリスト fruits を作り、「apple」「banana」「grape」を追加してから、リスト全体を表示してください。
# 解答例
fruits = []
fruits.append("apple")
fruits.append("banana")
fruits.append("grape")
print(fruits)練習問題6:関数を作る
受け取った数値を2倍にして返す関数 double を作り、5を渡した結果を表示してください。
# 解答例
def double(x):
return x * 2
print(double(5))書いたコードが正しいか確認する
入門で本当に必要なのは、書けることよりも「動かなかったときに原因を特定できること」です。Pythonのエラーは最後の行に種類とメッセージ、その上に発生した行番号が出ます。まず読むのは最後の1行です。
| エラー名 | 意味 | よくある原因 |
|---|---|---|
| NameError | その名前が見つからない | 変数名の打ち間違い、定義する前に使っている |
| TypeError | 型が合わない | 文字列と数値をそのまま足している |
| IndentationError | 字下げがおかしい | スペースとタブの混在、字下げ忘れ |
| SyntaxError | 文法として読めない | コロンの付け忘れ、かっこの閉じ忘れ |
| KeyError | 辞書にそのキーがない | キー名の打ち間違い、存在しないキーの参照 |
| IndexError | リストの範囲外 | 要素数を超えた番号を指定している |
特に多いのが TypeError です。JavaScriptでは "a" + 1 が "a1" になりますが、Pythonはエラーになります。文字列と数値を一緒に出したいときは、f文字列を使うか str() で変換します。
count = 3
# print("合計" + count) # TypeError になる
print(f"合計{count}件") # 正しい書き方
print("合計" + str(count)) # これでもよい思った結果にならないときは、途中の値と型を両方出すのが最短です。値だけ見ても「数値の3」なのか「文字列の3」なのか区別がつかないためです。
value = input_data
print(value, type(value)) # 値と型を同時に確認するこの記事の合否ラインは明確です。練習問題6問を、解答例を見ずに、エラーなく意図した出力にできること。ここを通過していれば基礎文法は身についています。詰まった問題があれば、その問題が属するセクションだけ読み返してください。全部を最初から復習する必要はありません。
JavaScript経験者がつまずく3つのポイント
未経験者ではなく、JavaScriptを書いてきた人だからこそ引っかかる箇所があります。先に知っておくと余計な時間を使わずに済みます。
1. 波かっこを書いてしまう
手が覚えているので if x > 5 { } と書いてしまい、SyntaxErrorになります。Pythonはコロンと字下げです。逆に、字下げしたのにコロンを忘れるパターンも同じくらい多いので、エラーが出たらまず行末のコロンを確認してください。
2. 真偽値とnullの書き方が違う
Pythonの真偽値は True / False と先頭が大文字です。小文字で書くとNameErrorになります。「値がない」ことを表すのは null でも undefined でもなく None です。ここは対比表を手元に置いて機械的に置き換えるのが早道です。
3. リストをコピーしたつもりが同じものを見ている
これはJavaScriptの配列でも起きる問題ですが、Pythonでも同じです。new_list = old_list と書くとコピーされず、片方を変更するともう片方も変わります。
old_list = [1, 2, 3]
same = old_list # 同じものを指しているだけ
copied = old_list.copy() # これがコピー
same.append(4)
print(old_list) # [1, 2, 3, 4] に変わっている
print(copied) # [1, 2, 3] のまま次に何を学ぶか
基礎文法の次は、目的によって進む方向が変わります。全部を学ぶ必要はありません。自分がやりたい作業に必要なものだけ選んでください。
| やりたいこと | 次に学ぶもの | 最初の一歩 |
|---|---|---|
| サイトのデータを集めたい | requests / BeautifulSoup | 1ページ取得してh1を1つ抜き出す |
| ファイルを一括処理したい | os / pathlib / Pillow | フォルダ内のファイル名を全部表示する |
| CSVを集計したい | pandas | 1ファイル読んで合計を出す |
| Webアプリを作りたい | Flask(小規模)/ Django(大規模) | 1ページだけ返すサーバーを起動する |
| AIを扱いたい | NumPy → scikit-learn | 数値データで簡単な予測をしてみる |
その前に、まず文法を手に馴染ませるのが先です。この記事の6問に加えて、練習アプリには型の確認・f文字列・while文・辞書のループ・リスト内包表記・例外処理まで含めた20問を用意しています。ブラウザで実行しながら1問ずつ進められます。
JavaScript側の学習も並行して深めたい方は JavaScript学習ガイド に練習問題からフレームワーク入門までまとめてあります。同じ形式で手を動かしたい場合は JavaScript練習問題23選 もどうぞ。
よくある質問
Q. PythonとJavaScriptは、どちらを先に学ぶべきですか?
Web制作をしているならJavaScriptが先です。ブラウザで動く言語はJavaScriptだけなので代わりがきかず、仕事に直結します。Pythonは「JavaScriptでは面倒な作業」が出てきたときに始めるのが効率的で、基礎文法は共通点が多いため後から学んでも短時間で追いつけます。
Q. Web制作の仕事でPythonを使う場面はありますか?
あります。競合調査のデータ収集、納品前の画像一括処理、アクセスログや広告レポートの集計、定期実行する自動処理などです。サイトそのものを作る場面ではなく、その前後の作業でPythonが効きます。
Q. バージョンは2と3のどちらを使えばよいですか?
3を使ってください。Python 2は2020年にサポートが終了しており、新規に学ぶ理由はありません。古い解説記事は2系の書き方をしていることがあるので、print がかっこなしで書かれていたら2系だと判断して読み飛ばすのが安全です。
Q. インストールせずに練習することはできますか?
できます。本記事の練習アプリはブラウザ上でPythonを実行するため、インストールもアカウント登録も不要です。文法を覚える段階ではこれで十分で、ファイル操作や外部ライブラリを使う段階になってから自分のパソコンに入れれば間に合います。
Q. 基礎文法を覚えるのにどのくらいかかりますか?
JavaScriptを書ける人であれば、この記事の内容は数時間で通せます。概念を新しく学ぶのではなく書き方を置き換える作業だからです。ただし手を動かさずに読むだけだと、いざ書くときに波かっこやセミコロンが出てくるので、練習問題は必ず自分で入力してください。
Q. 独学でも身につきますか?
身につきます。ただし「教材を最後まで読む」ことを目標にすると挫折しやすいので、自分の手作業を1つ自動化するという具体的な目標を先に決めるのがおすすめです。目的が決まっていれば必要な範囲だけ調べればよく、覚えるべき量が一気に減ります。
ここまでの内容を手を動かして確認できるよう、記事の6問を含む20問をブラウザで解ける練習アプリを用意しました。実行ボタンを押すとその場で出力とエラーが表示されます。
