<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PEP8  |  Python-memo｜自動化・AI・Web開発の実験室</title>
	<atom:link href="https://python.cbagames.jp/tag/pep8/feed/" rel="self" type="application/rss+xml" />
	<link>https://python.cbagames.jp</link>
	<description>Pythonで、できるをふやそう。</description>
	<lastBuildDate>Tue, 03 Feb 2026 05:45:49 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://python.cbagames.jp/wp-content/uploads/2025/06/cropped-497d491d54402de785c9e043bfa0620a-32x32.png</url>
	<title>PEP8  |  Python-memo｜自動化・AI・Web開発の実験室</title>
	<link>https://python.cbagames.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Python初心者のためのコードレビュー入門｜レビューで必ず見られるポイント完全ガイド</title>
		<link>https://python.cbagames.jp/2026/01/12/python-code-review-check-points-beginner/</link>
					<comments>https://python.cbagames.jp/2026/01/12/python-code-review-check-points-beginner/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Mon, 12 Jan 2026 08:52:13 +0000</pubDate>
				<category><![CDATA[IT転職・キャリア]]></category>
		<category><![CDATA[PEP8]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[コードレビュー]]></category>
		<category><![CDATA[リファクタリング]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[可読性]]></category>
		<category><![CDATA[設計]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=777</guid>

					<description><![CDATA[目次 はじめに1. コードレビューとは何か？なぜPythonで重要なのか2. コードレビューの基本的な流れ（初心者向け）① 事前セルフチェック（コードを書く側）② 自動ツールによるチェック（CI）③ 人によるレビュー（本 [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2"><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">はじめに</a></li><li><a href="#toc2" tabindex="0">1. コードレビューとは何か？なぜPythonで重要なのか</a></li><li><a href="#toc3" tabindex="0">2. コードレビューの基本的な流れ（初心者向け）</a><ol><li><a href="#toc4" tabindex="0">① 事前セルフチェック（コードを書く側）</a></li><li><a href="#toc5" tabindex="0">② 自動ツールによるチェック（CI）</a></li><li><a href="#toc6" tabindex="0">③ 人によるレビュー（本質的なチェック）</a></li><li><a href="#toc7" tabindex="0">④ フィードバック対応・修正</a></li><li><a href="#toc8" tabindex="0">⑤ 承認・マージ</a></li></ol></li><li><a href="#toc9" tabindex="0">3. コードレビューで見られるポイント【チェックリスト形式】</a><ol><li><a href="#toc10" tabindex="0">3-1. スタイル・命名規則（最初に見られる）</a><ol><li><a href="#toc11" tabindex="0">PEP8に沿った書き方になっているか</a></li><li><a href="#toc12" tabindex="0">変数名・関数名から処理内容が想像できるか</a></li><li><a href="#toc13" tabindex="0">docstringが適切に書かれているか</a></li></ol></li><li><a href="#toc14" tabindex="0">3-2. 設計・可読性（レビューで一番差がつく）</a><ol><li><a href="#toc15" tabindex="0">1つの関数・クラスが責務を持ちすぎていないか</a></li><li><a href="#toc16" tabindex="0">ネストが深くなりすぎていないか</a></li><li><a href="#toc17" tabindex="0">同じ処理を何度も書いていないか（DRY原則）</a></li><li><a href="#toc18" tabindex="0">マジックナンバーを直接書いていないか</a></li></ol></li><li><a href="#toc19" tabindex="0">3-3. パフォーマンス・データ構造</a><ol><li><a href="#toc20" tabindex="0">データ構造の選び方が適切か</a></li><li><a href="#toc21" tabindex="0">無駄なリスト生成をしていないか</a></li><li><a href="#toc22" tabindex="0">ループ内で重い処理をしていないか</a></li></ol></li><li><a href="#toc23" tabindex="0">3-4. セキュリティ・安全性（初心者が見落としがち）</a><ol><li><a href="#toc24" tabindex="0">外部入力をそのまま信用していないか</a></li><li><a href="#toc25" tabindex="0">秘密情報をコードに直接書いていないか</a></li><li><a href="#toc26" tabindex="0">例外処理を雑にしていないか</a></li></ol></li><li><a href="#toc27" tabindex="0">3-5. テスト・型ヒント・ドキュメント</a><ol><li><a href="#toc28" tabindex="0">新しい処理にテストが追加されているか</a></li><li><a href="#toc29" tabindex="0">型ヒントが適切に付いているか</a></li><li><a href="#toc30" tabindex="0">ドキュメントが最低限そろっているか</a></li></ol></li></ol></li><li><a href="#toc31" tabindex="0">4. レビューコメントの受け取り方・書き方（メンタル編）</a><ol><li><a href="#toc32" tabindex="0">人ではなく「コード」に向けた指摘だと理解する</a></li><li><a href="#toc33" tabindex="0">「なぜそう思ったのか」を読み取る</a></li><li><a href="#toc34" tabindex="0">コメントを書く側になったときの基本姿勢</a></li></ol></li><li><a href="#toc35" tabindex="0">5. 「レビューされる側」から「レビューできる側」になるために</a><ol><li><a href="#toc36" tabindex="0">レビュー視点を持つとコードの書き方が変わる</a></li><li><a href="#toc37" tabindex="0">自分で自分のコードをレビューしてみる</a></li><li><a href="#toc38" tabindex="0">レビュー経験はそのまま市場価値につながる</a></li></ol></li><li><a href="#toc39" tabindex="0">まとめ</a></li><li><a href="#toc40" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>Pythonを学び始めてしばらくすると、GitHubのプルリクエストや課題提出で <strong>「コードレビュー」</strong>という壁にぶつかる人が多いです。 コメントで指摘をもらっても、 「なぜそこを直す必要があるの？」「動いているのにダメなの？」と、 モヤっとした気持ちになること、ありませんか？</p>



<p>実はコードレビューは、バグ探しやダメ出しの場ではありません。 特にPythonのような動的型付け言語では、 <strong>設計の妥当性・読みやすさ・将来の変更しやすさ</strong>を 人の目で確認することがとても重要です。</p>



<p>この「何を、どんな視点で見られているか」を知らないままレビューを受けると、 毎回指摘に振り回されてしまいます。 逆に、<strong>レビューで見られるポイントを事前に理解していれば</strong>、 指摘は「成長のヒント」に変わります。</p>



<p>この記事では、Python初心者の方に向けて、 <strong>コードレビューで実際によくチェックされるポイント</strong>を 体系的に整理して解説します。 スタイルや命名といった基本から、設計・パフォーマンス・セキュリティまで、 「なぜそこを見られるのか？」が分かる構成にしています。</p>



<p>レビューが怖いものではなく、 「自分のコードをレベルアップさせる仕組み」だと感じられるようになること。 それがこの記事のゴールです。 一緒に、レビューされる側としても、いずれレビューできる側としても、 一歩ずつ理解を深めていきましょう 🙂</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc2">1. コードレビューとは何か？なぜPythonで重要なのか</span></h2>



<p>コードレビューと聞くと、 「バグを見つける作業」「間違い探し」 というイメージを持っている人は少なくありません。 でも実際のレビューで一番見られているのは、 <strong>コードが“長く安全に使えるかどうか”</strong>です。</p>



<p>特にPythonは<strong>動的型付け言語</strong>です。 コンパイル時に型チェックが行われないため、 コードは実行できてしまうけれど、 後からバグを生みやすい構造になっているケースも多いです。</p>



<p>そのためコードレビューは、 <strong>デプロイ前に行う最後の品質チェック</strong>として、 次のような点を重点的に確認します。</p>



<ul class="wp-block-list">
<li>他人が読んでも意図がすぐに分かるか</li>



<li>変更や機能追加に耐えられる設計になっているか</li>



<li>パフォーマンスやセキュリティ面で危険な書き方をしていないか</li>



<li>将来のバグの温床になりそうな構造になっていないか</li>
</ul>



<p>ここで重要なのは、 <strong>「動くかどうか」だけでは合格にならない</strong> という点です。 チーム開発では、数か月後・数年後に 別の誰かがそのコードを触る可能性があります。</p>



<p>だからこそレビューでは、 「今の自分」ではなく <strong>未来の誰かが読んでも理解できるか</strong> という視点が強く求められます。</p>



<p>この考え方は、いわゆる <strong>「綺麗なコード」</strong>の発想と直結しています。 レビューで何度も指摘される人は、 スキル不足というより、 <em>評価される視点をまだ知らないだけ</em> というケースがほとんどです。</p>



<p>コード品質そのものの考え方については、 次の記事でより詳しく解説しています。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a target="_blank" href="https://python.cbagames.jp/2025/09/19/clean-code-rules/" title="【実務で評価される】読みやすく変更しやすい「綺麗なコード」の書き方｜悪い例と改善ポイント" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15-376x212.jpg 376w, https://python.cbagames.jp/wp-content/uploads/2025/09/b73a14f4ba307f2cdb4fb569a5b0a459-15.jpg 1280w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【実務で評価される】読みやすく変更しやすい「綺麗なコード」の書き方｜悪い例と改善ポイント</div><div class="blogcard-snippet internal-blogcard-snippet">はじめに プログラミングを学んでいると、「とりあえず動けばOK！」という気持ちになりがちですよね。もちろんコードが動くこと自体は大事なのですが、実際の仕事では「チームの人が読みやすく、変更しやすいコード」を書けるかどうかが大きな評価ポイント...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://python.cbagames.jp" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">python.cbagames.jp</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.09.19</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>次の章では、 初心者の方でもイメージしやすいように、 <strong>コードレビューがどんな流れで進むのか</strong> を順番に見ていきます。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc3">2. コードレビューの基本的な流れ（初心者向け）</span></h2>



<p>コードレビューは、いきなり誰かがコードを読み始めるわけではありません。 実務では、<strong>いくつかの段階を踏んで</strong>進められるのが一般的です。 この流れを知っておくだけでも、 レビューで指摘されるポイントがかなり予測できるようになります。</p>



<h3 class="wp-block-heading"><span id="toc4">① 事前セルフチェック（コードを書く側）</span></h3>



<p>レビューは「提出してからが本番」ではありません。 実は、<strong>レビューの質は提出前にほぼ決まります</strong>。</p>



<ul class="wp-block-list">
<li>フォーマッター（Blackなど）でコードを整形しているか</li>



<li>Linterで明らかな警告が出ていないか</li>



<li>テストがローカル環境で通っているか</li>
</ul>



<p>ここができていないと、 本来見るべき設計やロジック以前に 「スタイルの指摘」ばかりになってしまいます。</p>



<h3 class="wp-block-heading"><span id="toc5">② 自動ツールによるチェック（CI）</span></h3>



<p>最近の開発では、GitHub Actionsなどを使った <strong>自動チェック（CI）</strong>がほぼ必ず入ります。</p>



<p>自動ツールは、次のような <strong>機械的に判断できる部分</strong>を担当します。</p>



<ul class="wp-block-list">
<li>PEP8に違反していないか</li>



<li>未使用の変数や不要なimportがないか</li>



<li>テストが失敗していないか</li>
</ul>



<p>CIが落ちている状態でレビューを依頼すると、 「まずCIを直してください」で終わってしまうことも珍しくありません。</p>



<h3 class="wp-block-heading"><span id="toc6">③ 人によるレビュー（本質的なチェック）</span></h3>



<p>ここからが、いわゆる<strong>本当のコードレビュー</strong>です。</p>



<p>レビュアーは、次のような <strong>ツールでは判断できない部分</strong>を見ています。</p>



<ul class="wp-block-list">
<li>処理の意図がコードから読み取れるか</li>



<li>設計として無理がないか</li>



<li>バグを生みやすい構造になっていないか</li>



<li>将来の変更に耐えられるか</li>
</ul>



<p>ここでの指摘は、 「今すぐ直さないと壊れる」ものから 「今は動くけど後で困る」ものまで幅があります。</p>



<h3 class="wp-block-heading"><span id="toc7">④ フィードバック対応・修正</span></h3>



<p>レビューコメントを受けたら、 ただ直すだけでなく、 <strong>なぜその修正が必要なのか</strong> を意識して対応することが大切です。</p>



<p>この積み重ねが、 次に書くコードの質を確実に上げてくれます。</p>



<h3 class="wp-block-heading"><span id="toc8">⑤ 承認・マージ</span></h3>



<p>必要な修正がすべて終わり、 動作・品質ともに問題がなければ 「LGTM（Looks Good To Me）」が付き、マージされます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>次の章からは、 このレビュー工程の中で <strong>実際にどんなポイントが見られているのか</strong> を、チェックリスト形式で詳しく見ていきます。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc9">3. コードレビューで見られるポイント【チェックリスト形式】</span></h2>



<p>ここからは、レビューで実際によくチェックされるポイントを、 初心者の方でも意識しやすいように <strong>チェックリスト形式</strong>で整理していきます。</p>



<p>すべてを完璧に満たす必要はありません。 ただし「どこを見られているか」を知っているだけで、 レビューの通り方は大きく変わります。</p>



<h3 class="wp-block-heading"><span id="toc10">3-1. スタイル・命名規則（最初に見られる）</span></h3>



<p>コードレビューでまず確認されるのが、 <strong>スタイルと命名</strong>です。 ここが整っていないと、 中身を見る前に「読みにくい」という印象を与えてしまいます。</p>



<h4 class="wp-block-heading"><span id="toc11">PEP8に沿った書き方になっているか</span></h4>



<p>Pythonでは、PEP8という公式のコーディング規約があります。 インデントは4スペース、 無駄な空行が多すぎないか、 行の長さが極端に長くなっていないか、などが見られます。</p>



<p>最近はBlackなどのフォーマッターを使う前提のチームも多いため、 <strong>手動で整えるより自動化する</strong>意識が大切です。</p>



<h4 class="wp-block-heading"><span id="toc12">変数名・関数名から処理内容が想像できるか</span></h4>



<p>レビューでよくある指摘が、 「この変数、何を表していますか？」というものです。</p>



<p><code>data</code> や <code>tmp</code> のような曖昧な名前は、 書いた本人には分かっても、 他人には伝わりません。</p>



<ul class="wp-block-list">
<li>変数・関数：スネークケース（snake_case）</li>



<li>クラス：パスカルケース（PascalCase）</li>



<li>真偽値：is_xxx / has_xxx など意味が分かる名前</li>
</ul>



<p>命名はセンスではなく、 <strong>読み手への配慮</strong>です。</p>



<h4 class="wp-block-heading"><span id="toc13">docstringが適切に書かれているか</span></h4>



<p>公開される関数やクラスには、 docstringが求められることが多いです。</p>



<p>処理の詳細をすべて書く必要はありませんが、 「何をする関数なのか」「どんな値を返すのか」 が分かるだけで、レビューの理解速度は一気に上がります。</p>



<p>こうしたスタイルや命名の改善は、 単なる見た目の話ではなく、 <strong>コード全体の品質を底上げする第一歩</strong>です。</p>



<p>実際にレビューで指摘されがちな改善ポイントや、 「どう直せばいいのか」を具体例付きで知りたい場合は、 次の記事も参考になります。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a target="_blank" href="https://python.cbagames.jp/2025/06/23/refactoring-for-beginners/" title="【リファクタリングとは？】初心者向けにコード改善の基本と具体例をやさしく解説！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20-376x212.jpg 376w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-20.jpg 1280w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【リファクタリングとは？】初心者向けにコード改善の基本と具体例をやさしく解説！</div><div class="blogcard-snippet internal-blogcard-snippet">リファクタリングはコードをより良くするための重要なプロセスです。本記事では、初心者向けにリファクタリングの意味、目的、タイミング、具体例、注意点までわかりやすく解説します。テストの重要性やパフォーマンス向上の考え方も紹介！</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://python.cbagames.jp" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">python.cbagames.jp</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.06.23</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>次は、レビューで<strong>一番差がつきやすい</strong> 「設計・可読性」の観点を見ていきましょう。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc14">3-2. 設計・可読性（レビューで一番差がつく）</span></h3>



<p>スタイルや命名が整ってくると、 次に見られるのが<strong>設計と可読性</strong>です。 ここは初心者と実務経験者の差が最も出やすいポイントでもあります。</p>



<p>レビューでは、 「このコードは理解しやすいか？」 「あとから変更しやすいか？」 という視点でチェックされます。</p>



<h4 class="wp-block-heading"><span id="toc15">1つの関数・クラスが責務を持ちすぎていないか</span></h4>



<p>ありがちな指摘のひとつが、 「この関数、やっていることが多すぎませんか？」です。</p>



<p>関数やクラスは、 <strong>ひとつの役割に集中している</strong>ほうが、 読みやすく、テストもしやすくなります。</p>



<ul class="wp-block-list">
<li>関数が長くなりすぎていないか</li>



<li>処理の流れを頭の中で追わなくても理解できるか</li>



<li>名前と中身が一致しているか</li>
</ul>



<h4 class="wp-block-heading"><span id="toc16">ネストが深くなりすぎていないか</span></h4>



<p>if文やfor文が何重にもネストされていると、 一気に読みづらくなります。</p>



<p>レビューでは、 <strong>早期リターン（ガード節）</strong>が使えないか、 条件分岐を整理できないか、といった点がよく見られます。</p>



<h4 class="wp-block-heading"><span id="toc17">同じ処理を何度も書いていないか（DRY原則）</span></h4>



<p>似たようなコードがあちこちにあると、 将来の修正でミスが起きやすくなります。</p>



<p>レビューで 「ここ共通化できませんか？」 と聞かれる場合は、 DRY原則が意識されています。</p>



<h4 class="wp-block-heading"><span id="toc18">マジックナンバーを直接書いていないか</span></h4>



<p>意味の分からない数値が突然出てくると、 読み手は混乱します。</p>



<p>定数として名前を付けるだけで、 コードの意図は驚くほど分かりやすくなります。</p>



<p>こうした設計・可読性の考え方は、 レビュー対策というより <strong>エンジニアとして長く使える基礎体力</strong>です。</p>



<p>設計や読みやすさについて体系的に学びたい場合は、 定番書から一度インプットしておくのもおすすめです。</p>



<p><strong>Clean Code</strong></p>



<p><a rel="noopener" target="_blank" href="https://amzn.to/4qgOpMS">✅ Amazonでチェックする</a>｜ <a rel="noopener" target="_blank" href="https://a.r10.to/hFIeNj">✅ 楽天でチェックする</a></p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>次は、初心者のうちは見落としがちな <strong>パフォーマンスとデータ構造</strong>の視点を見ていきます。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h3 class="wp-block-heading"><span id="toc19">3-3. パフォーマンス・データ構造</span></h3>



<p>Pythonは書きやすい反面、 <strong>何も考えずに書くと遅くなりやすい</strong>言語でもあります。 レビューでは、処理速度そのものよりも、 「遅くなりやすい書き方をしていないか」 という視点でチェックされることが多いです。</p>



<h4 class="wp-block-heading"><span id="toc20">データ構造の選び方が適切か</span></h4>



<p>同じように見える処理でも、 データ構造が違うだけで パフォーマンスは大きく変わります。</p>



<ul class="wp-block-list">
<li>検索が多いのにリストを使っていないか</li>



<li>変更しないデータをリストで持っていないか</li>



<li>キーと値の対応関係をリストで無理に表現していないか</li>
</ul>



<p>レビューでは、 <strong>set や dict を使った方が良いのでは？</strong> という指摘がよく入ります。</p>



<h4 class="wp-block-heading"><span id="toc21">無駄なリスト生成をしていないか</span></h4>



<p>リスト内包表記は便利ですが、 大量データを扱う場合には注意が必要です。</p>



<p>レビューでは、 <strong>ジェネレータ式にできないか</strong> がチェックされることがあります。 メモリ消費を抑えられるかどうか、という視点です。</p>



<h4 class="wp-block-heading"><span id="toc22">ループ内で重い処理をしていないか</span></h4>



<p>次のようなコードは、 レビューで必ずと言っていいほど指摘されます。</p>



<ul class="wp-block-list">
<li>ループの中で毎回同じ計算をしている</li>



<li>ループの中でデータベースやAPIを呼んでいる</li>
</ul>



<p>いわゆる <strong>N+1問題</strong> の兆候がないかどうかも、 レビュアーは敏感に見ています。</p>



<p>重要なのは、 「今は遅くないから大丈夫」 ではなく、 <strong>データ量が増えたときにどうなるか</strong> を想像できているかどうかです。</p>



<p>パフォーマンスの話は難しく感じがちですが、 レビューで見られるのは 最適化テクニックよりも <em>危険な書き方をしていないか</em> という基本的な部分です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>次は、初心者のうちは特に見落としやすい <strong>セキュリティと安全性</strong> の観点を見ていきましょう。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">3-4. セキュリティ・安全性（初心者が見落としがち）</span></h3>



<p>セキュリティと聞くと、 「自分にはまだ早い」「Webアプリの話でしょ？」 と思われがちですが、 レビューでは<strong>小さな危険の芽</strong>もきちんと見られます。</p>



<p>初心者のコードで多いのは、 「とりあえず動く」ことを優先した結果、 <em>将来トラブルになりやすい書き方</em>をしてしまうケースです。</p>



<h4 class="wp-block-heading"><span id="toc24">外部入力をそのまま信用していないか</span></h4>



<p>ファイル入力、ユーザー入力、APIレスポンスなど、 <strong>外部から来る値は常に疑う</strong> というのがレビューの基本姿勢です。</p>



<ul class="wp-block-list">
<li>想定外の値が来たらどうなるか</li>



<li>None や空文字が来ても壊れないか</li>



<li>型や範囲のチェックをしているか</li>
</ul>



<p>レビューでは、 「この値、バリデーションしなくて大丈夫ですか？」 という形で指摘されることがよくあります。</p>



<h4 class="wp-block-heading"><span id="toc25">秘密情報をコードに直接書いていないか</span></h4>



<p>APIキーやパスワードを コードに直接書いてしまうのは、 初心者がやりがちなミスのひとつです。</p>



<p>レビューでは、 <strong>環境変数やSecrets管理を使うべきでは？</strong> という指摘がほぼ確実に入ります。</p>



<p>「個人開発だから大丈夫」ではなく、 <strong>公開される可能性がある前提</strong> で書かれているかが重要です。</p>



<h4 class="wp-block-heading"><span id="toc26">例外処理を雑にしていないか</span></h4>



<p>次のようなコードは、 レビューでかなり警戒されます。</p>



<ul class="wp-block-list">
<li>except Exception で全部まとめて捕まえている</li>



<li>例外を握りつぶして pass している</li>



<li>エラーが起きても何もログに残らない</li>
</ul>



<p>例外処理は、 「エラーを消すため」ではなく、 <strong>異常を正しく扱うため</strong> のものです。</p>



<p>このあたりの考え方は、 初心者のうちは特に分かりづらいため、 例外設計をテーマにした次の記事も参考になります。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-related">

<a target="_blank" href="https://python.cbagames.jp/2025/12/16/python-exception-design-try-except/" title="Pythonの例外設計入門｜try/exceptを「どう設計するか」まで徹底解説" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-376x212.jpg 376w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5.jpg 1280w" sizes="auto, (max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Pythonの例外設計入門｜try/exceptを「どう設計するか」まで徹底解説</div><div class="blogcard-snippet internal-blogcard-snippet">Pythonのtry/exceptを“書ける”から“設計できる”へ。例外を握りつぶさない方針、catch範囲の決め方、独自例外の作り方、raise from・ログ・リソース解放まで、実務で困らない例外設計をまとめて解説します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://python.cbagames.jp" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">python.cbagames.jp</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.12.16</div></div></div></div></a>
</div>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>次は、レビューで 「このコード、ちゃんと守られている？」 と確認される <strong>テストとドキュメント</strong> の観点を見ていきます。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc27">3-5. テスト・型ヒント・ドキュメント</span></h3>



<p>コードがどれだけ綺麗に書かれていても、 「壊れない保証」がなければ安心して使えません。 レビューでは、 <strong>テストと将来の保守性</strong>という視点でも確認されます。</p>



<h4 class="wp-block-heading"><span id="toc28">新しい処理にテストが追加されているか</span></h4>



<p>レビューでよくある質問が、 「この変更、どこでテストされていますか？」です。</p>



<p>特に注意されるのは、 <strong>既存コードの修正なのにテストが増えていない</strong> ケースです。 バグ修正や仕様変更では、 再発防止のテストがあるかどうかが重視されます。</p>



<ul class="wp-block-list">
<li>正常系だけで終わっていないか</li>



<li>境界値や異常系が考慮されているか</li>



<li>テストが意図を説明する役割になっているか</li>
</ul>



<h4 class="wp-block-heading"><span id="toc29">型ヒントが適切に付いているか</span></h4>



<p>Pythonは動的型付け言語ですが、 実務では<strong>型ヒント</strong>があることを前提に レビューされるケースが増えています。</p>



<p>型ヒントがあるだけで、 次のようなメリットがあります。</p>



<ul class="wp-block-list">
<li>関数の使い方が一目で分かる</li>



<li>意図しない値の混入を防ぎやすい</li>



<li>IDEや静的解析ツールのサポートが強くなる</li>
</ul>



<p>レビューでは、 「この引数、何が入る想定ですか？」 「Noneは来ますか？」 といった質問が、型ヒント不足から生まれます。</p>



<p>型ヒントの考え方や、 実務でどう使われているかを詳しく知りたい場合は、 次の記事が参考になります。</p>



<p><a target="_blank" href="https://python.cbagames.jp/2025/12/20/python-type-hints-guide/">Python型ヒント実践入門｜Type Hintsでコード品質を上げる方法</a></p>



<h4 class="wp-block-heading"><span id="toc30">ドキュメントが最低限そろっているか</span></h4>



<p>READMEやdocstringがあるかどうかも、 レビューではしっかり見られます。</p>



<p>詳細な説明は不要でも、 <strong>「どう使うか」「何をしているか」</strong> が分かる情報があるだけで、 レビューの理解スピードは大きく変わります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>ここまでで、 技術的なチェックポイントは一通りです。 次は少し視点を変えて、 <strong>レビューコメントとの向き合い方</strong> について見ていきましょう。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc31">4. レビューコメントの受け取り方・書き方（メンタル編）</span></h2>



<p>コードレビューでつらく感じやすいのは、 技術そのものよりも<strong>コメントの受け取り方</strong>です。 特に初心者のうちは、 指摘＝否定された、と思ってしまいがちです。</p>



<p>でも実務のレビューで見ているのは、 <strong>人ではなくコード</strong>です。 この意識を持てるようになると、 レビューのストレスはかなり減ります。</p>



<h3 class="wp-block-heading"><span id="toc32">人ではなく「コード」に向けた指摘だと理解する</span></h3>



<p>良いレビューコメントは、 「あなたの書き方が悪い」ではなく、 「このコードだと将来ここで困りそう」 という視点で書かれています。</p>



<p>たとえば、 <em>「この変数名だと意図が伝わりにくいかも」</em> という指摘は、 あなた自身を否定しているわけではありません。</p>



<h3 class="wp-block-heading"><span id="toc33">「なぜそう思ったのか」を読み取る</span></h3>



<p>コメントを読むときは、 修正内容だけでなく <strong>理由</strong>に注目しましょう。</p>



<ul class="wp-block-list">
<li>将来の変更を想定しているのか</li>



<li>バグを防ぐ意図があるのか</li>



<li>チームのルールに合わせているのか</li>
</ul>



<p>この理由が分かるようになると、 同じ指摘を次からは自分で回避できるようになります。</p>



<h3 class="wp-block-heading"><span id="toc34">コメントを書く側になったときの基本姿勢</span></h3>



<p>いずれあなたがレビューする立場になることもあります。 そのときに意識したいのは、 <strong>相手が学べるコメント</strong>になっているかです。</p>



<ul class="wp-block-list">
<li>断定的な表現を避ける</li>



<li>改善案や理由を添える</li>



<li>重要度が分かる書き方をする</li>
</ul>



<p>多くのチームでは、 次のようなラベルを使って コメントの温度感を伝えます。</p>



<ul class="wp-block-list">
<li><strong>MUST</strong>：修正が必須</li>



<li><strong>SHOULD</strong>：強く推奨される修正</li>



<li><strong>IMO</strong>：個人的な提案</li>



<li><strong>NITS</strong>：細かい指摘（タイポなど）</li>



<li><strong>LGTM</strong>：問題なし・承認</li>
</ul>



<p>レビューは対立ではなく、 <strong>チームでコードを良くするための会話</strong>です。 この意識を持てるようになると、 レビューは一気に前向きなものになります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>次は最後に、 レビューを通して <strong>一段上のエンジニアになるための視点</strong> を整理します。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc35">5. 「レビューされる側」から「レビューできる側」になるために</span></h2>



<p>コードレビューに慣れてくると、 だんだんと 「なぜこの指摘が入ったのか」 が分かるようになってきます。</p>



<p>ここから先は、 ただレビューを受けるだけでなく、 <strong>自分自身がレビュー視点を持てるか</strong> が成長の分かれ道になります。</p>



<h3 class="wp-block-heading"><span id="toc36">レビュー視点を持つとコードの書き方が変わる</span></h3>



<p>「これ、あとから読んで分かるかな？」 「ここ、質問されそうだな」 と考えながらコードを書くようになると、 レビューでの指摘は自然と減っていきます。</p>



<p>これはテクニックというより、 <strong>読み手を意識する習慣</strong>です。</p>



<h3 class="wp-block-heading"><span id="toc37">自分で自分のコードをレビューしてみる</span></h3>



<p>プルリクエストを出す前に、 次のような視点で一度読み返してみてください。</p>



<ul class="wp-block-list">
<li>初めて読む人でも理解できるか</li>



<li>関数名と処理内容が一致しているか</li>



<li>この変更で壊れそうな場所はないか</li>
</ul>



<p>これだけでも、 レビューで指摘される数はかなり減ります。</p>



<h3 class="wp-block-heading"><span id="toc38">レビュー経験はそのまま市場価値につながる</span></h3>



<p>コードレビューを通して身につく力は、 「Pythonが書ける」以上に評価されます。</p>



<p>設計を考える力、 他人のコードを読む力、 安全性や保守性を意識する力は、 実務で長く求められるスキルです。</p>



<p>最初は指摘が多くて当たり前です。 それは「伸びしろがある」というサインでもあります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>コードレビューを怖がらず、 <strong>成長のチャンスとして活用できるようになること</strong>。 それが、レビューされる側から レビューできる側へ進む第一歩です。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc39">まとめ</span></h2>



<p>コードレビューは、初心者にとっては 少し怖く感じるイベントかもしれません。 でも本質は、 <strong>コードの欠点を責める場ではなく、品質を高める仕組み</strong> です。</p>



<p>この記事では、Pythonのコードレビューで 実際によく見られているポイントを、 スタイル・設計・パフォーマンス・セキュリティ・テスト という観点から整理してきました。</p>



<ul class="wp-block-list">
<li>動いているだけでは不十分</li>



<li>読みやすさ・変更しやすさが重視される</li>



<li>将来のバグを防ぐ視点が評価される</li>
</ul>



<p>これらを知っているだけで、 レビューコメントの見え方は大きく変わります。 「なぜ指摘されたのか」が分かるようになると、 レビューはストレスではなく、 <strong>成長のためのヒント集</strong>になります。</p>



<p>最初から完璧である必要はありません。 レビューを通して少しずつ視点を身につけていくことが、 実務で信頼されるエンジニアへの近道です。</p>



<p>私自身も、何度もレビューで指摘されながら、 「あ、ここを見られていたんだ」 と気づくことで成長してきました。</p>



<p>この記事が、 コードレビューに対する不安を減らし、 一歩前向きに取り組むきっかけになれば嬉しいです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc40">よくある質問（Q&amp;A）</span></h2>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">レビューで細かく指摘されるのは嫌われているから？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p>いいえ、ほとんどの場合は逆です。 細かく指摘されるのは、 <strong>そのコードをちゃんと読んでいる証拠</strong> でもあります。 何も言われない方が、実は危険なケースもあります。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">初心者がまず一番気をつけるべきポイントは？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p>最初は <strong>命名・関数の大きさ・可読性</strong> を意識するだけで十分です。 パフォーマンスや高度な設計は、 レビューを重ねながら徐々に身につけていけば問題ありません。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">自分からレビューコメントを出してもいい？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p>もちろん大丈夫です。 断定せず「〜かもしれません」「どう思いますか？」 という形で書けば、 学びにもなりますし、チームからの評価も上がります。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2026/01/12/python-code-review-check-points-beginner/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python入門】静的解析とコードフォーマッターの違いとは？初心者向けに使い方を解説！</title>
		<link>https://python.cbagames.jp/2025/06/15/python-code-formatter-static-analysis/</link>
					<comments>https://python.cbagames.jp/2025/06/15/python-code-formatter-static-analysis/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Sun, 15 Jun 2025 03:38:25 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[autopep8]]></category>
		<category><![CDATA[Black]]></category>
		<category><![CDATA[flake8]]></category>
		<category><![CDATA[PEP8]]></category>
		<category><![CDATA[PyCharm]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[コードフォーマッター]]></category>
		<category><![CDATA[静的解析]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=327</guid>

					<description><![CDATA[目次 1. はじめに｜コードを自動できれいに整えるには？2. コードフォーマッターとは？｜見た目を整えるツールコードフォーマッターってなに？PEP 8というルールに従うよ有名なフォーマッター2つ：autopep8とBla [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4"><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">1. はじめに｜コードを自動できれいに整えるには？</a></li><li><a href="#toc2" tabindex="0">2. コードフォーマッターとは？｜見た目を整えるツール</a><ol><li><a href="#toc3" tabindex="0">コードフォーマッターってなに？</a></li><li><a href="#toc4" tabindex="0">PEP 8というルールに従うよ</a></li><li><a href="#toc5" tabindex="0">有名なフォーマッター2つ：autopep8とBlack</a><ol><li><a href="#toc6" tabindex="0">✅ autopep8（オートペップエイト）</a></li><li><a href="#toc7" tabindex="0">✅ Black（ブラック）</a></li></ol></li><li><a href="#toc8" tabindex="0">autopep8の使い方（カンタン！）</a></li><li><a href="#toc9" tabindex="0">PyCharmでもフォーマットできる！</a></li></ol></li><li><a href="#toc10" tabindex="0">3. 静的解析ツールとは？｜バグを未然に防ぐ</a><ol><li><a href="#toc11" tabindex="0">静的解析ってなに？</a></li><li><a href="#toc12" tabindex="0">なぜ必要なの？</a></li><li><a href="#toc13" tabindex="0">有名な静的解析ツール：flake8</a></li><li><a href="#toc14" tabindex="0">flake8の使い方（カンタン！）</a></li><li><a href="#toc15" tabindex="0">PyCharmでも静的解析できる！</a></li><li><a href="#toc16" tabindex="0">flake8とPyCharmの違いって？</a></li></ol></li><li><a href="#toc17" tabindex="0">4. 自動化との相性｜CI/CDでの活用方法</a><ol><li><a href="#toc18" tabindex="0">そもそもCI/CDってなに？</a></li><li><a href="#toc19" tabindex="0">フォーマッターや静的解析ツールはCIと相性バツグン！</a><ol><li><a href="#toc20" tabindex="0">例えばこんな流れ：</a></li></ol></li><li><a href="#toc21" tabindex="0">PyCharmだけじゃ足りない理由</a></li><li><a href="#toc22" tabindex="0">実際によく使われる構成例</a></li><li><a href="#toc23" tabindex="0">まとめ：自動化で「うっかりミス」をゼロに</a></li></ol></li><li><a href="#toc24" tabindex="0">5. まとめ｜フォーマット整形と静的解析をうまく使い分けよう</a><ol><li><a href="#toc25" tabindex="0">✅どっちも使うのが最強！</a></li><li><a href="#toc26" tabindex="0">✅初心者でも今すぐ使える！</a></li><li><a href="#toc27" tabindex="0">あわせて読みたい</a></li></ol></li><li><a href="#toc28" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜コードを自動できれいに整えるには？</span></h2>



<p>Pythonのコードって、書く人によって<strong>インデントの幅</strong>や<strong>スペースの使い方</strong>がちょっとずつ違ったりしますよね。「このコード、なんか読みにくいな……」と感じたことがある人も多いと思います。</p>



<p>でも実は、<strong>コードの「見た目」を自動できれいに整えてくれる便利なツール</strong>があるんです！</p>



<p>また、コードを<strong>実行する前にエラーを見つけてくれるツール</strong>も存在します。これらをうまく使うことで、</p>



<ul class="wp-block-list">
<li>自分の書いたコードがきれいに整って見やすくなる</li>



<li>コードを動かす前にミスを発見できる</li>



<li>チームで開発するときに「書き方のバラつき」を防げる</li>
</ul>



<p>といったメリットが得られます。</p>



<p>Pythonには「<strong>コードフォーマッター</strong>」と呼ばれる整形ツールや、「<strong>静的解析ツール</strong>」と呼ばれるエラーチェックツールがあります。この記事では、それぞれの特徴や使い方、代表的なツール（autopep8、Black、flake8）を初心者向けにわかりやすく解説していきます。</p>



<p>コードをもっとキレイに、もっと安全に。そんな第一歩を一緒に踏み出してみましょう！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc2">2. コードフォーマッターとは？｜見た目を整えるツール</span></h2>



<h3 class="wp-block-heading"><span id="toc3">コードフォーマッターってなに？</span></h3>



<p>Pythonのコードは、<strong>スペースや改行の位置がとても大事</strong>です。たとえば、以下のようなコードを見てください。</p>



<pre class="wp-block-preformatted"><code>def greet(name):print("Hello,",name)<br></code></pre>



<p>これ、ちゃんと動きますが、ちょっと見づらいですよね？<br>でも、こんなふうに整形すると…</p>



<pre class="wp-block-preformatted"><code>def greet(name):<br>    print("Hello,", name)<br></code></pre>



<p>おお！だいぶ見やすくなりましたね。</p>



<p>このように、<strong>コードの「見た目」をルールに従って自動で整えてくれるツール</strong>が「コードフォーマッター」です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc4">PEP 8というルールに従うよ</span></h3>



<p>Pythonには「<strong>PEP 8（ペップエイト）</strong>」という<strong>コードの書き方に関するガイドライン</strong>があります。たとえば、</p>



<ul class="wp-block-list">
<li>インデントはスペース4つで揃える</li>



<li>1行は79文字以内が望ましい</li>



<li>演算子の前後にはスペースを入れる（例：<code>x = 1 + 2</code>）</li>
</ul>



<p>など、読みやすさを大切にしたルールが決められています。</p>



<p>コードフォーマッターは、このPEP 8をもとにコードを整えてくれるんです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc5">有名なフォーマッター2つ：autopep8とBlack</span></h3>



<p>Pythonでよく使われるコードフォーマッターには、主に次の2つがあります。</p>



<h4 class="wp-block-heading"><span id="toc6">✅ autopep8（オートペップエイト）</span></h4>



<ul class="wp-block-list">
<li><strong>PEP 8にぴったり沿うようにコードを修正</strong></li>



<li><strong>シンプルで軽い</strong>のが特徴</li>



<li>文字列のシングルクォート/ダブルクォートはそのまま残る（どちらでもOK）</li>
</ul>



<h4 class="wp-block-heading"><span id="toc7">✅ Black（ブラック）</span></h4>



<ul class="wp-block-list">
<li><strong>少し厳しめなルールで整形</strong></li>



<li>たとえば、文字列リテラルを<strong>すべてダブルクォートに統一</strong>したりする</li>



<li>きれいに整えられるけど、「少しクセが強い」部分もある</li>
</ul>



<p>どちらもとても便利ですが、<strong>自分のスタイルや好みに合ったものを選ぶ</strong>とよいですね！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc8">autopep8の使い方（カンタン！）</span></h3>



<ol class="wp-block-list">
<li>コマンドでインストールします：</li>
</ol>



<pre class="wp-block-preformatted"><code>pip install autopep8<br></code></pre>



<ol start="2" class="wp-block-list">
<li>コードを整形するには、次のように実行します：</li>
</ol>



<pre class="wp-block-preformatted"><code>autopep8 -i script.py<br></code></pre>



<p>これで、<code>script.py</code>の内容が自動的にキレイに整えられます！<br>（<code>-i</code>は「その場で上書き」の意味です）</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc9">PyCharmでもフォーマットできる！</span></h3>



<p>もし<strong>PyCharm</strong>というエディターを使っているなら、さらにラクです。<br>Windowsなら <code>Ctrl + Alt + L</code>、Macなら <code>Option + Command + L</code> を押すだけで、自動でフォーマットされます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>コードフォーマッターは、<strong>書いた後に一括でキレイに整える魔法のツール</strong>です。<br>初心者のうちは細かい書き方のルールを覚えきれないこともあるので、ぜひ活用してみてください！</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc10">3. 静的解析ツールとは？｜バグを未然に防ぐ</span></h2>



<h3 class="wp-block-heading"><span id="toc11">静的解析ってなに？</span></h3>



<p>静的解析（せいてきかいせき）とは、<strong>Pythonのコードを実行せずにチェックして、エラーやバグの可能性を教えてくれる</strong>ツールのことです。</p>



<p>たとえばこんなコード：</p>



<pre class="wp-block-preformatted"><code>def add(a, b):<br>    return a + c  # ← c は定義されてない変数<br></code></pre>



<p>このコードを実行するとエラーになりますが、<strong>静的解析ツールを使えば、実行する前に「ここおかしいよ」と教えてくれる</strong>んです。<br>とっても心強いですね！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc12">なぜ必要なの？</span></h3>



<p>Pythonは柔軟な言語なので、**「書けちゃうけど動かすとエラー」**ということがけっこうあります。<br>特にチーム開発や少し大きめのコードになると、思わぬミスに気づかずに進めてしまうことも…。</p>



<p>静的解析ツールを使うと、</p>



<ul class="wp-block-list">
<li><strong>未定義の変数の使用</strong></li>



<li><strong>使ってない変数の存在</strong></li>



<li><strong>引数の数が合っていない</strong></li>



<li><strong>無駄なインポート</strong></li>
</ul>



<p>などを、自動でチェックしてくれます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc13">有名な静的解析ツール：flake8</span></h3>



<p>Pythonでよく使われる静的解析ツールの代表が、**flake8（フレークエイト）**です。</p>



<p>特徴としては、</p>



<ul class="wp-block-list">
<li>コードを実行せずに文法エラーやスタイル違反をチェック</li>



<li><code>pycodestyle</code>や<code>mccabe</code>などのツールと連携して、<strong>細かい部分まで見てくれる</strong></li>



<li>とても軽くてシンプル</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc14">flake8の使い方（カンタン！）</span></h3>



<ol class="wp-block-list">
<li>インストールします：</li>
</ol>



<pre class="wp-block-preformatted"><code>pip install flake8<br></code></pre>



<ol start="2" class="wp-block-list">
<li>コマンドで解析します：</li>
</ol>



<pre class="wp-block-preformatted"><code>flake8 script.py<br></code></pre>



<p>すると、もし<code>script.py</code>の中に問題があれば、行番号と内容つきで警告が表示されます。</p>



<p>例：</p>



<pre class="wp-block-preformatted"><code>script.py:3:14: F821 undefined name 'z'<br></code></pre>



<p>これは「3行目の14文字目に<code>z</code>という未定義の変数がありますよ」という意味です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc15">PyCharmでも静的解析できる！</span></h3>



<p>PyCharmを使っている人は、<strong>すでに静的解析が自動で有効</strong>になっているかもしれません。</p>



<ul class="wp-block-list">
<li>未定義の変数や文法エラーには<strong>赤いニョロニョロ（波線）</strong></li>



<li>警告やアドバイスは<strong>黄色の線や電球マーク</strong></li>
</ul>



<p>PyCharmがエラーをリアルタイムで教えてくれるので、書いている最中に直せるのがとても便利です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc16">flake8とPyCharmの違いって？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>特徴</th><th>flake8</th><th>PyCharm</th></tr></thead><tbody><tr><td>実行方法</td><td>コマンドで実行</td><td>書いてる間にリアルタイムで表示</td></tr><tr><td>精度</td><td>少しシンプル</td><td>結構賢い（関数の引数不足も指摘）</td></tr><tr><td>CI/CDとの相性</td><td>◎</td><td>△（IDE依存）</td></tr></tbody></table></figure>



<p>flak8は、<strong>CI/CDと組み合わせてチームでの自動チェックに向いている</strong>のが強みです。<br>一方でPyCharmは、<strong>エディタ内での快適なコーディングをサポート</strong>してくれます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>「静的解析ツール」は、Python初心者にもぜひ使ってほしいチェック機能です。<br>実行する前にミスを防げるので、<strong>安心してコードを書けるようになりますよ！</strong></p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc17">4. 自動化との相性｜CI/CDでの活用方法</span></h2>



<h3 class="wp-block-heading"><span id="toc18">そもそもCI/CDってなに？</span></h3>



<p>まず最初に、「CI/CDってなに？」というところからお話ししますね。</p>



<ul class="wp-block-list">
<li>**CI（継続的インテグレーション）**は、プログラムのコードが変更されるたびに、自動でテストやチェックを行ってくれる仕組みのこと。</li>



<li>**CD（継続的デリバリー）**は、そのコードを自動で本番環境に届けたりする流れのこと。</li>
</ul>



<p>難しそうに聞こえるかもしれませんが、要は**「コードを書いたら、自動で動作確認やコードチェックをしてくれる便利な仕組み」**だと思ってください！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc19">フォーマッターや静的解析ツールはCIと相性バツグン！</span></h3>



<p>ここで登場するのが、先ほど紹介した <code>autopep8</code> や <code>flake8</code> などのツールです。これらは、**「自動で動かせるツール」**なので、CIと組み合わせるのにピッタリなんです！</p>



<h4 class="wp-block-heading"><span id="toc20">例えばこんな流れ：</span></h4>



<ol class="wp-block-list">
<li>Aさんが新しい機能を作ってGitHubにプッシュ</li>



<li>GitHub Actions（CIツール）が動き出す</li>



<li><code>flake8</code>で静的解析 → エラーがあればAさんに通知！</li>



<li><code>autopep8</code>でコードを整形 → 書き方がきれいになってからマージ！</li>
</ol>



<p>このように、<strong>コードの質を自動で守る仕組みができあがります。</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc21">PyCharmだけじゃ足りない理由</span></h3>



<p>PyCharmの中でもコードチェックはできますが、<strong>それは開発者のPCの中だけ</strong>での話。</p>



<p>チームでの開発では、</p>



<ul class="wp-block-list">
<li>「AさんはPyCharmだけど、BさんはVS Code」</li>



<li>「Cさんはチェックを忘れてプッシュしちゃった」</li>
</ul>



<p>なんてことも起こりがちです。</p>



<p>CIに <code>flake8</code> や <code>black</code> を組み込んでおけば、<strong>どのメンバーが書いたコードでも、ルール通りにチェック・整形できる</strong>ようになります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc22">実際によく使われる構成例</span></h3>



<p>CIツールとしては <strong>GitHub Actions</strong> が人気です。<br>Pythonのプロジェクトなら、こんなワークフローを設定することで自動チェックが可能になります：</p>



<pre class="wp-block-preformatted"><code># .github/workflows/lint.yml<br>name: Lint Check<br><br>on: [push, pull_request]<br><br>jobs:<br>  lint:<br>    runs-on: ubuntu-latest<br>    steps:<br>      - uses: actions/checkout@v3<br>      - name: Set up Python<br>        uses: actions/setup-python@v4<br>        with:<br>          python-version: '3.10'<br>      - name: Install flake8<br>        run: pip install flake8<br>      - name: Run flake8<br>        run: flake8 your_code_directory/<br></code></pre>



<p>これを設定しておけば、<strong>プルリクエストのたびにflake8でコードチェックが走るようになります！</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">まとめ：自動化で「うっかりミス」をゼロに</span></h3>



<p>CIにコードフォーマッターや静的解析を組み込むことで、</p>



<ul class="wp-block-list">
<li>書き方のズレ</li>



<li>見落としたエラー</li>



<li>手動チェックの手間</li>
</ul>



<p>を<strong>自動で解消</strong>できるようになります。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>特にチーム開発や本番環境に出すプロジェクトでは、<strong>こうした自動化の仕組みが品質を支えてくれる大きな助け</strong>になります！</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc24">5. まとめ｜フォーマット整形と静的解析をうまく使い分けよう</span></h2>



<p>ここまで、Pythonで使える「コードフォーマッター」と「静的解析ツール」について紹介してきました。</p>



<p>**フォーマッター（autopep8やBlack）**は、</p>



<ul class="wp-block-list">
<li>コードの見た目を整えて読みやすくしてくれる</li>



<li>PEP 8というルールに従って自動で整形</li>



<li>チーム全体のコードの統一感をキープできる</li>
</ul>



<p>**静的解析ツール（flake8）**は、</p>



<ul class="wp-block-list">
<li>実行前にバグの予兆や問題点をチェック</li>



<li>コードの質を保つための頼れる味方</li>



<li>エディタ外でもCIなどに組み込めて便利</li>
</ul>



<p>というように、それぞれ違った役割で<strong>Python開発をより安全＆スムーズに</strong>してくれる存在です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc25">✅どっちも使うのが最強！</span></h3>



<p>たとえば、</p>



<ul class="wp-block-list">
<li>書いてる途中は <strong>PyCharmのフォーマッター＆警告表示</strong> に助けてもらって、</li>



<li>プルリク前に <strong>Blackで自動整形</strong>、</li>



<li>GitHub上で <strong>flake8を使ったCIチェック</strong>を走らせる</li>
</ul>



<p>というように、<strong>うまく組み合わせて使うとミスを減らせて作業もラクになります！</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc26">✅初心者でも今すぐ使える！</span></h3>



<p>どのツールもインストールしてコマンド1つで使えるので、初心者でもすぐに導入できます。</p>



<p>Pythonを書いていて、</p>



<p>「なんかコードがごちゃごちゃしてきたな…」<br>「エラーが出てからじゃ遅いな…」</p>



<p>と思ったら、**ぜひこの記事で紹介したツールを試してみてくださいね！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc27">あわせて読みたい</span></h3>



<p>コードの整形やチェックとあわせて、以下の関連記事もチェックしておくと、さらにレベルアップできます！</p>



<ul class="wp-block-list">
<li>🔍 <a target="_blank" href="https://python.cbagames.jp/2025/06/14/python-debugger-breakpoint/">【Python入門】デバッガーの使い方をやさしく解説｜breakpoint関数・VS Code対応</a><br>　→ コードをステップ実行しながら、ミスの原因をしっかり突き止める方法を解説！</li>



<li>🤖 <a target="_blank" href="https://python.cbagames.jp/2025/06/10/vscode-ai-copilot-beginner/">VS CodeでAIを活用する方法（GitHub Copilot、MCPサーバー、AIエージェントなど）</a><br>　→ VS CodeでAIにコード補完やエラーチェックを手伝ってもらう方法を紹介！</li>



<li>✅ <a target="_blank" href="https://python.cbagames.jp/2025/06/13/python-pytest-beginner-guide/">Pythonでテストコードを書く方法｜初心者向けpytest入門ガイド</a><br>　→ 静的解析と一緒に知っておきたい、自動テストの書き方がわかります！</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc28">よくある質問（Q&amp;A）</span></h2>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">autopep8とBlack、初心者にはどっちがおすすめ？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong>はじめはautopep8がおすすめ</strong>です！<br>Blackは少しルールが厳しく、見た目の好みが分かれる部分もあるため、まずはautopep8でPEP8に慣れるのが良いでしょう。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">flake8を使っても、実行時エラーは完全に防げますか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong>残念ながら、すべては防げません。</strong><br>flake8は静的なチェック（＝実行しないチェック）なので、ロジックミスや型の問題まではカバーできないこともあります。<br>必要に応じてテストコード（pytestなど）も組み合わせるとより安心です！</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">VS Codeで自動整形や静的解析を使うにはどうすればいい？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong>拡張機能のインストールが必要です！</strong><br>「Python」「autopep8」「flake8」などの拡張機能を入れたあと、設定でフォーマッターと解析ツールを指定すればOKです。<br>また、<code>settings.json</code>に <code>"editor.formatOnSave": true</code> を追加すると、保存時に自動整形もできます。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/15/python-code-formatter-static-analysis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python入門10】インデントルール完全ガイド｜スペースとタブの違いって？</title>
		<link>https://python.cbagames.jp/2025/06/07/python-indent-rules-guide/</link>
					<comments>https://python.cbagames.jp/2025/06/07/python-indent-rules-guide/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Sat, 07 Jun 2025 03:03:48 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[PEP8]]></category>
		<category><![CDATA[Pythonエラー対策]]></category>
		<category><![CDATA[SyntaxError]]></category>
		<category><![CDATA[インデント]]></category>
		<category><![CDATA[コーディングスタイル]]></category>
		<category><![CDATA[タブとスペース]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=146</guid>

					<description><![CDATA[目次 1. はじめに｜Pythonではなぜインデントが重要なの？2. インデントの基本ルール◾ コロン（:）の後は必ずインデント！◾ インデントで「かたまり（ブロック）」を作る◾ インデントしないとエラーになる！◾ イン [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6"><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">1. はじめに｜Pythonではなぜインデントが重要なの？</a></li><li><a href="#toc2" tabindex="0">2. インデントの基本ルール</a><ol><li><a href="#toc3" tabindex="0">◾ コロン（:）の後は必ずインデント！</a></li><li><a href="#toc4" tabindex="0">◾ インデントで「かたまり（ブロック）」を作る</a></li><li><a href="#toc5" tabindex="0">◾ インデントしないとエラーになる！</a></li><li><a href="#toc6" tabindex="0">◾ インデントは何個分？スペース？タブ？</a></li><li><a href="#toc7" tabindex="0">✅ まとめ：インデントの3つの鉄則</a></li></ol></li><li><a href="#toc8" tabindex="0">3. スペースとタブの違いとは？</a><ol><li><a href="#toc9" tabindex="0">◾ スペースとタブってなに？</a></li><li><a href="#toc10" tabindex="0">◾ PEP8では「スペース4つ」がルール！</a></li><li><a href="#toc11" tabindex="0">◾ タブを使っても動くの？→一応動くけど非推奨！</a></li><li><a href="#toc12" tabindex="0">◾ タブとスペースを混ぜるとエラーになる！</a></li><li><a href="#toc13" tabindex="0">◾ エディタの設定で「スペース」に統一しよう！</a></li><li><a href="#toc14" tabindex="0">✅ まとめ：スペース vs タブ、どっちがいい？</a></li></ol></li><li><a href="#toc15" tabindex="0">4. 実例で学ぶインデントミス</a><ol><li><a href="#toc16" tabindex="0">◾ if文でのインデントミス</a><ol><li><a href="#toc17" tabindex="0">✅ 正しい書き方：</a></li></ol></li><li><a href="#toc18" tabindex="0">◾ forループでのインデントミス</a><ol><li><a href="#toc19" tabindex="0">✅ 正しい書き方：</a></li></ol></li><li><a href="#toc20" tabindex="0">◾ 関数定義の中でのミス</a><ol><li><a href="#toc21" tabindex="0">✅ 正しい書き方：</a></li></ol></li><li><a href="#toc22" tabindex="0">◾ インデントをうっかりズラした例（まぎらわしい！）</a></li><li><a href="#toc23" tabindex="0">✅ こうやって直そう！インデントエラーの対策</a></li></ol></li><li><a href="#toc24" tabindex="0">5. エディタ設定でインデントミスを防ぐ方法</a><ol><li><a href="#toc25" tabindex="0">◾ おすすめエディタ：VS Code（Visual Studio Code）</a></li><li><a href="#toc26" tabindex="0">◾ VS Codeで「Tabキーをスペース4つに変える」設定方法</a></li><li><a href="#toc27" tabindex="0">◾ 自動整形ツールでキレイなインデントを保つ！</a><ol><li><a href="#toc28" tabindex="0">✅ よく使われる整形ツール</a></li></ol></li><li><a href="#toc29" tabindex="0">◾ VS Codeにautopep8を入れる手順（かんたん！）</a></li><li><a href="#toc30" tabindex="0">◾ こんな設定もおすすめ！</a></li><li><a href="#toc31" tabindex="0">✅ まとめ：ツールでインデントを味方につけよう！</a></li></ol></li><li><a href="#toc32" tabindex="0">6. まとめ｜インデントに強くなればPythonが楽しくなる！</a><ol><li><a href="#toc33" tabindex="0">✅ この記事で学んだこと</a></li><li><a href="#toc34" tabindex="0">✅ これからPythonを書くときは…</a></li><li><a href="#toc35" tabindex="0">あわせて読みたい｜インデントの理解をもっと深めたい人へ</a></li></ol></li><li><a href="#toc36" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜Pythonではなぜインデントが重要なの？</span></h2>



<p>Pythonを勉強し始めて、こんなエラーに戸惑ったことはありませんか？</p>



<pre class="wp-block-code"><code>if True:
print("こんにちは")
</code></pre>



<p>一見すると正しそうに見えるこのコード。<br>でも実行すると、次のようなエラーが表示されます。</p>



<pre class="wp-block-code"><code>IndentationError: expected an indented block
</code></pre>



<p>「え？スペルも合ってるし、構文も間違ってないはずなのに…」<br>そう感じた方、実はとても多いです。</p>



<p>このエラーの原因は、**Python特有のルールである「インデント（字下げ）」**にあります。<br>Pythonでは、インデントのズレ＝プログラムの意味のズレ。<br>たった数文字の空白が、エラーの原因になることも珍しくありません。</p>



<p>実際、Python初心者が最初につまずくポイントの上位が<br>**「インデントエラー」「タブとスペースの違い」**です。</p>



<p>この記事では、</p>



<ul class="wp-block-list">
<li>インデントとは何か？なぜPythonでは重要なのか</li>



<li>スペースとタブの違い（どっちを使うべき？）</li>



<li>IndentationErrorを確実に防ぐ書き方のルール</li>
</ul>



<p>を、<strong>エラー例つきでやさしく解説</strong>していきます。</p>



<p>「インデントが怖くてPythonが進まない…」<br>そんな状態を今日で終わらせましょう。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc2">2. インデントの基本ルール</span></h2>



<p>Pythonでは、<strong>インデント（字下げ）がないとプログラムが動かない</strong>ことがあります。ここでは、その基本ルールをわかりやすく紹介していきます！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc3">◾ コロン（:）の後は必ずインデント！</span></h3>



<p>Pythonで「条件分岐」や「繰り返し」などを使うときには、<strong>最後にコロン <code>:</code> をつける</strong>のがルールです。<br>そして、その次の行では<strong>必ずインデントする</strong>必要があります。</p>



<p>たとえば <code>if</code> 文を書くときはこんな感じ：</p>



<pre class="wp-block-preformatted"><code>if True:<br>    print("これは正しい書き方です")<br></code></pre>



<p>ポイントはここ👇<br>✅ <code>:</code> をつけたら、次の行でインデントを入れる！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc4">◾ インデントで「かたまり（ブロック）」を作る</span></h3>



<p>Pythonでは、<strong>インデントがそのまま「処理のまとまり（ブロック）」を表します</strong>。<br>これはすごく大事です！</p>



<p>たとえば、こんなコードを見てください。</p>



<pre class="wp-block-preformatted"><code>if True:<br>    print("A")<br>    print("B")<br>print("C")<br></code></pre>



<p>この場合、</p>



<ul class="wp-block-list">
<li>「A」と「B」は if の中の処理（インデントがある）</li>



<li>「C」は if の外の処理（インデントがない）</li>
</ul>



<p>になります。<br>つまり、<code>True</code> だったら A と B は表示されるけど、C はそのあとに必ず実行されます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc5">◾ インデントしないとエラーになる！</span></h3>



<p>インデントがないと、Pythonはどの処理がどこに属しているのか分からなくなってしまいます。</p>



<p>たとえばこんなコード：</p>



<pre class="wp-block-preformatted"><code>if True:<br>print("こんにちは")  # インデントなし！<br></code></pre>



<p>これは実行するとこうなります：</p>



<pre class="wp-block-preformatted"><code>IndentationError: expected an indented block<br></code></pre>



<p>Python先生に「ブロックが見つかりませんよ〜」って怒られちゃうんですね。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc6">◾ インデントは何個分？スペース？タブ？</span></h3>



<p>基本的には「<strong>スペース4つ</strong>」でインデントするのが、Pythonの公式ルール（PEP8）です。<br>タブも使えますが、<strong>スペースの方がおすすめ</strong>です（この理由は次の章でくわしく紹介します！）。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc7">✅ まとめ：インデントの3つの鉄則</span></h3>



<ol class="wp-block-list">
<li><code>:</code> のあとには必ずインデント！</li>



<li>インデントでブロック（かたまり）を作る！</li>



<li>インデントを間違えるとすぐエラー！</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc8">3. スペースとタブの違いとは？</span></h2>



<p>Pythonでは、インデントを「<strong>スペース</strong>」でも「<strong>タブ</strong>」でも作ることができます。<br>でも、ここには<strong>ちょっとした落とし穴</strong>があるんです！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc9">◾ スペースとタブってなに？</span></h3>



<p>まず、基本から確認しましょう。</p>



<ul class="wp-block-list">
<li><strong>スペース</strong>：キーボードの「スペースキー（空白）」を1回押したときに入る空白。</li>



<li><strong>タブ</strong>：キーボードの「Tabキー」を押すと入る、ちょっと広い空白。</li>
</ul>



<p>見た目は似ていますが、**Pythonにとっては「別物」**です！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc10">◾ PEP8では「スペース4つ」がルール！</span></h3>



<p>Pythonには「<strong>PEP8（ペップエイト）</strong>」という<strong>コードの書き方ガイド</strong>があります。<br>この中で、インデントについては次のように決められています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>✅ インデントは「スペース4つ」を使いましょう</p>
</blockquote>



<p>つまり、<strong>Tabキーは使わず、スペースを4回押す</strong>のが正しいやり方です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc11">◾ タブを使っても動くの？→一応動くけど非推奨！</span></h3>



<p>たしかに、Pythonはタブでもインデントを認識します。</p>



<pre class="wp-block-preformatted"><code>if True:<br>	print("タブでも動くことは動く")<br></code></pre>



<p>でも…ここで問題が！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc12">◾ タブとスペースを混ぜるとエラーになる！</span></h3>



<p>インデントにタブとスペースが<strong>混ざってしまうと、エラーになる</strong>ことがあります。</p>



<pre class="wp-block-preformatted"><code>if True:<br>    print("スペースの行")<br>	print("タブの行")  # ← ここで混在！<br></code></pre>



<p>このようなコードを実行すると、こんなエラーが出ます：</p>



<pre class="wp-block-preformatted"><code>TabError: inconsistent use of tabs and spaces in indentation<br></code></pre>



<p>Pythonは「同じ種類のインデントで統一してね！」と教えてくれてるんですね。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc13">◾ エディタの設定で「スペース」に統一しよう！</span></h3>



<p>インデントのミスを防ぐためには、使っているエディタ（VS Code や PyCharmなど）で、</p>



<p><strong>「Tabキーを押したら、スペース4つにする」設定</strong></p>



<p>をしておくのがおすすめです！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc14">✅ まとめ：スペース vs タブ、どっちがいい？</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>スペース</th><th>タブ</th></tr></thead><tbody><tr><td>PEP8の推奨</td><td>◎（推奨）</td><td>×（非推奨）</td></tr><tr><td>エラーのリスク</td><td>少ない</td><td>混在でエラーに</td></tr><tr><td>エディタ対応</td><td>多くが対応済み</td><td>一部で扱いが面倒</td></tr></tbody></table></figure>



<p><strong>→ 結論：スペース4つでインデントしよう！</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc15">4. 実例で学ぶインデントミス</span></h2>



<p>Python初心者がよくやってしまうインデントのミス。<br>ここでは、<strong>実際によくあるエラー例</strong>を紹介しながら、「どこが間違いなのか？どう直せばいいのか？」をわかりやすく解説していきます！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc16">◾ if文でのインデントミス</span></h3>



<pre class="wp-block-preformatted"><code>age = 18<br><br>if age &gt;= 18:<br>print("大人です")<br></code></pre>



<p>このコード、見た目はシンプルですが…エラーになります！</p>



<pre class="wp-block-preformatted"><code>IndentationError: expected an indented block<br></code></pre>



<p>なぜかというと、<code>if</code> のあとに<strong>インデントがない</strong>からです。</p>



<h4 class="wp-block-heading"><span id="toc17">✅ 正しい書き方：</span></h4>



<pre class="wp-block-preformatted"><code>age = 18<br><br>if age &gt;= 18:<br>    print("大人です")<br></code></pre>



<p>「if文の条件がTrueだったときに実行したい処理」は、<strong>インデントでひとつ下げる</strong>のがルールでしたね！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc18">◾ forループでのインデントミス</span></h3>



<pre class="wp-block-preformatted"><code>for i in range(3):<br>print(i)<br></code></pre>



<p>これもNG！</p>



<pre class="wp-block-preformatted"><code>IndentationError: expected an indented block after 'for' statement<br></code></pre>



<p><code>for</code> の後の処理が、<strong>インデントされていない</strong>のが原因です。</p>



<h4 class="wp-block-heading"><span id="toc19">✅ 正しい書き方：</span></h4>



<pre class="wp-block-preformatted"><code>for i in range(3):<br>    print(i)<br></code></pre>



<p>ループ処理の中身は<strong>インデントして書く</strong>。これがPythonのルールです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc20">◾ 関数定義の中でのミス</span></h3>



<pre class="wp-block-preformatted"><code>def hello():<br>print("こんにちは！")<br></code></pre>



<p>こちらもエラーです。</p>



<pre class="wp-block-preformatted"><code>IndentationError: expected an indented block<br></code></pre>



<p>Pythonは、<strong>関数の中身もインデントで書く</strong>必要があります。</p>



<h4 class="wp-block-heading"><span id="toc21">✅ 正しい書き方：</span></h4>



<pre class="wp-block-preformatted"><code>def hello():<br>    print("こんにちは！")<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc22">◾ インデントをうっかりズラした例（まぎらわしい！）</span></h3>



<pre class="wp-block-preformatted"><code>for i in range(3):<br>  print("スペース2個")<br>    print("スペース4個")<br></code></pre>



<p>このコード、<strong>見た目ではちょっとわかりにくい</strong>ですが、インデントがバラバラになっています。</p>



<pre class="wp-block-preformatted"><code>IndentationError: unexpected indent<br></code></pre>



<p>Pythonはとても<strong>厳密にスペースの数を見ている</strong>ので、「全部スペースでも、数が違えばエラー」です！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">✅ こうやって直そう！インデントエラーの対策</span></h3>



<ul class="wp-block-list">
<li>すべてのインデントを「スペース4つ」に統一しよう</li>



<li>エディタの設定で「Tabキー＝スペース4つ」にする</li>



<li>インデントの「見た目」ではなく、「実際の文字」で判断しよう（不可視文字を表示する設定も便利！）</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc24">5. エディタ設定でインデントミスを防ぐ方法</span></h2>



<p>ここまで読んで「インデント、けっこう大事なんだなぁ」と感じていただけたと思います。<br>でも、<strong>手作業で毎回スペース4つを入れるのって、ちょっと面倒</strong>ですよね？</p>



<p>そんなときは、<strong>Pythonにやさしいエディタ（VS Code など）を使えば、ほぼ自動で解決</strong>できます！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc25">◾ おすすめエディタ：VS Code（Visual Studio Code）</span></h3>



<p>無料で使えて、Pythonにもバッチリ対応しているのが「VS Code」。<br>Python初心者からプロまで、たくさんの人が使っています。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc26">◾ VS Codeで「Tabキーをスペース4つに変える」設定方法</span></h3>



<ol class="wp-block-list">
<li>VS Codeのメニューから「<strong>設定（Settings）</strong>」を開く</li>



<li>検索窓に <code>tab</code> と入力</li>



<li>「<strong>Insert Spaces（タブをスペースに変換）</strong>」を <strong>ON</strong> にする</li>



<li>「<strong>Tab Size</strong>」を <strong>4</strong> に設定する</li>
</ol>



<p>これだけで、<strong>Tabキーを押したら自動でスペース4つが入力される</strong>ようになります！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc27">◾ 自動整形ツールでキレイなインデントを保つ！</span></h3>



<p>Pythonのコードを一発でキレイにしてくれる「コード整形ツール」も便利です。</p>



<h4 class="wp-block-heading"><span id="toc28">✅ よく使われる整形ツール</span></h4>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ツール名</th><th>特徴</th></tr></thead><tbody><tr><td><strong>autopep8</strong></td><td>PEP8にそって自動でコードを整形</td></tr><tr><td><strong>black</strong></td><td>より厳密なルールで統一感のある整形が可能</td></tr><tr><td><strong>flake8</strong></td><td>整形はせず、コードチェックだけ行う</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc29">◾ VS Codeにautopep8を入れる手順（かんたん！）</span></h3>



<ol class="wp-block-list">
<li>Python拡張機能を入れておく（インストール済みでOK）</li>



<li>ターミナルで以下を実行：</li>
</ol>



<pre class="wp-block-preformatted"><code>pip install autopep8<br></code></pre>



<ol start="3" class="wp-block-list">
<li>VS Codeで「Shift + 右クリック → フォーマット」を選ぶと、インデントが整います！</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc30">◾ こんな設定もおすすめ！</span></h3>



<ul class="wp-block-list">
<li><strong>保存時に自動フォーマット</strong>：設定で <code>Format On Save</code> をONにすると、保存するたびにコードが整えられます。</li>



<li><strong>不可視文字の表示</strong>：スペースやタブの違いを目で確認できるようになります。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc31">✅ まとめ：ツールでインデントを味方につけよう！</span></h3>



<ul class="wp-block-list">
<li>手動でスペース4つは大変→エディタで自動化！</li>



<li>VS Codeの設定を整えれば、インデントミスとサヨナラできる</li>



<li>自動整形ツールを使えば、コードの見た目もプロっぽくなる！</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc32">6. まとめ｜インデントに強くなればPythonが楽しくなる！</span></h2>



<p>Pythonでは、<strong>インデント（字下げ）がプログラムの命</strong>とも言える大事なルールです。</p>



<p>他の言語のように「{ }」でブロックを囲う代わりに、<strong>スペースやタブのインデントだけで処理のまとまりを表現する</strong>という、ちょっと変わった特徴があります。</p>



<p>でも、そのおかげで<strong>見た目がスッキリしたコード</strong>が書けるのもPythonの魅力なんです！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc33">✅ この記事で学んだこと</span></h3>



<ul class="wp-block-list">
<li>Pythonでは <strong>インデントが文法の一部</strong></li>



<li>インデントがないと <code>IndentationError</code> に</li>



<li><strong>スペース4つが公式推奨（PEP8）</strong></li>



<li><strong>タブとスペースを混ぜるとエラーになる</strong></li>



<li>VS Codeなどのエディタで <strong>インデントミスは防げる</strong></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc34">✅ これからPythonを書くときは…</span></h3>



<p>🔸 if文やfor文のあとには「スペース4つ」でインデント<br>🔸 コード整形ツールでキレイに保つ<br>🔸 インデントが変だな？と思ったら、エディタの「不可視文字を表示」でチェック！</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>「インデント」でつまずいたあなたも、これで一歩前進です！<br>Pythonの世界をもっと楽しんでくださいね✨</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc35">あわせて読みたい｜インデントの理解をもっと深めたい人へ</span></h3>



<p>以下の記事も、Python初心者がつまずきやすいポイントをやさしく解説しています。あわせて読んでおくと、よりスムーズにステップアップできますよ！</p>



<ul class="wp-block-list">
<li>🔹 <a target="_blank" href="https://python.cbagames.jp/2025/06/06/python-syntaxerror-beginner/">【初心者向け】SyntaxErrorとは？よくある書き間違いと直し方を徹底解説</a></li>



<li>🔹 <a target="_blank" href="https://python.cbagames.jp/2025/06/06/nameerror-indentationerror-fix/">Python初心者がよく出会う「NameError」と「IndentationError」の原因と解決法まとめ</a></li>



<li>🔹 <a target="_blank" href="https://python.cbagames.jp/2025/06/02/python-syntax-indent-pep8-beginner2/">【Python入門2】Pythonの基本構文をやさしく解説｜改行・インデント・エラー対応まで初心者向けに丁寧に紹介</a></li>



<li>🔹 <a target="_blank" href="https://python.cbagames.jp/2025/06/06/print-debugging-python/">Pythonのprintデバッグ活用術｜初心者でもできるエラー解決の第一歩</a></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc36">よくある質問（Q&amp;A）</span></h2>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">スペース4つって、手で毎回入力しないといけないの？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p>いいえ！エディタ（VS Codeなど）の設定で「Tabキーを押すとスペース4つ」にできます。設定しておけば、もう意識しなくて大丈夫です。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">すでに書いたコードのインデントを直すには？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><code>autopep8</code> や <code>black</code> などのコード整形ツールを使うと、ボタンひとつでインデントをきれいに直してくれます。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">タブでも動くのに、なぜスペースの方がいいの？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p>タブとスペースが混ざるとエラーが起きやすくなるためです。PEP8という公式スタイルガイドでも「スペース4つ」が推奨されています。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/07/python-indent-rules-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python入門2】Pythonの基本構文をやさしく解説｜改行・インデント・エラー対応まで初心者向けに丁寧に紹介</title>
		<link>https://python.cbagames.jp/2025/06/02/python-syntax-indent-pep8-beginner2/</link>
					<comments>https://python.cbagames.jp/2025/06/02/python-syntax-indent-pep8-beginner2/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Mon, 02 Jun 2025 03:42:11 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[PEP8]]></category>
		<category><![CDATA[Python学習法]]></category>
		<category><![CDATA[Python構文]]></category>
		<category><![CDATA[インデント]]></category>
		<category><![CDATA[エラー解説]]></category>
		<category><![CDATA[プログラミング初心者]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=26</guid>

					<description><![CDATA[目次 1. はじめに｜Python初心者が最初につまずくポイントとは？2. Pythonの基本構文をマスターしよう2-1. 改行とインデントのルール🔸 Pythonは“見た目”が命！❌ インデントを忘れると…2-2. P [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8"><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">1. はじめに｜Python初心者が最初につまずくポイントとは？</a></li><li><a href="#toc2" tabindex="0">2. Pythonの基本構文をマスターしよう</a><ol><li><a href="#toc3" tabindex="0">2-1. 改行とインデントのルール</a><ol><li><a href="#toc4" tabindex="0">🔸 Pythonは“見た目”が命！</a></li><li><a href="#toc5" tabindex="0">❌ インデントを忘れると…</a></li></ol></li><li><a href="#toc6" tabindex="0">2-2. Pythonでよく使う基本構文</a><ol><li><a href="#toc7" tabindex="0">🟢 変数の代入</a></li><li><a href="#toc8" tabindex="0">🟢 条件分岐（if文）</a></li><li><a href="#toc9" tabindex="0">🟢 繰り返し（for文）</a></li></ol></li><li><a href="#toc10" tabindex="0">2-3. コメントを書こう（#マーク）</a></li><li><a href="#toc11" tabindex="0">🧑‍🏫 ワンポイントまとめ！</a></li></ol></li><li><a href="#toc12" tabindex="0">3. PEP8とは？読みやすいコードを書くためのガイドライン</a><ol><li><a href="#toc13" tabindex="0">3-1. PEP8ってなに？</a></li><li><a href="#toc14" tabindex="0">3-2. 実際によくあるPEP8ルールまとめ</a></li><li><a href="#toc15" tabindex="0">3-3. PEP8に違反するとどうなるの？</a></li><li><a href="#toc16" tabindex="0">3-4. PEP8チェックツールを使おう</a></li><li><a href="#toc17" tabindex="0">🧑‍🏫 ワンポイントまとめ！</a></li></ol></li><li><a href="#toc18" tabindex="0">4. エラーメッセージを味方につけよう</a><ol><li><a href="#toc19" tabindex="0">4-1. Pythonでよくあるエラー3選</a><ol><li><a href="#toc20" tabindex="0">❌ SyntaxError（文法エラー）</a></li><li><a href="#toc21" tabindex="0">❌ IndentationError（インデントのエラー）</a></li><li><a href="#toc22" tabindex="0">❌ NameError（名前が見つからない）</a></li></ol></li><li><a href="#toc23" tabindex="0">4-2. エラーの「どこを見るか」を覚えよう！</a><ol><li><a href="#toc24" tabindex="0">💡チェックポイント：</a></li></ol></li><li><a href="#toc25" tabindex="0">4-3. エラーは「失敗」じゃなく「学び」</a></li><li><a href="#toc26" tabindex="0">🧑‍🏫 ワンポイントまとめ！</a></li></ol></li><li><a href="#toc27" tabindex="0">5. 実践編｜間違い探しで学ぶPythonの構文</a><ol><li><a href="#toc28" tabindex="0">5-1. おかしなPythonコードを直してみよう！</a><ol><li><a href="#toc29" tabindex="0">🧩 問題1：インデントがバラバラ</a></li><li><a href="#toc30" tabindex="0">🧩 問題2：コロンを忘れてる！</a></li><li><a href="#toc31" tabindex="0">🧩 問題3：変数が定義されていない</a></li></ol></li><li><a href="#toc32" tabindex="0">5-2. PEP8を意識して書き直してみよう！</a></li><li><a href="#toc33" tabindex="0">🧑‍🏫 ワンポイントまとめ！</a></li></ol></li><li><a href="#toc34" tabindex="0">6. まとめ｜ルールを知れば怖くない、Pythonの第一歩</a><ol><li><a href="#toc35" tabindex="0">💡 この記事で学んだことをふり返ろう！</a></li><li><a href="#toc36" tabindex="0">🔰 おわりに</a></li></ol></li><li><a href="#toc37" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜Python初心者が最初につまずくポイントとは？</span></h2>



<p>こんにちは！<br>この記事では、<strong>Pythonを初めて学ぶ高校生やプログラミング初心者の方</strong>に向けて、基本的な構文や書き方をやさしく解説していきます。</p>



<p>Pythonはシンプルで読みやすい構文が特長の、人気の高いプログラミング言語です。AIやWeb開発、データ分析など、いろんな分野で使われています。ですが、いざ書いてみると「なぜか動かない…」「意味がわからないエラーが出る…」と、最初の壁にぶつかることも多いんです。</p>



<p>特に、こんなことで困った経験ありませんか？</p>



<ul class="wp-block-list">
<li><code>SyntaxError</code>や<code>IndentationError</code>ってなに？</li>



<li>if文を書いたのに、なぜか動かない…</li>



<li>インデントってどこまで下げればいいの？</li>
</ul>



<p>じつはこれ、<strong>Pythonならではの「ルール」を知らないと起こりやすい失敗</strong>なんです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>たとえば、Pythonでは「インデント（字下げ）」の位置がコードの意味に影響します。他の言語ではあまり見かけない特徴なので、初心者が最初につまずくポイントになりがちです。</p>



<p>でも大丈夫！この記事では、以下の3つをわかりやすく解説していきます。</p>



<ol class="wp-block-list">
<li><strong>Pythonの基本構文</strong>（改行やインデントのルール）</li>



<li><strong>PEP8というスタイルガイドに沿った、読みやすいコードの書き方</strong></li>



<li><strong>エラーメッセージの読み解き方と対処法</strong></li>
</ol>



<p>初心者の方でも、実際のコード例を見ながら学べるように、やさしい言葉と具体例を使って進めていきます。<br>「わからない…」を「できた！」に変える第一歩として、ぜひ読み進めてみてくださいね！</p>



<p>👉 最初のステップは、<strong>インデントと改行の基本ルール</strong>を知ることから！詳しく見ていきましょう。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc2">2. Pythonの基本構文をマスターしよう</span></h2>



<p>Pythonを使いこなすためには、「文法のルール」をしっかり理解することが大切です。とくに<strong>インデント</strong>や<strong>改行</strong>のルールは、Python独特で初心者がつまずきやすいポイントでもあります。</p>



<p>ここでは、Pythonを書く上で必ず知っておきたい基本構文を、順番にやさしく紹介していきます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc3">2-1. 改行とインデントのルール</span></h3>



<h4 class="wp-block-heading"><span id="toc4">🔸 Pythonは“見た目”が命！</span></h4>



<p>Pythonでは「どこで処理が始まり、どこで終わるのか」を<strong>インデント（字下げ）で表現します</strong>。<br>たとえば、if文を書いたときはこんなふうになります：</p>



<pre class="wp-block-preformatted"><code>x = 10<br><br>if x &gt; 5:<br>    print("5より大きいです")<br></code></pre>



<p>ポイントはこの「print」の前の<strong>スペース4つ</strong>。これがインデントです。</p>



<h4 class="wp-block-heading"><span id="toc5">❌ インデントを忘れると…</span></h4>



<pre class="wp-block-preformatted"><code>if x &gt; 5:<br>print("エラーになります！")  # ← エラー！<br></code></pre>



<p>このように**インデントがないだけでエラー（IndentationError）**になってしまいます。<br>インデントの深さは <strong>スペース4つが基本</strong>。Tabキーではなく、スペースを使うのがPEP8というルールでも推奨されています。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc6">2-2. Pythonでよく使う基本構文</span></h3>



<h4 class="wp-block-heading"><span id="toc7">🟢 変数の代入</span></h4>



<pre class="wp-block-preformatted"><code>name = "Taro"<br>age = 18<br></code></pre>



<p>Pythonは型を書かなくてもOK！文字列や数値もシンプルに書けます。</p>



<h4 class="wp-block-heading"><span id="toc8">🟢 条件分岐（if文）</span></h4>



<pre class="wp-block-preformatted"><code>if age &gt;= 18:<br>    print("大人です")<br>else:<br>    print("未成年です")<br></code></pre>



<p><strong>コロン「:`」のあとにインデントを忘れずに</strong>！</p>



<h4 class="wp-block-heading"><span id="toc9">🟢 繰り返し（for文）</span></h4>



<pre class="wp-block-preformatted"><code>for i in range(5):<br>    print(i)<br></code></pre>



<p><code>range(5)</code>は「0〜4」まで繰り返す命令。インデントで<code>print(i)</code>が繰り返し対象だと伝えています。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc10">2-3. コメントを書こう（#マーク）</span></h3>



<p>コードの中にメモを残したいときは、<code>#</code>（シャープ）を使ってコメントを書きます：</p>



<pre class="wp-block-preformatted"><code># これは年齢を比較するプログラムです<br>if age &gt;= 20:<br>    print("飲酒OK")<br></code></pre>



<p>コメントはプログラムの動作には影響せず、<strong>あとで見返したときのヒントになります</strong>。<br>自分が書いたコードでも、時間が経つと「これ何だっけ？」となるので、コメントはこまめに入れておくのがコツです！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc11">🧑‍🏫 ワンポイントまとめ！</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>内容</th><th>注意点</th></tr></thead><tbody><tr><td>インデント</td><td>スペース4つ</td><td>Tabキーは避ける</td></tr><tr><td>コロン「:」</td><td>ifやforのあとに使う</td><td>忘れるとエラーに</td></tr><tr><td>改行</td><td>1行ずつ処理を書く</td><td>;（セミコロン）は不要</td></tr><tr><td>コメント</td><td>#でメモを残す</td><td>日本語でもOK</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc12">3. PEP8とは？読みやすいコードを書くためのガイドライン</span></h2>



<p>Pythonには、**読みやすくてキレイなコードを書くための“ルールブック”**があるのをご存じですか？<br>それが <strong>PEP8（ペップエイト）</strong> というスタイルガイドです。</p>



<p>この章では、「PEP8って何？」「守らないとどうなるの？」といった疑問に答えながら、<strong>読みやすくてトラブルの少ないコードを書くコツ</strong>を紹介していきます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc13">3-1. PEP8ってなに？</span></h3>



<p>PEP8（Python Enhancement Proposal 8）は、<strong>Pythonの公式なコーディングスタイル集</strong>です。</p>



<p>難しく聞こえるかもしれませんが、要は「みんなが読みやすいように、こう書こうね！」という<strong>お作法のまとめ</strong>だと思ってください。</p>



<p>たとえば：</p>



<ul class="wp-block-list">
<li>インデントはスペース4つにしよう</li>



<li>長すぎる1行はやめよう（基本は79文字以内）</li>



<li>変数名はわかりやすくつけよう（例：<code>num_items</code> など）</li>
</ul>



<p>こうしたルールに沿うことで、自分も他人もわかりやすいコードになります。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc14">3-2. 実際によくあるPEP8ルールまとめ</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>項目</th><th>内容</th><th>例</th></tr></thead><tbody><tr><td>インデント</td><td>スペース4つ</td><td><code>print("Hello")</code></td></tr><tr><td>行の長さ</td><td>最大79文字（目安）</td><td>長い文は改行してOK</td></tr><tr><td>空行</td><td>関数やクラスの前後に1〜2行あける</td><td><code>def func():</code> の前に空行</td></tr><tr><td>変数名</td><td>スネークケースが基本</td><td><code>user_name</code>、<code>total_price</code></td></tr><tr><td>比較</td><td><code>==</code>や<code>!=</code>などを使う</td><td><code>if x == 5:</code></td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc15">3-3. PEP8に違反するとどうなるの？</span></h3>



<p>実際、<strong>PEP8に従わないからといってエラーになることはありません</strong>。<br>でも、読みづらいコードは以下のような問題を引き起こします：</p>



<ul class="wp-block-list">
<li>他の人がコードを読めなくなる（チームでの開発に不向き）</li>



<li>自分でも後で意味がわからなくなる</li>



<li>間違いを見つけにくくなる（バグの温床）</li>
</ul>



<p>たとえばこちら：</p>



<pre class="wp-block-preformatted"><code>def a(x):return x+1<br></code></pre>



<p>これ、動くけど……<strong>見にくい</strong>ですよね。<br>PEP8に沿って書くとこうなります：</p>



<pre class="wp-block-preformatted"><code>def add_one(x):<br>    return x + 1<br></code></pre>



<p><strong>たった数文字の違いで、グッと読みやすくなる</strong>んです。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc16">3-4. PEP8チェックツールを使おう</span></h3>



<p>初心者でも簡単にPEP8に沿ったコードを書けるようになるツールもあります：</p>



<ul class="wp-block-list">
<li><strong>flake8</strong>：PythonのコードにエラーやPEP8違反がないかチェックしてくれる</li>



<li><strong>Black</strong>：自動でPEP8に整形してくれるフォーマッター</li>
</ul>



<p>どちらも無料で使えるので、プログラムに慣れてきたら試してみてくださいね！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc17">🧑‍🏫 ワンポイントまとめ！</span></h3>



<ul class="wp-block-list">
<li>PEP8は「Pythonを書くときのマナー帳」</li>



<li>読みやすく、ミスの少ないコードを書くために大切</li>



<li>自分のためにも、未来の自分や他人のためにも、<strong>「見やすいコード」を意識してみよう！</strong></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc18">4. エラーメッセージを味方につけよう</span></h2>



<p>Pythonを書いていてよくあるのが、**プログラムが途中で止まってしまう「エラー」**です。<br>最初は「なんか怖い…」「全部英語で意味わからん…」と思うかもしれません。</p>



<p>でも実は、<strong>エラーメッセージは“先生のヒント”のようなもの</strong>なんです。<br>ここでは、初心者がよく出会うエラーと、その読み解き方、解決方法をやさしく解説していきます！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc19">4-1. Pythonでよくあるエラー3選</span></h3>



<h4 class="wp-block-heading"><span id="toc20">❌ SyntaxError（文法エラー）</span></h4>



<p><strong>文法のルールに違反しているとき</strong>に出ます。</p>



<pre class="wp-block-preformatted"><code>print("こんにちは"<br></code></pre>



<p>🔽 エラー表示の一例：</p>



<pre class="wp-block-preformatted"><code>SyntaxError: '(' was never closed<br></code></pre>



<p>➡ カッコが閉じられていないという意味。「閉じカッコがないよ！」と教えてくれています。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading"><span id="toc21">❌ IndentationError（インデントのエラー）</span></h4>



<p><strong>インデントがずれていたり、足りなかったりすると出るエラー</strong>です。</p>



<pre class="wp-block-preformatted"><code>if True:<br>print("Hello")  # ← インデントなしでエラー！<br></code></pre>



<p>🔽 エラー表示の一例：</p>



<pre class="wp-block-preformatted"><code>IndentationError: expected an indented block<br></code></pre>



<p>➡ 「インデントが必要なのに入ってないよ！」という指摘。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading"><span id="toc22">❌ NameError（名前が見つからない）</span></h4>



<p><strong>変数名が間違っているとき</strong>に出ます。</p>



<pre class="wp-block-preformatted"><code>print(score)  # まだscoreを定義してない<br></code></pre>



<p>🔽 エラー表示の一例：</p>



<pre class="wp-block-preformatted"><code>NameError: name 'score' is not defined<br></code></pre>



<p>➡ 「scoreっていう名前の変数、どこにもないよ」という意味です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">4-2. エラーの「どこを見るか」を覚えよう！</span></h3>



<p>エラーメッセージには「エラーの種類」「問題の場所」「説明」が含まれています：</p>



<pre class="wp-block-preformatted"><code>File "main.py", line 3<br>    print("Hello"<br>         ^<br>SyntaxError: '(' was never closed<br></code></pre>



<h4 class="wp-block-heading"><span id="toc24">💡チェックポイント：</span></h4>



<ol class="wp-block-list">
<li><strong>ファイル名と行番号</strong>：「どこでエラーが起きたか」がわかる！</li>



<li><strong>エラーの種類</strong>：<code>SyntaxError</code> などの名前を覚えると強くなる！</li>



<li><strong>説明文</strong>：ヒントが載ってるので、Google翻訳などを活用しよう！</li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc25">4-3. エラーは「失敗」じゃなく「学び」</span></h3>



<p>最初はエラーが出るたびに落ち込むかもしれませんが、<strong>エラーを直す力＝プログラミング力</strong>です。<br>うまくいかない → 調べて直す → 動いた！<br>この流れを何回か経験するうちに、どんどん上達していきます。</p>



<p>むしろ、「エラーの意味が少しわかってきたかも」と思えたら、<strong>あなたはもう初心者を卒業し始めています！</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc26">🧑‍🏫 ワンポイントまとめ！</span></h3>



<ul class="wp-block-list">
<li>エラーは“怒られてる”のではなく、“助けてもらっている”</li>



<li>よく出るエラーの種類を知っておくだけで安心感アップ！</li>



<li>エラーメッセージの内容は「宝の地図」みたいなもの</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc27">5. 実践編｜間違い探しで学ぶPythonの構文</span></h2>



<p>ここまでで、Pythonの基本ルールやエラーの読み方を学んできました。<br>でも、知識だけでなく「実際に間違っているコードを直す力」も大切です！</p>



<p>この章では、<strong>あえて“間違ったコード”を見て、それをどう直すか</strong>を一緒に考えていきましょう。<br>まるで間違い探しゲームのように、楽しみながら学べますよ！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc28">5-1. おかしなPythonコードを直してみよう！</span></h3>



<h4 class="wp-block-heading"><span id="toc29">🧩 問題1：インデントがバラバラ</span></h4>



<pre class="wp-block-preformatted"><code>if True:<br>print("こんにちは")<br>    print("Python楽しい！")<br></code></pre>



<p>💭 このコード、<strong>どこが間違っているかわかりますか？</strong></p>



<p>👇 正しい書き方はこちら：</p>



<pre class="wp-block-preformatted"><code>if True:<br>    print("こんにちは")<br>    print("Python楽しい！")<br></code></pre>



<p>🔍 ポイント：</p>



<ul class="wp-block-list">
<li><code>if</code>の中の処理は、すべて**同じインデント幅（スペース4つ）**にそろえましょう！</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading"><span id="toc30">🧩 問題2：コロンを忘れてる！</span></h4>



<pre class="wp-block-preformatted"><code>x = 10<br>if x &gt; 5<br>    print("5より大きい")<br></code></pre>



<p>👇 正しい書き方はこちら：</p>



<pre class="wp-block-preformatted"><code>x = 10<br>if x &gt; 5:<br>    print("5より大きい")<br></code></pre>



<p>🔍 ポイント：</p>



<ul class="wp-block-list">
<li><strong>if文やfor文のあとには「:（コロン）」が必須！</strong></li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h4 class="wp-block-heading"><span id="toc31">🧩 問題3：変数が定義されていない</span></h4>



<pre class="wp-block-preformatted"><code>print(total_price)<br></code></pre>



<p>👇 修正するには、変数をちゃんと用意しましょう：</p>



<pre class="wp-block-preformatted"><code>total_price = 3000<br>print(total_price)<br></code></pre>



<p>🔍 ポイント：</p>



<ul class="wp-block-list">
<li><strong>変数は使う前に必ず定義すること！</strong></li>



<li><code>NameError</code>が出たら「変数、ちゃんと作った？」を疑いましょう。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc32">5-2. PEP8を意識して書き直してみよう！</span></h3>



<p>こちらのコード、動きますが読みにくいです：</p>



<pre class="wp-block-preformatted"><code>def tax(p):return p*1.1<br>print(tax(1000))<br></code></pre>



<p>👇 PEP8に従って、読みやすく整えると：</p>



<pre class="wp-block-preformatted"><code>def calculate_tax(price):<br>    return price * 1.1<br><br>print(calculate_tax(1000))<br></code></pre>



<p>🔍 ポイント：</p>



<ul class="wp-block-list">
<li>関数名・引数名は意味がわかるように</li>



<li>処理と処理の間に<strong>空行</strong>を入れて見やすく</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc33">🧑‍🏫 ワンポイントまとめ！</span></h3>



<ul class="wp-block-list">
<li>「間違いを直す」練習は、成長への一番の近道！</li>



<li>エラーを見つけて修正できる力は、プログラミングの武器！</li>



<li>PEP8を意識するだけで、コードの読みやすさがグッとアップ！</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc34">6. まとめ｜ルールを知れば怖くない、Pythonの第一歩</span></h2>



<p>ここまで、Python初心者がつまずきやすいポイントを中心に、基本的な構文やエラーの読み方、そして読みやすいコードの書き方（PEP8）について学んできました。</p>



<p>最初は「インデントって何？」「なんでこんなエラーが出るの？」と戸惑うことも多いと思います。<br>でも、<strong>Pythonには明確なルールがあり、それを知っていれば自然とコードが書けるようになります</strong>。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc35">💡 この記事で学んだことをふり返ろう！</span></h3>



<ul class="wp-block-list">
<li><strong>Pythonは“インデント”と“改行”が命</strong><br>　→ コードの形で「処理のまとまり」を表す</li>



<li><strong>PEP8に沿えば、読みやすいコードになる</strong><br>　→ 未来の自分や他人が見てもわかるコードを目指そう！</li>



<li><strong>エラーメッセージは味方にしよう</strong><br>　→ 問題の場所や内容を教えてくれる、大事なヒント！</li>



<li><strong>間違い探しは最高の練習</strong><br>　→ 実践を通じて理解が深まる！</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc36">🔰 おわりに</span></h3>



<p>Pythonの学習は、<strong>「失敗→理解→成功」のくり返し</strong>です。<br>エラーが出たときに「わからない」で止まらず、「なんで？」と調べていく姿勢が、プログラミングの上達にはとても大切です。</p>



<p>焦らず、ひとつひとつ、できることを増やしていきましょう。<br>あなたの第一歩が、これからの大きな成長につながるはずです！</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>次は、実際に自分でコードを書いてみたり、簡単な課題に挑戦したりしてみてください。<br>「print」1行から始まったPythonの道が、きっと楽しく広がっていきますよ！</p>
</div></div>



<figure class="wp-block-embed is-type-wp-embed is-provider-python-ai-web wp-block-embed-python-ai-web"><div class="wp-block-embed__wrapper">

<a target="_blank" href="https://python.cbagames.jp/2025/06/02/python-variable-beginner/" title="【Python入門3】Pythonの変数とは？命名ルールと使い方を初心者でもわかるように解説！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://python.cbagames.jp/wp-content/uploads/2025/06/0655eea39e2cbb7664862d1fad56c593-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/06/0655eea39e2cbb7664862d1fad56c593-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/06/0655eea39e2cbb7664862d1fad56c593-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/06/0655eea39e2cbb7664862d1fad56c593-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/06/0655eea39e2cbb7664862d1fad56c593-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/06/0655eea39e2cbb7664862d1fad56c593-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/06/0655eea39e2cbb7664862d1fad56c593-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/06/0655eea39e2cbb7664862d1fad56c593.jpg 1280w" sizes="auto, (max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【Python入門3】Pythonの変数とは？命名ルールと使い方を初心者でもわかるように解説！</div><div class="blogcard-snippet internal-blogcard-snippet">Python初心者向けに「変数」の基本をわかりやすく解説。命名ルールや代入・参照のステップ、実際のサンプルコードまで丁寧に紹介します。</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://python.cbagames.jp" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">python.cbagames.jp</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2025.06.02</div></div></div></div></a>
</div></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc37">よくある質問（Q&amp;A）</span></h2>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">Pythonのコードでインデントってそんなに大事なんですか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong>はい、大事です！</strong><br>Pythonではインデント（字下げ）がコードの“かたまり”を示すため、正しく書かないとエラーになります。他の言語では「{ }」で囲むような部分も、Pythonでは<strong>インデントの深さ</strong>で表すため、見た目がそのまま動作に影響します。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">タブ（Tabキー）とスペースのどっちを使えばいいですか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong>基本的にはスペース4つが推奨です。</strong><br>Pythonの公式ルール（PEP8）では、<strong>タブではなくスペース4つ</strong>を使うのが望ましいとされています。タブとスペースを混ぜるとエラーの原因にもなるので注意しましょう！</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">エラーが出たとき、どうすればいいの？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong>エラーメッセージを読んで、まず「どの行で」「どんなエラーか」を確認しましょう。</strong><br>たとえば「<code>SyntaxError</code>」なら文法ミス、「<code>NameError</code>」なら変数の書き間違いなど、**エラーの種類には意味があります。**わからない場合は、そのままコピペしてGoogle検索するのも効果的です。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/02/python-syntax-indent-pep8-beginner2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
