<?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>Python初心者  |  Python-memo｜自動化・AI・Web開発の実験室</title>
	<atom:link href="https://python.cbagames.jp/tag/python%E5%88%9D%E5%BF%83%E8%80%85/feed/" rel="self" type="application/rss+xml" />
	<link>https://python.cbagames.jp</link>
	<description>Pythonで、できるをふやそう。</description>
	<lastBuildDate>Tue, 03 Feb 2026 05:41:09 +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>Python初心者  |  Python-memo｜自動化・AI・Web開発の実験室</title>
	<link>https://python.cbagames.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Python初心者が勘違いしやすい「便利そうで危険な書き方」5選</title>
		<link>https://python.cbagames.jp/2026/01/26/python-bad-writing-patterns/</link>
					<comments>https://python.cbagames.jp/2026/01/26/python-bad-writing-patterns/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Mon, 26 Jan 2026 04:41:23 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[Python]]></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=802</guid>

					<description><![CDATA[目次 はじめに結論Python初心者が勘違いしやすい「危険な書き方」5選複雑すぎるワンライナー（内包表記・lambdaの乱用）ミュータブルなデフォルト引数（list = []）組み込み関数名と同じ変数名を使う（sum / [&#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">結論</a></li><li><a href="#toc3" tabindex="0">Python初心者が勘違いしやすい「危険な書き方」5選</a><ol><li><a href="#toc4" tabindex="0">複雑すぎるワンライナー（内包表記・lambdaの乱用）</a></li><li><a href="#toc5" tabindex="0">ミュータブルなデフォルト引数（list = []）</a></li><li><a href="#toc6" tabindex="0">組み込み関数名と同じ変数名を使う（sum / str / id）</a></li><li><a href="#toc7" tabindex="0">if文の深すぎるネスト（ifピラミッド）</a></li><li><a href="#toc8" tabindex="0">グローバル変数の安易な使用</a></li></ol></li><li><a href="#toc9" tabindex="0">「悪い書き方」を避けるための実践チェックリスト</a></li><li><a href="#toc10" tabindex="0">学習段階で「正しい書き方」を身につけるには</a></li><li><a href="#toc11" tabindex="0">よくある誤解・注意点</a><ol><li><a href="#toc12" tabindex="0">短いコード＝良いコード、ではない</a></li><li><a href="#toc13" tabindex="0">上級者のコードをそのまま真似しなくていい</a></li><li><a href="#toc14" tabindex="0">Pythonicは「慣れてから」で大丈夫</a></li></ol></li><li><a href="#toc15" tabindex="0">まとめ</a></li><li><a href="#toc16" tabindex="0">参考文献</a></li><li><a href="#toc17" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

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



<p>Pythonを学び始めたばかりの頃って、「ちゃんと動いた！」だけで嬉しくなりますよね。 サンプルコードをコピペして実行し、エラーが出なければ「これで正解なんだ」と思ってしまうのも、すごく自然なことです。</p>



<p>でも実は、Python初心者が「便利そう」「かっこいい」と感じて真似しがちな書き方の中には、<strong>後から自分や他人を確実に苦しめる“危険なコード”</strong>が混ざっています。</p>



<p>そのコードは、たしかに今は動くかもしれません。 けれど少し時間が経ったあとに見返すと、</p>



<ul class="wp-block-list">
<li>何をしているのか分からない</li>



<li>どこを直せばいいのか分からない</li>



<li>触るのが怖くて放置する</li>
</ul>



<p>――そんな「読めないコード」になってしまうことが本当によくあります。</p>



<p>Pythonはもともと、<strong>「読みやすさ」をとても大切にする言語</strong>です。 短く書けることや、賢そうに見えることよりも、「あとから読んで理解できるか」が重視されています。</p>



<p>この記事では、Python初心者が特につまずきやすい</p>



<ul class="wp-block-list">
<li>一見便利そうに見えるけど危険な書き方</li>



<li>なぜそれが問題になるのか</li>



<li>どう書き直せば安全なのか</li>
</ul>



<p>を、具体例と一緒に解説していきます。</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">結論</span></h2>



<p>結論からお伝えします。 Pythonで本当に大事なのは、<strong>「動くコード」よりも「後から読めるコード」</strong>です。</p>



<p>初心者のうちは、</p>



<ul class="wp-block-list">
<li>短く書ける</li>



<li>1行で済む</li>



<li>なんとなく賢そう</li>
</ul>



<p>こうした要素に惹かれてコードを書きがちですが、これがそのまま積み重なると、あとで必ず困るコードになります。</p>



<p>今回紹介する「便利そうで危険な書き方」は、どれも</p>



<ul class="wp-block-list">
<li>初心者が悪気なくやってしまう</li>



<li>その場では問題が起きにくい</li>



<li>でも後から修正・理解が難しくなる</li>
</ul>



<p>という共通点があります。</p>



<p>逆に言えば、これから解説する5つのポイントを意識するだけで、</p>



<ul class="wp-block-list">
<li>自分で読み返せるコード</li>



<li>人に見せても恥ずかしくないコード</li>



<li>安心して修正できるコード</li>
</ul>



<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>が、Python上達への一番の近道です。</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">Python初心者が勘違いしやすい「危険な書き方」5選</span></h2>



<h3 class="wp-block-heading"><span id="toc4">複雑すぎるワンライナー（内包表記・lambdaの乱用）</span></h3>



<p>Pythonを学び始めると、リスト内包表記や <code>lambda</code> を使った<strong>短い書き方</strong>に出会います。 最初は「こんなにスッキリ書けるんだ！」と感動しますよね。</p>



<p>たとえば、こんなコードです。</p>



<pre class="wp-block-code"><code>
result = &#91;x for x in data if x % 2 == 0 if x &amp;gt; 10]
</code></pre>



<p>このくらいなら、まだ読める人も多いと思います。 でも初心者がやりがちなのは、ここからさらに条件や処理を足してしまうことです。</p>



<pre class="wp-block-code"><code>
result = &#91;func(x) for x in data if x % 2 == 0 and x &amp;gt; 10 and check(x)]
</code></pre>



<p>こうなると、「この1行は何をしているのか」を理解するために、頭の中でかなりの処理を同時に追う必要があります。</p>



<p><strong>問題は、短いこと自体ではありません。</strong> 1行に情報を詰め込みすぎると、読む側の負担（メンタルロード）が一気に跳ね上がります。</p>



<p>特に初心者のうちは、</p>



<ul class="wp-block-list">
<li>条件が2つ以上ある</li>



<li>関数呼び出しが混ざる</li>



<li>処理の意図を説明できない</li>
</ul>



<p>このどれかに当てはまった時点で、ワンライナーは危険信号です。</p>



<p>では、どう書けばいいのでしょうか。 こういう場合は、素直に処理を分けたほうが安全です。</p>



<pre class="wp-block-code"><code>
result = &#91;]
for x in data:
    if x % 2 != 0:
        continue
    if x &amp;lt;= 10:
        continue
    if not check(x):
        continue
    result.append(func(x))
</code></pre>



<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>Pythonらしい書き方とは、「短いコード」ではなく<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="toc5">ミュータブルなデフォルト引数（list = []）</span></h3>



<p>これは、Python初心者が<strong>ほぼ確実に一度は踏む罠</strong>です。 しかもエラーが出ないので、「何が悪いのか分からないまま」進んでしまいがちです。</p>



<p>たとえば、こんな関数を書いたことはありませんか？</p>



<pre class="wp-block-code"><code>
def add_item(item, items=&#91;]):
    items.append(item)
    return items
</code></pre>



<p>一見すると問題なさそうに見えますよね。 実際、1回目の呼び出しでは普通に動きます。</p>



<pre class="wp-block-code"><code>
print(add_item(1))  # &#91;1]
print(add_item(2))  # &#91;1, 2]
</code></pre>



<p>「え？なんで前の結果が残ってるの？」 ここで初めて違和感に気づく人がとても多いです。</p>



<p>これは、Pythonでは<strong>デフォルト引数が関数定義時に一度だけ作られる</strong>という仕様が原因です。 リストのような変更可能（ミュータブル）なオブジェクトを使うと、呼び出し間で状態が共有されてしまいます。</p>



<p>この挙動の背景には、「ミュータブル（変更可能）」と「イミュータブル（変更不可）」という考え方があります。 ここが曖昧なままだと、同じミスを何度も繰り返してしまいます。</p>



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

<a target="_blank" href="https://python.cbagames.jp/2025/06/11/python-mutable-immutable/" title="【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 decoding="async" width="160" height="90" src="https://python.cbagames.jp/wp-content/uploads/2025/06/e64b64588d1bd58b8c88833cfb43294e-8-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/06/e64b64588d1bd58b8c88833cfb43294e-8-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/06/e64b64588d1bd58b8c88833cfb43294e-8-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/06/e64b64588d1bd58b8c88833cfb43294e-8-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/06/e64b64588d1bd58b8c88833cfb43294e-8-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/06/e64b64588d1bd58b8c88833cfb43294e-8-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/06/e64b64588d1bd58b8c88833cfb43294e-8-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/06/e64b64588d1bd58b8c88833cfb43294e-8.jpg 1280w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【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 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.11</div></div></div></div></a>
</div>



<p>では、安全な書き方はどうなるでしょうか。</p>



<pre class="wp-block-code"><code>
def add_item(item, items=None):
    if items is None:
        items = &#91;]
    items.append(item)
    return items
</code></pre>



<p>このように <code>None</code> を使うのが、Pythonでは定番の回避パターンです。 少し回りくどく見えるかもしれませんが、<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>初心者のうちは、「動いたからOK」ではなく、 <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="toc6">組み込み関数名と同じ変数名を使う（sum / str / id）</span></h3>



<p>Python初心者がやりがちなミスの中でも、 <strong>「意味的には正しそうだから気づきにくい」</strong>のがこのパターンです。</p>



<p>たとえば、合計値を表したいときに、こんなコードを書いてしまうことがあります。</p>



<pre class="wp-block-code"><code>
sum = 0
for x in data:
    sum += x
</code></pre>



<p>一見すると何も問題なさそうですよね。 でも、この時点で Python の組み込み関数 <code>sum()</code> を上書きしてしまっています。</p>



<p>その結果、あとでこんなコードを書くと……</p>



<pre class="wp-block-code"><code>
total = sum(data)
</code></pre>



<p><strong>エラーが発生します。</strong> 「え、さっきまで普通に使えてたのに？」と混乱する原因になります。</p>



<p>これは <code>sum</code> だけでなく、</p>



<ul class="wp-block-list">
<li><code>str</code></li>



<li><code>list</code></li>



<li><code>id</code></li>



<li><code>dict</code></li>
</ul>



<p>など、多くの組み込み名で起こりえます。</p>



<p>初心者のうちは、</p>



<ul class="wp-block-list">
<li>エラーメッセージが分かりづらい</li>



<li>どこで壊したのか追いにくい</li>
</ul>



<p>という理由から、デバッグにかなり時間を取られてしまいます。</p>



<p>こうしたトラブルを防ぐためには、<strong>少し具体的な名前</strong>を付けるのがコツです。</p>



<pre class="wp-block-code"><code>
total_sum = 0
user_id = 123
text_str = "hello"
</code></pre>



<p>「短い名前＝良い名前」ではありません。 <strong>役割が一瞬で分かるかどうか</strong>が、変数名のいちばん大事なポイントです。</p>



<p>変数名の付け方については、初心者がつまずきやすいポイントをまとめた記事があります。</p>



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

<a target="_blank" href="https://python.cbagames.jp/2025/06/06/variables-nameerror-beginner-mistakes/" title="Python初心者がやりがちな変数名のミス5選｜NameErrorを防ぐコツ" 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/765874d89d31d6bb9adc1a14afad0da5-4-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-4-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-4-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-4-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-4-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-4-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-4-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-4.jpg 1280w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Python初心者がやりがちな変数名のミス5選｜NameErrorを防ぐコツ</div><div class="blogcard-snippet internal-blogcard-snippet">Python初心者がよく遭遇する「NameError」の原因は変数名のミスにあり！本記事ではありがちな5つのミスと、その防ぎ方をやさしく解説します。NameErrorに悩む方必見です。</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.06</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>最初のうちは少し長く感じるかもしれませんが、 あとから読み返したときの理解スピードは、確実にこちらのほうが速くなります。</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="toc7">if文の深すぎるネスト（ifピラミッド）</span></h3>



<p>条件分岐を書いているうちに、<strong>if文がどんどん右にずれていく</strong>── そんな経験はありませんか？</p>



<p>たとえば、こんなコードです。</p>



<pre class="wp-block-code"><code>
if user is not None:
    if user.is_active:
        if user.age &amp;gt;= 18:
            if user.has_permission:
                do_something()
</code></pre>



<p>動作自体は問題ありません。 でも、このコードを<strong>上から一気に理解するのはかなり大変</strong>です。</p>



<p>ネストが深くなると、</p>



<ul class="wp-block-list">
<li>どの条件で処理が実行されるのか分かりにくい</li>



<li>途中で条件を追加・変更しづらい</li>



<li>インデントを見るだけで疲れる</li>
</ul>



<p>といった問題が出てきます。</p>



<p>こういう場合におすすめなのが、<strong>ガード節（早めにreturnする書き方）</strong>です。</p>



<pre class="wp-block-code"><code>
if user is None:
    return
if not user.is_active:
    return
if user.age &amp;lt; 18:
    return
if not user.has_permission:
    return

do_something()
</code></pre>



<p>条件は同じでも、「どの条件で弾かれるのか」が一目で分かりますよね。 処理の本体も、下のほうにスッと現れるので読みやすくなります。</p>



<p>if文のネストが深くなり始めたら、</p>



<ul class="wp-block-list">
<li>returnで早く抜けられないか？</li>



<li>条件を関数に切り出せないか？</li>
</ul>



<p>この2点を考えるクセを付けるだけで、コードはかなり整理されます。</p>



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



<h3 class="wp-block-heading"><span id="toc8">グローバル変数の安易な使用</span></h3>



<p>「関数に渡すのが面倒だから」「どこからでも使えると楽だから」 そんな理由でグローバル変数を使ってしまうのも、初心者がハマりやすいポイントです。</p>



<pre class="wp-block-code"><code>
count = 0

def increment():
    global count
    count += 1
</code></pre>



<p>このコードの問題は、<strong>countがどこで変更されるのか追いづらい</strong>ことです。 処理が増えてくると、「いつ」「誰が」値を変えたのか分からなくなります。</p>



<p>グローバル変数は、コードに<strong>副作用</strong>を生みやすくします。 副作用が増えるほど、バグの原因は見えなくなっていきます。</p>



<p>副作用という考え方については、次の記事で詳しく解説しています。</p>



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

<a target="_blank" href="https://python.cbagames.jp/2026/01/11/python-side-effects-how-to-avoid/" title="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/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6-376x212.jpg 376w, https://python.cbagames.jp/wp-content/uploads/2026/01/15951b85de9f4650a7fefc8c5187aaa5-6.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で考える「副作用」の正体と消し方｜ミュータブル地獄を避ける設計思考</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 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">2026.01.11</div></div></div></div></a>
</div>



<p>基本的には、</p>



<ul class="wp-block-list">
<li>必要な値は引数で渡す</li>



<li>結果は戻り値で受け取る</li>
</ul>



<p>という形を守るだけで、コードの見通しは一気に良くなります。</p>



<pre class="wp-block-code"><code>
def increment(count):
    return count + 1
</code></pre>



<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">「悪い書き方」を避けるための実践チェックリスト</span></h2>



<p>ここまで読んで、「なるほど、これは確かに危ないかも」と感じた方も多いと思います。 でも実際にコードを書く場面では、毎回この記事を思い出すのは大変ですよね。</p>



<p>そこでこの章では、<strong>自分のコードをその場でチェックできる実践用リスト</strong>を用意しました。 書き終えたあとに、軽く見直すだけでも効果があります。</p>



<ul class="wp-block-list">
<li><strong>この1行、声に出して説明できる？</strong><br>もし途中で詰まるなら、情報を詰め込みすぎている可能性があります。</li>



<li><strong>条件や処理が増えたらすぐ壊れそうじゃない？</strong><br>少しの変更で全体を触る必要があるコードは、将来の地雷です。</li>



<li><strong>半年後の自分が初見で読める？</strong><br>「自分なら分かる」は意外と信用できません。</li>



<li><strong>変数名だけで役割が伝わる？</strong><br>コメントがないと分からない名前は、改善の余地ありです。</li>



<li><strong>値はどこから来て、どこへ行くか追える？</strong><br>グローバル変数や副作用が多いと、ここが一気に崩れます。</li>
</ul>



<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>Pythonでは、<strong>分かりやすく書くこと自体が正解</strong>です。 遠回りに見えても、結果的には一番早く上達します。</p>
</div></div>



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



<h2 class="wp-block-heading"><span id="toc10">学習段階で「正しい書き方」を身につけるには</span></h2>



<p>ここまでで、「これは避けたほうがいいな」という書き方はかなり見えてきたと思います。 ただ、NG例を知るだけでは、<strong>「じゃあ普段どう書けばいいの？」</strong>という疑問が残りますよね。</p>



<p>初心者の方を見ていると、</p>



<ul class="wp-block-list">
<li>ダメな理由は分かったけど、正解が分からない</li>



<li>ネットのコードが全部良さそうに見える</li>



<li>結局、感覚で書いてしまう</li>
</ul>



<p>という状態に陥りがちです。</p>



<p>この段階で一番大切なのは、<strong>「ちゃんとしたコード」を大量に見ること</strong>です。 自己流を続けるより、基準となる書き方を先に体に入れてしまったほうが、あとが楽になります。</p>



<p>そのための選択肢として、初心者〜初級者に特に相性がいいのが、次のような教科書系の書籍です。</p>



<p><strong>実践力を身につける Pythonの教科書 第2版</strong><br><a rel="noopener" target="_blank" href="https://amzn.to/49WFfhJ">✅ Amazonでチェックする</a> ｜ <a rel="noopener" target="_blank" href="https://a.r10.to/hPryrP">✅ 楽天でチェックする</a></p>



<p>このタイプの本は、</p>



<ul class="wp-block-list">
<li>変な省略をしない</li>



<li>読みやすさを前提に書かれている</li>



<li>「なぜそう書くのか」が説明されている</li>
</ul>



<p>という点で、コードの<strong>基準作り</strong>にとても向いています。</p>



<p>また、「実務っぽいコードを早めに触りたい」という人には、こちらもおすすめです。</p>



<p><strong>シゴトがはかどる Python自動処理の教科書</strong><br><a rel="noopener" target="_blank" href="https://amzn.to/4rbVVc3">✅ Amazonでチェックする</a> ｜ <a rel="noopener" target="_blank" href="https://a.r10.to/hkY9Pz">✅ 楽天でチェックする</a></p>



<p>実用寄りのコードは、</p>



<ul class="wp-block-list">
<li>読みづらいとすぐ破綻する</li>



<li>後から修正される前提で書かれている</li>
</ul>



<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>最初からPythonicを完璧に目指す必要はありません。 まずは<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="toc11">よくある誤解・注意点</span></h2>



<p>ここまで読んで、「じゃあ短いコードや賢そうな書き方は全部ダメなの？」と感じた方もいるかもしれません。 ですが、いくつか<strong>誤解されやすいポイント</strong>があるので、ここで整理しておきます。</p>



<h3 class="wp-block-heading"><span id="toc12">短いコード＝良いコード、ではない</span></h3>



<p>Pythonでは短く書ける構文が多いですが、 <strong>短さはゴールではなく結果</strong>です。</p>



<p>読みやすさ・変更しやすさを優先した結果として短くなるのはOKですが、 「短くしたいから1行に詰め込む」のは本末転倒です。</p>



<h3 class="wp-block-heading"><span id="toc13">上級者のコードをそのまま真似しなくていい</span></h3>



<p>ネットや書籍で見かけるコードの中には、</p>



<ul class="wp-block-list">
<li>前提知識が共有されている</li>



<li>文脈を省略している</li>



<li>チーム内ルールがある</li>
</ul>



<p>といったケースも多くあります。</p>



<p>初心者が同じ書き方をすると、 <strong>「意味は分からないけど動くコード」</strong>になりがちです。</p>



<p>最初のうちは、<strong>自分が説明できる書き方だけを採用する</strong>くらいでちょうどいいです。</p>



<h3 class="wp-block-heading"><span id="toc14">Pythonicは「慣れてから」で大丈夫</span></h3>



<p>Pythonicという言葉を意識しすぎて、 かえってコードが読みにくくなる人も少なくありません。</p>



<p>まずは、</p>



<ul class="wp-block-list">
<li>処理の流れが追える</li>



<li>条件や意図が分かる</li>



<li>安心して修正できる</li>
</ul>



<p>この3点を満たすことを優先してください。</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>Pythonicな書き方は、<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="toc15">まとめ</span></h2>



<p>今回は、Python初心者が「便利そう」「かっこいい」と感じて真似しがちな、 <strong>実は危険な書き方</strong>を5つ紹介しました。</p>



<ul class="wp-block-list">
<li>複雑すぎるワンライナー</li>



<li>ミュータブルなデフォルト引数</li>



<li>組み込み関数名と同じ変数名</li>



<li>深すぎるif文のネスト</li>



<li>安易なグローバル変数の使用</li>
</ul>



<p>どれも「今すぐエラーになる」わけではありません。 だからこそ、初心者のうちは気づきにくく、あとから自分を苦しめる原因になります。</p>



<p>大切なのは、 <strong>Pythonが得意なことは「賢く書くこと」ではなく「分かりやすく書くこと」</strong>だと理解することです。</p>



<p>最初のうちは、</p>



<ul class="wp-block-list">
<li>行数が増えても気にしない</li>



<li>自分で説明できる書き方を選ぶ</li>



<li>あとから直しやすい形を意識する</li>
</ul>



<p>これだけで、コードの質は確実に変わります。</p>



<p>「動いたからOK」から一歩進んで、 <strong>「安心して読み返せるコード」</strong>を目指していきましょう。</p>



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



<h2 class="wp-block-heading"><span id="toc16">参考文献</span></h2>



<ul class="wp-block-list">
<li><a rel="noopener" target="_blank" href="https://qiita.com/_masa_u/items/b21c493a82e8aba8993f">Python初心者がやりがちなアンチパターンまとめ（Qiita）</a></li>



<li><a rel="noopener" target="_blank" href="https://codefinity.com/blog/13-Bad-Practices-in-Python-Coding">13 Bad Practices in Python Coding（Codefinity）</a></li>



<li><a rel="noopener" target="_blank" href="https://ishi-blog.com/python-code8/">Pythonコードが汚くなる原因と改善ポイント（いしブログ）</a></li>



<li><a rel="noopener" target="_blank" href="https://www.reddit.com/r/learnpython/comments/1fdj65p/what_are_the_bad_python_programming_practices/">What are the bad Python programming practices?（Reddit / r/learnpython）</a></li>



<li><a rel="noopener" target="_blank" href="https://zenn.dev/cloud_ace/articles/understandable_code">「わかりやすいコード」とは何かを考える（Zenn）</a></li>



<li><a rel="noopener" target="_blank" href="https://realpython.com/python-code-quality/">Python Code Quality: Tools &amp; Best Practices（Real Python）</a></li>



<li><a rel="noopener" target="_blank" href="https://en.wikipedia.org/wiki/Zen_of_Python">The Zen of Python（Wikipedia）</a></li>



<li><a rel="noopener" target="_blank" href="https://www.youtube.com/watch?v=Sj0udDHFQM0">Clean Code / Readable Code 解説動画（YouTube）</a></li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc17">よくある質問（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>



<p>ただし、「説明できない」「条件が増えそう」と感じたら、 その時点で分けて書いたほうが安全です。</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">Pythonicな書き方は、いつから意識すればいいですか？</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>



<p>最初からPythonicを目指すより、 読みやすさを優先したほうが結果的に近道になります。</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>



<ul class="wp-block-list">
<li>処理の流れが追える</li>



<li>名前から役割が分かる</li>



<li>副作用が少ない</li>
</ul>



<p>といった点は、多くの人に共通する基準です。</p>



<p>「他人が読む前提」で書く意識を持つだけで、 可読性は大きく改善します。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2026/01/26/python-bad-writing-patterns/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python標準ライブラリ逆引き事典【用途別まとめ】｜初心者〜中級者がすぐ使える実践リファレンス</title>
		<link>https://python.cbagames.jp/2026/01/15/python-standard-library-reverse-lookup/</link>
					<comments>https://python.cbagames.jp/2026/01/15/python-standard-library-reverse-lookup/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Thu, 15 Jan 2026 09:21:10 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[Pythonモジュール]]></category>
		<category><![CDATA[Pythonリファレンス]]></category>
		<category><![CDATA[Python初心者]]></category>
		<category><![CDATA[Python基礎]]></category>
		<category><![CDATA[Python実践]]></category>
		<category><![CDATA[Python標準ライブラリ]]></category>
		<category><![CDATA[Python逆引き]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=786</guid>

					<description><![CDATA[目次 はじめに1. テキスト処理・文字列操作正規表現操作（re）テキストの整形・補助2. ファイル・ディレクトリ操作とアーカイブオブジェクト指向パス操作（pathlib）高水準ファイル操作（shutil）パターン展開（g [&#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">はじめに</a></li><li><a href="#toc2" tabindex="0">1. テキスト処理・文字列操作</a><ol><li><a href="#toc3" tabindex="0">正規表現操作（re）</a></li><li><a href="#toc4" tabindex="0">テキストの整形・補助</a></li></ol></li><li><a href="#toc5" tabindex="0">2. ファイル・ディレクトリ操作とアーカイブ</a><ol><li><a href="#toc6" tabindex="0">オブジェクト指向パス操作（pathlib）</a></li><li><a href="#toc7" tabindex="0">高水準ファイル操作（shutil）</a></li><li><a href="#toc8" tabindex="0">パターン展開（glob）</a></li></ol></li><li><a href="#toc9" tabindex="0">3. データの直列化・永続化・変換</a><ol><li><a href="#toc10" tabindex="0">データベース操作（sqlite3）</a></li><li><a href="#toc11" tabindex="0">JSONエンコード・デコード（json）</a></li><li><a href="#toc12" tabindex="0">CSVファイルの読み書き（csv）</a></li><li><a href="#toc13" tabindex="0">Pythonオブジェクトの直列化（pickle）</a></li></ol></li><li><a href="#toc14" tabindex="0">4. 日付・時刻と数値演算</a><ol><li><a href="#toc15" tabindex="0">日付・時刻管理（datetime）</a></li><li><a href="#toc16" tabindex="0">時刻の取得と変換（time）</a></li><li><a href="#toc17" tabindex="0">数学関数と数学モデル</a></li></ol></li><li><a href="#toc18" tabindex="0">5. OSサービス・並行実行・デバッグ</a><ol><li><a href="#toc19" tabindex="0">コマンドライン引数の解析（argparse）</a></li><li><a href="#toc20" tabindex="0">並列・並行処理</a></li><li><a href="#toc21" tabindex="0">サブプロセス管理（subprocess）</a></li><li><a href="#toc22" tabindex="0">ログ記録（logging）</a></li></ol></li><li><a href="#toc23" tabindex="0">6. インターネット・構造化データ処理</a><ol><li><a href="#toc24" tabindex="0">URLリソースへのアクセス（urllib.request）</a></li><li><a href="#toc25" tabindex="0">XML / HTML解析</a></li><li><a href="#toc26" tabindex="0">低水準ネットワーク通信（socket）</a></li></ol></li><li><a href="#toc27" tabindex="0">7. 開発・テストツール</a><ol><li><a href="#toc28" tabindex="0">ユニットテスト（unittest）</a></li><li><a href="#toc29" tabindex="0">対話型実行例のテスト（doctest）</a></li><li><a href="#toc30" tabindex="0">システム固有の機能（sys）</a></li></ol></li><li><a href="#toc31" tabindex="0">📘 おすすめ書籍</a><ol><li><a href="#toc32" tabindex="0">逆引きPython標準ライブラリ</a></li><li><a href="#toc33" tabindex="0">解きながら学ぶ Pythonつみあげトレーニングブック</a></li></ol></li><li><a href="#toc34" tabindex="0">まとめ</a></li><li><a href="#toc35" tabindex="0">参考文献</a></li><li><a href="#toc36" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

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



<p>Pythonを使っていて、「あれ？この処理、外部ライブラリ入れないと無理かな？」と感じたこと、ありませんか？ でも実はそれ、<strong>Pythonの標準ライブラリだけで解決できる</strong>ケースがとても多いんです。</p>



<p>Python標準ライブラリは、最初からインストールされていて、文字列処理・ファイル操作・日付計算・並列処理・ネットワーク通信まで幅広くカバーしています。 ただし問題なのが、「種類が多すぎて、どれを使えばいいか分からない」こと。</p>



<p>そこでこの記事では、<strong>「やりたいこと」から逆引きで探せる</strong>ように、Python標準ライブラリを用途別にまとめました。 困ったときにパッと開いて、「あ、これ使えばいいんだ」と分かる<strong>実践向けの事典</strong>を目指しています。</p>



<p>初心者の方はもちろん、 「毎回ググって同じモジュールを調べている…」という中級者の方にも、<strong>長く使えるリファレンス</strong>になるはずです。</p>



<p>なお、標準ライブラリ全体の地図を先に把握しておきたい方は、こちらの記事もあわせて読むと理解が一気に深まります👇</p>



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

<a target="_blank" href="https://python.cbagames.jp/2025/12/27/python-stdlib-map-beginners/" title="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/12/15951b85de9f4650a7fefc8c5187aaa5-10-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-10-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-10-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-10-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-10-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-10-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-10-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-10-376x212.jpg 376w, https://python.cbagames.jp/wp-content/uploads/2025/12/15951b85de9f4650a7fefc8c5187aaa5-10.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初心者が「標準ライブラリだけ」でどこまで戦えるか完全マップ｜できること総まとめ</div><div class="blogcard-snippet internal-blogcard-snippet">Python初心者向けに、標準ライブラリだけで「何ができるか」を分野別に地図化。テキスト処理・ファイル操作・JSON/CSV・SQLite・並行処理・HTTP・テスト・GUIまで、外部ライブラリに頼らない実装の入口と代表モジュールをまとめて解説します。</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.12.27</div></div></div></div></a>
</div>



<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">1. テキスト処理・文字列操作</span></h2>



<p>Pythonで一番よく触れるデータ型といえば、やっぱり<strong>文字列（str）</strong>ですよね。 ログ解析、CSV加工、ユーザー入力のチェックなど、実務でも日常的に登場します。</p>



<p>ここでは、<strong>少し複雑な文字列処理をスマートに解決できる標準ライブラリ</strong>を中心に紹介します。</p>



<h3 class="wp-block-heading"><span id="toc3">正規表現操作（re）</span></h3>



<p>「特定のパターンを含む文字列を探したい」「条件に合う部分だけ置き換えたい」 そんなときに活躍するのが <strong>re モジュール</strong>です。</p>



<p>例えばこんな場面で使われます。</p>



<ul class="wp-block-list">
<li>メールアドレスやURLの抽出</li>



<li>ログから日付やエラーコードだけを抜き出す</li>



<li>フォーマットがバラバラな文字列を一括で整形する</li>
</ul>



<p>基本的な使い方の流れは次の通りです。</p>



<ol class="wp-block-list">
<li><code>re.compile()</code> で正規表現パターンをオブジェクト化（繰り返し使う場合に便利）</li>



<li><code>search()</code> で文字列全体から一致箇所を探す</li>



<li><code>match()</code> で先頭が一致しているかを確認する</li>



<li><code>findall()</code> / <code>finditer()</code> で一致したすべての結果を取得する</li>



<li><code>sub()</code> で一致部分を置換する</li>
</ol>



<p>正規表現は最初こそ少しクセがありますが、 一度慣れると<strong>数行で複雑な文字列処理が書ける</strong>ようになります。</p>



<p>基礎から丁寧に理解したい場合は、次の記事がとても参考になります👇</p>



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

<a target="_blank" href="https://python.cbagames.jp/2025/06/12/python-regex-re-module-beginner/" title="Python正規表現の使い方入門｜reモジュールで文字列を簡単マッチング！" 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/42a4ef617a437f0a47cab0b771b8eba6-7-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-7-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-7-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-7-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-7-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-7-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-7-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-7.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正規表現の使い方入門｜reモジュールで文字列を簡単マッチング！</div><div class="blogcard-snippet internal-blogcard-snippet">Pythonの正規表現（reモジュール）の使い方を初心者向けにやさしく解説！記号の意味からmatch・searchの使い方まで例付きで紹介。</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.12</div></div></div></div></a>
</div>



<h3 class="wp-block-heading"><span id="toc4">テキストの整形・補助</span></h3>



<p>正規表現ほどガチじゃないけど、 「ちょっと整えたい」「差分を見たい」そんな場面で便利なのが次のモジュールです。</p>



<ul class="wp-block-list">
<li><strong>textwrap</strong><br>長い文章を指定した文字数で折り返したり、インデントを揃えたりできます。 CLIツールのヘルプ文生成などで地味に活躍します。</li>



<li><strong>difflib</strong><br>2つの文字列やファイルの差分を計算できます。 設定ファイルの変更チェックや簡易レビュー用途に便利です。</li>



<li><strong>string</strong><br>アルファベット一覧やテンプレート文字列など、 「地味だけどあると助かる定数・機能」がまとまっています。</li>
</ul>



<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="toc5">2. ファイル・ディレクトリ操作とアーカイブ</span></h2>



<p>Pythonで自動化やツール作成をしていると、 <strong>ファイル操作・フォルダ操作</strong>はほぼ確実に登場します。</p>



<p>コピー、移動、削除、一覧取得、圧縮…。 これらを安全かつ読みやすく書けるかどうかで、コードの品質は大きく変わります。</p>



<h3 class="wp-block-heading"><span id="toc6">オブジェクト指向パス操作（pathlib）</span></h3>



<p>現在のPythonでは、ファイルパス操作の主役は <strong>pathlib</strong> です。 従来の <code>os.path</code> よりも直感的で、コードがとても読みやすくなります。</p>



<p>pathlibの特徴は次の通りです。</p>



<ul class="wp-block-list">
<li>パスを「文字列」ではなく「オブジェクト」として扱える</li>



<li><code>/</code> 演算子で自然にパスを結合できる</li>



<li>存在確認・種類判定がメソッドとして用意されている</li>
</ul>



<p>基本的な流れはとてもシンプルです。</p>



<ol class="wp-block-list">
<li><code>Path(".")</code> などでパスオブジェクトを作成</li>



<li><code>/</code> 演算子でサブパスを連結</li>



<li><code>exists()</code> / <code>is_file()</code> / <code>is_dir()</code> で状態確認</li>



<li><code>glob()</code> でパターン検索</li>
</ol>



<p>ファイル操作での事故（誤削除・上書き）を防ぐためにも、 <strong>pathlibベースの設計</strong>はかなりおすすめです。</p>



<p>より実務的な設計の考え方まで踏み込みたい方は、こちらの記事がとても参考になります👇</p>



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

<a target="_blank" href="https://python.cbagames.jp/2026/01/10/python-file-operation-design/" title="Pythonで失敗しないファイル操作設計｜pathlib時代の読み書き・削除・バックアップ入門" 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/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3-376x212.jpg 376w, https://python.cbagames.jp/wp-content/uploads/2026/01/a2c4a5d855600ce2de0b369a7cbca001-3.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で失敗しないファイル操作設計｜pathlib時代の読み書き・削除・バックアップ入門</div><div class="blogcard-snippet internal-blogcard-snippet">Pythonのファイル操作を安全・効率的に設計する方法を解説。読み書き・削除・バックアップ・アーカイブまで、pathlibを中心に標準ライブラリだけで実務レベルの設計が身につきます。</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">2026.01.10</div></div></div></div></a>
</div>



<h3 class="wp-block-heading"><span id="toc7">高水準ファイル操作（shutil）</span></h3>



<p>ファイルやディレクトリを<strong>まとめて扱いたい</strong>ときに便利なのが <strong>shutil</strong> です。</p>



<p>例えば、次のような処理が一発で書けます。</p>



<ul class="wp-block-list">
<li>ディレクトリごとのコピー</li>



<li>フォルダ構造を保ったままの移動</li>



<li>不要ディレクトリの削除</li>



<li>フォルダ全体のアーカイブ化</li>
</ul>



<p>特に便利なのが、アーカイブ作成用の <code>make_archive()</code> です。</p>



<ol class="wp-block-list">
<li>アーカイブ名（ベース名）を指定</li>



<li>zip / tar / gztar などの形式を指定</li>



<li>圧縮したいディレクトリを指定</li>
</ol>



<p>バックアップ処理や成果物の自動圧縮などで、 <strong>わざわざ外部ツールを呼び出す必要がなくなる</strong>のは大きなメリットです。</p>



<h3 class="wp-block-heading"><span id="toc8">パターン展開（glob）</span></h3>



<p>「特定の拡張子のファイルだけ処理したい」 そんなときに使えるのが <strong>glob</strong> です。</p>



<p>Unixシェルと同じ感覚で、次のような指定ができます。</p>



<ul class="wp-block-list">
<li><code>*.txt</code> ：すべてのテキストファイル</li>



<li><code>**/*.csv</code> ：サブフォルダ含めてCSVを検索</li>
</ul>



<p>pathlibの <code>Path.glob()</code> と組み合わせると、 <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="toc9">3. データの直列化・永続化・変換</span></h2>



<p>Pythonで扱うデータは、メモリ上だけで完結するとは限りません。 <strong>保存する・読み戻す・別の形式に変換する</strong>場面はとても多いです。</p>



<p>このセクションでは、 <strong>「軽く保存したい」「構造化して扱いたい」</strong>ときに役立つ標準ライブラリを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc10">データベース操作（sqlite3）</span></h3>



<p>「ちょっとしたデータをちゃんと管理したい」 そんなときにちょうどいいのが <strong>sqlite3</strong> です。</p>



<p>sqlite3は、<strong>外部サーバ不要</strong>で使える軽量データベース。 1つのファイルとして管理できるので、個人ツールや小規模アプリに最適です。</p>



<p>基本的な操作の流れは次の通りです。</p>



<ol class="wp-block-list">
<li><code>sqlite3.connect()</code> でデータベースに接続</li>



<li><code>cursor()</code> でカーソルを取得</li>



<li><code>execute()</code> でSQL文を実行</li>



<li>更新系処理の後は <code>commit()</code> で確定</li>
</ol>



<p>CSVよりも構造が必要で、 本格DBほど重くしたくない場合の<strong>ちょうどいい選択肢</strong>です。</p>



<h3 class="wp-block-heading"><span id="toc11">JSONエンコード・デコード（json）</span></h3>



<p>設定ファイルやAPI通信で頻出なのが <strong>JSON</strong> 形式。 Python標準の <strong>json</strong> モジュールで簡単に扱えます。</p>



<ul class="wp-block-list">
<li><code>dumps(obj)</code>：Pythonオブジェクト → JSON文字列</li>



<li><code>loads(s)</code>：JSON文字列 → Pythonのdict / list</li>
</ul>



<p>人が読める・他言語とやり取りしやすい、 <strong>汎用性の高さ</strong>が最大の魅力です。</p>



<h3 class="wp-block-heading"><span id="toc12">CSVファイルの読み書き（csv）</span></h3>



<p>Excelやスプレッドシートと連携するなら、 <strong>csv</strong> モジュールはほぼ必須です。</p>



<p>基本的な流れは次のようになります。</p>



<ol class="wp-block-list">
<li><code>open(newline="")</code> でファイルを開く</li>



<li><code>csv.reader()</code> で行単位の読み込み</li>



<li><code>csv.DictReader()</code> で辞書形式として扱う</li>
</ol>



<p>列名ベースで扱える <code>DictReader</code> は、 可読性が高く、初心者にもおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc13">Pythonオブジェクトの直列化（pickle）</span></h3>



<p><strong>pickle</strong> は、Pythonオブジェクトをそのまま保存・復元できる便利な仕組みです。</p>



<p>ただし、ここはとても大事な注意点があります。</p>



<ul class="wp-block-list">
<li>信頼できないデータは<strong>絶対に読み込まない</strong></li>



<li>外部入力や共有用途には<strong>不向き</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="toc14">4. 日付・時刻と数値演算</span></h2>



<p>日付や時刻、数値計算は一見シンプルそうに見えて、 <strong>地味にバグを生みやすい</strong>ポイントでもあります。</p>



<p>Python標準ライブラリには、 こうした「うっかりミス」を減らすための道具がきちんと用意されています。</p>



<h3 class="wp-block-heading"><span id="toc15">日付・時刻管理（datetime）</span></h3>



<p>日付・時刻を扱う中心的な存在が <strong>datetime</strong> モジュールです。 現在時刻の取得、日付の加減算、文字列との相互変換まで幅広く対応できます。</p>



<p>datetimeで特に重要なのが、次の考え方です。</p>



<ul class="wp-block-list">
<li><strong>naive</strong>：タイムゾーン情報を持たない日時</li>



<li><strong>aware</strong>：タイムゾーン情報を持つ日時</li>
</ul>



<p>この違いを意識せずに使うと、 <strong>環境によって時刻がズレる</strong>といった事故が起こりがちです。</p>



<p>「とりあえず動いた」ではなく、 <strong>意図した時刻を正しく扱えているか</strong>を確認するクセをつけると安心です。</p>



<p>datetimeの基礎から実務での注意点まで知りたい方は、 こちらの記事がとても分かりやすいですよ👇</p>



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

<a target="_blank" href="https://python.cbagames.jp/2025/06/11/python-datetime-basics/" title="【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/5d74ae6847964ce5089c4ecaa61093dd-8-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-8-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-8-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-8-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-8-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-8-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-8-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/06/5d74ae6847964ce5089c4ecaa61093dd-8.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入門】日付・時間・タイムゾーンの基本と使い方をわかりやすく解説！</div><div class="blogcard-snippet internal-blogcard-snippet">Pythonで日付・時間・タイムゾーンを扱う方法を初心者向けにわかりやすく解説。datetimeやtimedeltaの使い方、祝日判定も紹介！</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.11</div></div></div></div></a>
</div>



<h3 class="wp-block-heading"><span id="toc16">時刻の取得と変換（time）</span></h3>



<p>もう少し低レベルに「時間」を扱いたい場合は、 <strong>time</strong> モジュールが使われます。</p>



<ul class="wp-block-list">
<li><code>time()</code>：エポック（1970年1月1日）からの経過秒数を取得</li>



<li><code>sleep()</code>：処理を一定時間停止</li>
</ul>



<p>処理時間の計測や、 簡単な待ち時間制御などでよく登場します。</p>



<h3 class="wp-block-heading"><span id="toc17">数学関数と数学モデル</span></h3>



<p>数値計算まわりも、標準ライブラリだけでかなりカバーできます。</p>



<ul class="wp-block-list">
<li><strong>math</strong><br>三角関数や平方根など、基本的な数学関数を提供します。</li>



<li><strong>decimal</strong><br>金融計算など、誤差を極力出したくない場面で活躍します。</li>



<li><strong>random</strong><br>乱数生成やランダム抽選、簡単なシミュレーションに便利です。</li>
</ul>



<p>特にお金や割合を扱う場合は、 <strong>floatではなくdecimalを選ぶ</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>OS機能・並行実行・デバッグ</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="toc18">5. OSサービス・並行実行・デバッグ</span></h2>



<p>ここからは、少し実務寄りの内容です。 CLIツールを作ったり、処理を高速化したり、トラブル時に原因を追いやすくしたりと、 <strong>「ちゃんと動くPythonコード」</strong>を書くために欠かせない標準ライブラリを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc19">コマンドライン引数の解析（argparse）</span></h3>



<p>Pythonスクリプトをコマンドラインから実行するなら、 <strong>argparse</strong> はほぼ必須と言っていい存在です。</p>



<p>例えば、次のようなことが簡単にできます。</p>



<ul class="wp-block-list">
<li>オプション引数（<code>--input</code>, <code>--output</code> など）の定義</li>



<li>必須引数・任意引数の区別</li>



<li>自動生成されるヘルプメッセージ</li>
</ul>



<p>基本的な流れはとてもシンプルです。</p>



<ol class="wp-block-list">
<li><code>ArgumentParser</code> オブジェクトを作成</li>



<li><code>add_argument()</code> で引数を定義</li>



<li><code>parse_args()</code> で解析</li>
</ol>



<p>「使い方が分かるスクリプト」になるだけで、 ツールとしての完成度は一気に上がります。</p>



<p>初めてargparseを触る方は、こちらの記事を一度読んでおくと安心です👇</p>



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

<a target="_blank" href="https://python.cbagames.jp/2025/06/12/python-argparse-basic-guide/" title="Pythonのargparse入門｜コマンドライン引数を初心者向けにやさしく解説！" 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/765874d89d31d6bb9adc1a14afad0da5-10-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-10-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-10-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-10-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-10-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-10-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-10-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/06/765874d89d31d6bb9adc1a14afad0da5-10.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のargparse入門｜コマンドライン引数を初心者向けにやさしく解説！</div><div class="blogcard-snippet internal-blogcard-snippet">Pythonでコマンドライン引数を使ってみたい方必見！argparseモジュールの基本から、位置引数・オプショナル引数の設定方法まで、初心者にもわかりやすく解説します。</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.12</div></div></div></div></a>
</div>



<h3 class="wp-block-heading"><span id="toc20">並列・並行処理</span></h3>



<p>処理が重くなってきたときに検討したいのが、 <strong>並列・並行処理</strong>です。</p>



<p>Python標準ライブラリでは、次の選択肢が用意されています。</p>



<ul class="wp-block-list">
<li><strong>concurrent.futures</strong>：高レベルで扱いやすい</li>



<li><strong>threading</strong>：I/O待ちが多い処理向け</li>



<li><strong>multiprocessing</strong>：CPUをフル活用したい処理向け</li>
</ul>



<p>特に <strong>concurrent.futures</strong> は、 スレッド・プロセスを意識しすぎずに使えるため、最初の一歩に最適です。</p>



<p>「どれを選べばいいか分からない…」という方は、 次の記事がかなり助けになります👇</p>



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

<a target="_blank" href="https://python.cbagames.jp/2025/06/21/python-concurrent-futures-multithread-multiprocess/" title="Pythonの並列処理を完全理解！concurrent.futuresで簡単マルチスレッド＆マルチプロセス" 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/42a4ef617a437f0a47cab0b771b8eba6-15-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-15-160x90.jpg 160w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-15-300x169.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-15-1024x576.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-15-768x432.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-15-120x68.jpg 120w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-15-320x180.jpg 320w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-15-376x212.jpg 376w, https://python.cbagames.jp/wp-content/uploads/2025/06/42a4ef617a437f0a47cab0b771b8eba6-15.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の並列処理を完全理解！concurrent.futuresで簡単マルチスレッド＆マルチプロセス</div><div class="blogcard-snippet internal-blogcard-snippet">Pythonで処理を効率化したい方必見！concurrent.futuresモジュールを使って、マルチスレッドとマルチプロセスの使い方を初心者向けにわかりやすく解説します。</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.21</div></div></div></div></a>
</div>



<h3 class="wp-block-heading"><span id="toc21">サブプロセス管理（subprocess）</span></h3>



<p>Pythonから外部コマンドを実行したい場合は、 <strong>subprocess</strong> を使います。</p>



<p><code>run()</code> を使えば、</p>



<ul class="wp-block-list">
<li>コマンド実行</li>



<li>終了コードの取得</li>



<li>標準出力・標準エラーの取得</li>
</ul>



<p>までを一括で扱えます。 シェル呼び出しより安全で、制御もしやすいのがポイントです。</p>



<h3 class="wp-block-heading"><span id="toc22">ログ記録（logging）</span></h3>



<p>トラブルシューティングのしやすさを左右するのが <strong>logging</strong> です。</p>



<p>print文とは違い、</p>



<ul class="wp-block-list">
<li>ログレベル（info / warning / error など）</li>



<li>出力先（ファイル・コンソール）</li>



<li>フォーマット</li>
</ul>



<p>を柔軟に制御できます。</p>



<p>「エラーが起きたときに原因が分かるコード」を書くためにも、 <strong>最初からloggingを使う習慣</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="toc23">6. インターネット・構造化データ処理</span></h2>



<p>Web APIを叩いたり、HTMLやXMLを解析したりと、 <strong>インターネット上のデータを扱う場面</strong>でも、Python標準ライブラリはしっかり活躍します。</p>



<p>「スクレイピング＝外部ライブラリ必須」と思われがちですが、 <strong>仕組みを理解するだけなら標準ライブラリで十分</strong>なケースも多いんです。</p>



<h3 class="wp-block-heading"><span id="toc24">URLリソースへのアクセス（urllib.request）</span></h3>



<p>HTTPやFTPを通じてデータを取得したい場合は、 <strong>urllib.request</strong> を使います。</p>



<p>代表的なのが <code>urlopen()</code> です。</p>



<ul class="wp-block-list">
<li>Web APIからJSONを取得する</li>



<li>ファイルをダウンロードする</li>



<li>簡単なHTTP通信を行う</li>
</ul>



<p>といった処理を、外部ライブラリなしで実装できます。</p>



<p>requestsのほうが書きやすい場面もありますが、 <strong>「標準ライブラリで何ができるか」を知っておく</strong>だけでも選択肢が広がります。</p>



<h3 class="wp-block-heading"><span id="toc25">XML / HTML解析</span></h3>



<p>構造化されたデータを解析するための標準ライブラリも用意されています。</p>



<ul class="wp-block-list">
<li><strong>xml.etree.ElementTree</strong><br>XMLデータの読み込み・解析・生成を行うためのシンプルなAPIです。</li>



<li><strong>html.parser</strong><br>HTMLタグやテキストに反応するハンドラを定義し、 自前のパーサを組み立てることができます。</li>
</ul>



<p>がっつりスクレイピングをする場合は外部ライブラリが便利ですが、 <strong>HTMLの構造理解や軽い解析</strong>なら、標準ライブラリでも十分対応できます。</p>



<h3 class="wp-block-heading"><span id="toc26">低水準ネットワーク通信（socket）</span></h3>



<p><strong>socket</strong> は、かなり低レベルな通信を扱うためのライブラリです。</p>



<p>普段の業務で直接触る機会は多くありませんが、</p>



<ul class="wp-block-list">
<li>ネットワークの仕組みを理解したい</li>



<li>独自プロトコルを扱う</li>



<li>通信処理の基礎を学びたい</li>
</ul>



<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="toc27">7. 開発・テストツール</span></h2>



<p>最後は、コードの<strong>品質・安全性・保守性</strong>を支える標準ライブラリです。 「ちゃんと動く」だけでなく、「後から直しやすい」コードを書くために欠かせません。</p>



<h3 class="wp-block-heading"><span id="toc28">ユニットテスト（unittest）</span></h3>



<p>Python標準のテストフレームワークが <strong>unittest</strong> です。 外部ライブラリを使わなくても、テストを書く環境は最初から整っています。</p>



<p>基本的な使い方はとてもシンプルです。</p>



<ol class="wp-block-list">
<li><code>unittest.TestCase</code> を継承したクラスを作成</li>



<li><code>test_</code> で始まるメソッドを書く</li>



<li><code>assertEqual()</code> などで結果を検証</li>
</ol>



<p>「あとでまとめて動作確認しよう」ができるようになるだけで、 修正やリファクタリングの心理的ハードルが一気に下がります。</p>



<h3 class="wp-block-heading"><span id="toc29">対話型実行例のテスト（doctest）</span></h3>



<p><strong>doctest</strong> は、少しユニークなテスト手法です。</p>



<p>関数やモジュールの <strong>docstring 内に書いた実行例</strong> が、 そのままテストとして実行されます。</p>



<p>例えば、</p>



<ul class="wp-block-list">
<li>使い方のサンプル</li>



<li>簡単な入力と出力例</li>
</ul>



<p>をそのまま検証できるため、 <strong>ドキュメントとコードのズレを防ぐ</strong>効果があります。</p>



<h3 class="wp-block-heading"><span id="toc30">システム固有の機能（sys）</span></h3>



<p><strong>sys</strong> モジュールは、Pythonインタプリタと密接に関わる情報を扱います。</p>



<ul class="wp-block-list">
<li><code>sys.argv</code>：コマンドライン引数</li>



<li><code>sys.path</code>：モジュール検索パス</li>



<li><code>sys.modules</code>：読み込み済みモジュール</li>
</ul>



<p>普段は意識しなくても、 「なぜimportできないのか」「実行時に何が渡っているのか」を調べる際に、 <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標準ライブラリだけでも、 <strong>かなり広い範囲の問題を解決できる</strong>ことが分かります。</p>
</div></div>



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



<h2 class="wp-block-heading"><span id="toc31">📘 おすすめ書籍</span></h2>



<p>ここまで読んで、</p>



<ul class="wp-block-list">
<li>「標準ライブラリ、思ったより多いな…」</li>



<li>「全部は覚えきれないけど、手元に辞書が欲しい」</li>
</ul>



<p>と感じた方も多いと思います。 そんな方には、<strong>「逆引きで調べられる書籍」</strong>を1冊持っておくのがおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc32">逆引きPython標準ライブラリ</span></h3>



<p>標準ライブラリを<strong>用途別・逆引き形式</strong>でまとめた定番書です。 この記事と同じ発想で、「やりたいこと」から素早く答えにたどり着けます。</p>



<p>調べ物用として机の横に置いておくと、 ググる回数が目に見えて減ります。</p>



<p><strong>逆引きPython標準ライブラリ</strong><a rel="noopener" target="_blank" href="https://amzn.to/3NJR57g"><br>✅ Amazonでチェックする</a> ｜ <a rel="noopener" target="_blank" href="https://a.r10.to/h5oZDl">✅ 楽天でチェックする</a></p>



<h3 class="wp-block-heading"><span id="toc33">解きながら学ぶ Pythonつみあげトレーニングブック</span></h3>



<p>「読むだけだと身につかない…」という方にはこちら。 <strong>手を動かしながら標準ライブラリを使う感覚</strong>が自然と身につきます。</p>



<p>小さな課題を積み重ねる構成なので、 初心者から中級者へのステップアップにもぴったりです。</p>



<p><strong>解きながら学ぶ Pythonつみあげトレーニングブック</strong><a rel="noopener" target="_blank" href="https://amzn.to/4qrbmgD"><br>✅ Amazonでチェックする</a> ｜ <a rel="noopener" target="_blank" href="https://amzn.to/49BZjG5">✅ 楽天でチェックする</a></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="toc34">まとめ</span></h2>



<p>Python標準ライブラリは、 <strong>「知らないから使えない」だけ</strong>というケースが本当に多いです。</p>



<p>文字列処理、ファイル操作、日時計算、並列処理、ネットワーク…。 今回紹介した内容だけでも、 <strong>日常的な自動化・ツール作成の大半はカバーできます</strong>。</p>



<p>外部ライブラリを探す前に、</p>



<ul class="wp-block-list">
<li>標準ライブラリでできないか？</li>



<li>すでに用意されていないか？</li>
</ul>



<p>と一度立ち止まって考えるクセをつけるだけで、 コードはシンプルになり、学習コストも下がります。</p>



<p>この記事は、<strong>「困ったときに戻ってくる場所」</strong>として使ってもらえたら嬉しいです。 ぜひブックマークして、日々のPython開発に役立ててくださいね 😊</p>



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



<h2 class="wp-block-heading"><span id="toc35">参考文献</span></h2>



<ul class="wp-block-list">
<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/index.html">Python 標準ライブラリ一覧（公式ドキュメント）</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/functions.html">組み込み関数 — Python公式ドキュメント</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/os.html">os — OSインタフェース</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/sys.html">sys — システム固有のパラメータと関数</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/pathlib.html">pathlib — オブジェクト指向のファイルシステムパス</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/shutil.html">shutil — 高水準のファイル操作</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/glob.html">glob — Unix形式のパス名パターン展開</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/re.html">re — 正規表現操作</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/json.html">json — JSONエンコードおよびデコード</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/csv.html">csv — CSVファイルの読み書き</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/datetime.html">datetime — 基本的な日付型および時刻型</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/time.html">time — 時刻へのアクセスと変換</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/argparse.html">argparse — コマンドラインオプションと引数の解析</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/subprocess.html">subprocess — サブプロセス管理</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/threading.html">threading — スレッドベースの並列処理</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/multiprocessing.html">multiprocessing — プロセスベースの並列処理</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/concurrent.futures.html">concurrent.futures — 並列タスク実行</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/logging.html">logging — ログ記録機能</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/unittest.html">unittest — ユニットテストフレームワーク</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/doctest.html">doctest — 対話型実行例のテスト</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/sqlite3.html">sqlite3 — SQLiteデータベース</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/socket.html">socket — 低水準ネットワークインタフェース</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/http.client.html">http.client — HTTPプロトコルクライアント</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/urllib.request.html">urllib.request — URLを開くための拡張ライブラリ</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/xml.etree.elementtree.html">xml.etree.ElementTree — XML処理モジュール</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/html.parser.html">html.parser — シンプルなHTMLおよびXHTMLパーサ</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/pickle.html">pickle — Pythonオブジェクトの直列化</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/hashlib.html">hashlib — セキュアハッシュとメッセージダイジェスト</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/itertools.html">itertools — 効率的なループ用イテレータ</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/functools.html">functools — 高階関数と呼び出し可能オブジェクト操作</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">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>はい、多くのケースで対応できます。 ファイル操作、CSV・JSON処理、日時計算、ログ出力、並列処理、簡単なHTTP通信などは、 標準ライブラリだけで十分に実用レベルの実装が可能です。</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>



<ul class="wp-block-list">
<li>標準ライブラリで書くと、コードが極端に複雑になる</li>



<li>実装・保守コストが明らかに高くなる</li>



<li>その分野専用の実績あるライブラリが存在する</li>
</ul>



<p>逆に言えば、 <strong>「少し長くなるだけ」「標準で十分読める」</strong>のであれば、 無理に外部ライブラリを使う必要はありません。</p>



<p>まずは標準ライブラリを知ったうえで選ぶ、という順番が大切です。</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">この記事はどの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>Python 3.9以降</strong>を前提にしています。</p>



<p>記載している標準ライブラリや使い方は、 現在主流のPython 3系であればほぼそのまま利用できます。</p>



<p>ただし、古いPython（2系や3.6以前）を使っている場合は、 一部挙動や推奨されない書き方が含まれる可能性があるため注意してください。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2026/01/15/python-standard-library-reverse-lookup/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python初心者が知らない「標準ライブラリで十分な場面」完全ガイド｜外部ライブラリ前に読む話</title>
		<link>https://python.cbagames.jp/2026/01/03/python-stdlib-enough-guide/</link>
					<comments>https://python.cbagames.jp/2026/01/03/python-stdlib-enough-guide/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Sat, 03 Jan 2026 09:34:13 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[Python初心者]]></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=745</guid>

					<description><![CDATA[Pythonを勉強していると、こんな経験はありませんか？ 「この処理、ライブラリ入れたほうが早そうだな」「とりあえずpip installしてから考えよう」 実はそれ、Pythonの標準ライブラリだけで十分に解決できるケ [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Pythonを勉強していると、こんな経験はありませんか？</p>



<p>「この処理、ライブラリ入れたほうが早そうだな」<br>「とりあえずpip installしてから考えよう」</p>



<p>実はそれ、<strong>Pythonの標準ライブラリだけで十分に解決できるケース</strong>かもしれません。</p>



<p>Pythonには「Batteries Included（電池付属）」という設計思想があります。 これは、<strong>日常的によく使う機能は最初から一通りそろっている</strong>、というPythonの大きな特徴です。</p>



<p>にもかかわらず、初心者のうちはその存在を知らないまま、</p>



<ul class="wp-block-list">
<li>本当は不要な外部ライブラリを入れてしまう</li>



<li>標準機能があるのに自分で一から実装してしまう</li>



<li>環境構築や依存関係でつまずいて学習が止まる</li>
</ul>



<p>…こんな遠回りをしてしまいがちなんですよね。</p>



<p>この記事では、<strong>「標準ライブラリで十分な場面」</strong>をテーマに、 Pythonに最初から用意されている便利な機能を用途別に整理して紹介していきます。</p>



<p>「外部ライブラリを使うかどうか迷ったときの判断基準」 「標準だけで書くと、コードがどうスッキリするのか」</p>



<p>そんな視点を身につけてもらえる内容を目指しています。</p>



<p>これからPythonを学ぶ人はもちろん、 「なんとなくpipに頼りがちだったかも…」という方にも、 きっと発見があるはずです。</p>



<p>それではさっそく、Pythonらしい考え方の土台から見ていきましょう。</p>



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




  <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">Pythonの設計思想：「Batteries Included」とは何か</a><ol><li><a href="#toc2" tabindex="0">なぜPythonは“最初から全部入り”なのか</a></li><li><a href="#toc3" tabindex="0">標準ライブラリを使う3つの大きなメリット</a><ol><li><a href="#toc4" tabindex="0">① インストール不要ですぐ使える</a></li><li><a href="#toc5" tabindex="0">② どの環境でも動きやすい</a></li><li><a href="#toc6" tabindex="0">③ 長期的に信頼できる</a></li></ol></li></ol></li><li><a href="#toc7" tabindex="0">標準ライブラリで十分な場面・用途別ガイド</a><ol><li><a href="#toc8" tabindex="0">① テキスト処理と正規表現</a><ol><li><a href="#toc9" tabindex="0">一般的な文字列操作：string</a></li><li><a href="#toc10" tabindex="0">パターンマッチング：re</a></li><li><a href="#toc11" tabindex="0">テキストの整形：textwrap</a></li><li><a href="#toc12" tabindex="0">差分の計算：difflib</a></li></ol></li><li><a href="#toc13" tabindex="0">② ファイル操作とディレクトリ管理</a><ol><li><a href="#toc14" tabindex="0">オブジェクト指向パス操作：pathlib</a></li><li><a href="#toc15" tabindex="0">高水準ファイル操作：shutil</a></li><li><a href="#toc16" tabindex="0">パターン展開：glob</a></li><li><a href="#toc17" tabindex="0">安全な一時ファイル作成：tempfile</a></li></ol></li><li><a href="#toc18" tabindex="0">③ 高度なデータ型と構造</a><ol><li><a href="#toc19" tabindex="0">特殊なコンテナ：collections</a></li><li><a href="#toc20" tabindex="0">ソート済みリストを保つ：bisect</a></li><li><a href="#toc21" tabindex="0">優先度付きキュー：heapq</a></li><li><a href="#toc22" tabindex="0">意味のある定数を作る：enum</a></li></ol></li><li><a href="#toc23" tabindex="0">④ 数値計算と数学的処理</a><ol><li><a href="#toc24" tabindex="0">基本的な数学関数：math</a></li><li><a href="#toc25" tabindex="0">浮動小数点の落とし穴を避ける：decimal</a></li><li><a href="#toc26" tabindex="0">統計処理：statistics</a></li><li><a href="#toc27" tabindex="0">乱数生成の使い分け：random と secrets</a></li></ol></li><li><a href="#toc28" tabindex="0">⑤ データの永続化とフォーマット</a><ol><li><a href="#toc29" tabindex="0">JSON形式の読み書き：json</a></li><li><a href="#toc30" tabindex="0">表形式データ：csv</a></li><li><a href="#toc31" tabindex="0">軽量データベース：sqlite3</a></li><li><a href="#toc32" tabindex="0">オブジェクトの保存：pickle</a></li></ol></li><li><a href="#toc33" tabindex="0">⑥ 開発効率と品質管理</a><ol><li><a href="#toc34" tabindex="0">コマンドライン引数解析：argparse</a></li><li><a href="#toc35" tabindex="0">ログ出力：logging</a></li><li><a href="#toc36" tabindex="0">テスト：unittest / doctest</a></li><li><a href="#toc37" tabindex="0">実行時間の計測：timeit</a></li></ol></li></ol></li><li><a href="#toc38" tabindex="0">補足：外部ライブラリが必要になる目安</a><ol><li><a href="#toc39" tabindex="0">標準ライブラリで対応するのが向いているケース</a></li><li><a href="#toc40" tabindex="0">外部ライブラリを検討すべきタイミング</a></li></ol></li><li><a href="#toc41" tabindex="0">まとめ</a><ol><li><a href="#toc42" tabindex="0">あわせて読みたい</a></li><li><a href="#toc43" tabindex="0">参考文献</a></li></ol></li><li><a href="#toc44" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Pythonの設計思想：「Batteries Included」とは何か</span></h2>



<p>Pythonが他のプログラミング言語と大きく違う点のひとつに、 <strong>「最初から使える機能の多さ」</strong>があります。</p>



<p>これはよく <strong>「Batteries Included（電池付属）」</strong> という言葉で表現されます。</p>



<p>意味としてはとてもシンプルで、</p>



<p><strong>「よくある問題は、最初から標準ライブラリで解決できるようにしておく」</strong></p>



<p>という考え方です。</p>



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



<h3 class="wp-block-heading"><span id="toc2">なぜPythonは“最初から全部入り”なのか</span></h3>



<p>Pythonは、教育用途から業務自動化、Web開発、研究用途まで、 とても幅広い場面で使われています。</p>



<p>そのため、</p>



<ul class="wp-block-list">
<li>ファイル操作</li>



<li>文字列処理</li>



<li>日付・時刻</li>



<li>データ形式（JSON・CSVなど）</li>



<li>ログ出力やテスト</li>
</ul>



<p>といった<strong>「ほぼ必ず必要になる処理」</strong>については、 追加インストールなしで使えるよう最初から用意されています。</p>



<p>つまりPythonでは、</p>



<p><strong>「環境構築でつまずく前に、コードを書くことに集中してほしい」</strong></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>



<h3 class="wp-block-heading"><span id="toc3">標準ライブラリを使う3つの大きなメリット</span></h3>



<h4 class="wp-block-heading"><span id="toc4">① インストール不要ですぐ使える</span></h4>



<p>標準ライブラリはPython本体に含まれているため、 <code>pip install</code> を実行する必要がありません。</p>



<p>特に初心者のうちは、</p>



<ul class="wp-block-list">
<li>仮想環境って何？</li>



<li>バージョンが合わない</li>



<li>会社PCでインストールできない</li>
</ul>



<p>といった<strong>環境トラブルが学習のブレーキ</strong>になりがちです。</p>



<p>標準ライブラリだけで書けるコードは、 そうしたストレスを一気に減らしてくれます。</p>



<h4 class="wp-block-heading"><span id="toc5">② どの環境でも動きやすい</span></h4>



<p>標準ライブラリは、Windows / macOS / Linux といった 主要な環境差を吸収するように設計されています。</p>



<p>そのため、</p>



<p><strong>「自分のPCでは動くのに、別の環境では動かない」</strong></p>



<p>という事故が起きにくいのも大きな利点です。</p>



<h4 class="wp-block-heading"><span id="toc6">③ 長期的に信頼できる</span></h4>



<p>標準ライブラリはPython本体と一緒にメンテナンスされています。</p>



<p>外部ライブラリのように、</p>



<ul class="wp-block-list">
<li>突然メンテナンスが止まる</li>



<li>非推奨になって将来使えなくなる</li>
</ul>



<p>といったリスクが比較的少なく、 <strong>長く使うコードほど安心感があります。</strong></p>



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



<p>ここまで見ると、</p>



<p><strong>「まず標準ライブラリを知ること」</strong>が、 Pythonをうまく使いこなす近道だと感じてもらえたのではないでしょうか。</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>「それ、外部ライブラリ入れなくてよかったんだ…」 そんな発見がきっと出てきますよ 😊</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="toc7">標準ライブラリで十分な場面・用途別ガイド</span></h2>



<p>ここからは、<strong>「外部ライブラリを使いがちだけど、実は標準で足りる」</strong>代表的な場面を、用途別に見ていきます。</p>



<p>まずは登場頻度がとても高い、<strong>テキスト処理・文字列操作</strong>からです。</p>



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



<h3 class="wp-block-heading"><span id="toc8">① テキスト処理と正規表現</span></h3>



<p>Pythonで扱うデータの多くは、結局のところ<strong>文字列</strong>です。</p>



<p>ログ、CSV、JSON、設定ファイル、ユーザー入力…。 「文字列を加工したい」という場面は、本当によく出てきます。</p>



<p>このとき初心者がやりがちなのが、</p>



<ul class="wp-block-list">
<li>便利そうな外部ライブラリを探しに行く</li>



<li>for文とif文で無理やり処理を書く</li>
</ul>



<p>というパターンです。</p>



<p>でも実は、こうした処理の大半は<strong>標準ライブラリだけで十分</strong>なんです。</p>



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



<h4 class="wp-block-heading"><span id="toc9">一般的な文字列操作：string</span></h4>



<p><code>string</code> モジュールは、文字列操作そのものを行うというより、</p>



<p><strong>「文字の集合」や「テンプレート機能」</strong>を提供するモジュールです。</p>



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



<ul class="wp-block-list">
<li>英字・数字・記号の定数（<code>ascii_letters</code>, <code>digits</code> など）</li>



<li>安全に文字列を埋め込める <code>Template</code> クラス</li>
</ul>



<p>などが用意されています。</p>



<p>ランダムな文字列を作りたい場合も、</p>



<p><strong><code>string</code> ＋ <code>random</code> や <code>secrets</code></strong></p>



<p>を組み合わせれば、外部ライブラリは不要です。</p>



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



<h4 class="wp-block-heading"><span id="toc10">パターンマッチング：re</span></h4>



<p>「特定の形式の文字列を探したい」 「条件に合う部分だけ置換したい」</p>



<p>こういうときに活躍するのが、正規表現を扱う <code>re</code> モジュールです。</p>



<p>メールアドレス、日付、ログの解析など、 <strong>実務でよくある文字列処理</strong>はほぼカバーできます。</p>



<p>正規表現は少しとっつきにくいですが、 一度慣れると<strong>コード量が一気に減る</strong>のが大きなメリットです。</p>



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



<h4 class="wp-block-heading"><span id="toc11">テキストの整形：textwrap</span></h4>



<p>文章を指定した幅で折り返したい、 インデントをそろえたい、という場合は <code>textwrap</code> が便利です。</p>



<p>CLIツールのヘルプ文や、 ログ・レポート出力などで地味に活躍します。</p>



<p>「見た目を整えるためだけに自前処理を書く」 必要は、もうありません。</p>



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



<h4 class="wp-block-heading"><span id="toc12">差分の計算：difflib</span></h4>



<p><code>difflib</code> は、2つの文字列やリストの<strong>差分を比較</strong>するためのモジュールです。</p>



<p>設定ファイルの変更点チェックや、 テキスト比較ツールの簡易実装などに使えます。</p>



<p>「diffっぽいことをしたいだけ」なら、 専用ライブラリを探す前にまず思い出したい存在です。</p>



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



<p>ここまで見てきたように、</p>



<p><strong>文字列処理だけでも、標準ライブラリはかなり充実しています。</strong></p>



<p>「これ、標準でできたんだっけ？」と迷ったときに、 さっと調べられる資料があると、とても心強いです。</p>



<p>そこで一冊あると便利なのがこちらです。</p>



<p><strong>Pythonクイックリファレンス</strong><br>✅ <a rel="noopener" target="_blank" href="https://amzn.to/4pnlOUS">Amazonでチェックする</a>｜ <a rel="noopener" target="_blank" href="https://a.r10.to/hghY2O">楽天でチェックする</a></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>ぐっとPythonらしく書ける</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="toc13">② ファイル操作とディレクトリ管理</span></h3>



<p>Pythonで少し実用的な処理を書き始めると、 <strong>ファイルやフォルダを扱う場面</strong>が一気に増えてきます。</p>



<p>ログファイルの読み書き、 複数ファイルの一括処理、 バックアップや整理スクリプトなど、用途はさまざまです。</p>



<p>このあたりで昔からよく使われてきたのが <code>os</code> や <code>os.path</code> ですが、 最近のPythonでは、<strong>より直感的に書ける標準ライブラリ</strong>が用意されています。</p>



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



<h4 class="wp-block-heading"><span id="toc14">オブジェクト指向パス操作：pathlib</span></h4>



<p><code>pathlib</code> の最大の特徴は、 <strong>ファイルパスを「文字列」ではなく「オブジェクト」として扱える</strong>ことです。</p>



<p>そのおかげで、</p>



<ul class="wp-block-list">
<li>パスの結合</li>



<li>ファイルの存在確認</li>



<li>拡張子の取得</li>
</ul>



<p>といった処理が、とても読みやすく書けます。</p>



<p>「パスを + や / でつなぐ」 「os.path.join がネストして読みにくい」</p>



<p>そんな悩みは、<code>pathlib</code> で一気に解消されます。</p>



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



<h4 class="wp-block-heading"><span id="toc15">高水準ファイル操作：shutil</span></h4>



<p>ファイルやディレクトリのコピー・移動・削除を行うなら、 <code>shutil</code> を知っておくととても便利です。</p>



<p>さらに、</p>



<ul class="wp-block-list">
<li>ZIPなどのアーカイブ作成・展開</li>



<li>ディレクトリごとのコピー</li>
</ul>



<p>といった処理も、 <strong>標準ライブラリだけで完結</strong>できます。</p>



<p>「ちょっとした自動化スクリプト」程度なら、 専用ツールや外部ライブラリは必要ありません。</p>



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



<h4 class="wp-block-heading"><span id="toc16">パターン展開：glob</span></h4>



<p>「特定の拡張子のファイルだけ処理したい」 「名前に共通ルールがあるファイルをまとめて扱いたい」</p>



<p>こうしたときに便利なのが <code>glob</code> です。</p>



<p><code>*.txt</code> や <code>data_*.csv</code> といった ワイルドカードを使って、対象ファイルを簡単に取得できます。</p>



<p><code>pathlib</code> と組み合わせると、 よりPythonらしい書き方になります。</p>



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



<h4 class="wp-block-heading"><span id="toc17">安全な一時ファイル作成：tempfile</span></h4>



<p>処理の途中で一時ファイルや一時ディレクトリが必要になることもあります。</p>



<p>そんなときに自前でファイル名を決めてしまうと、</p>



<ul class="wp-block-list">
<li>名前の衝突</li>



<li>削除忘れ</li>
</ul>



<p>といったトラブルが起きがちです。</p>



<p><code>tempfile</code> を使えば、 <strong>安全に一時ファイルを作成し、不要になれば自動で後始末</strong>してくれます。</p>



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



<p>このように、ファイル操作だけ見ても、 <strong>標準ライブラリで「困る場面」はほとんどありません。</strong></p>



<p>外部ライブラリを探す前に、</p>



<p><strong>「pathlib で書けないかな？」</strong></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>for文とif文を書きすぎてしまう人</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="toc18">③ 高度なデータ型と構造</span></h3>



<p>Python初心者がコードを書いていて、 だんだん増えてくるのが<strong>for文とif文のネスト</strong>です。</p>



<p>「条件分岐が増えて読みにくい」 「同じような処理を何度も書いている」</p>



<p>そんなときは、ロジックを頑張る前に <strong>標準ライブラリのデータ構造を疑ってみる</strong>のがおすすめです。</p>



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



<h4 class="wp-block-heading"><span id="toc19">特殊なコンテナ：collections</span></h4>



<p><code>collections</code> モジュールには、 <strong>よくある処理を一発で解決するデータ型</strong>が用意されています。</p>



<ul class="wp-block-list">
<li><code>Counter</code>：要素の出現回数を数える</li>



<li><code>defaultdict</code>：キーがなくても自動で初期化される辞書</li>



<li><code>deque</code>：両端から高速に追加・削除できるキュー</li>
</ul>



<p>たとえば、リスト内の要素を数える処理も、 <code>Counter</code> を使えば数行で済みます。</p>



<p>「辞書を初期化して、ifで分岐して…」 というコードは、ぐっと短くなります。</p>



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



<h4 class="wp-block-heading"><span id="toc20">ソート済みリストを保つ：bisect</span></h4>



<p>「常に並び順を保ったままデータを追加したい」 そんな場面で役立つのが <code>bisect</code> です。</p>



<p>自分で二分探索を書かなくても、 <strong>適切な位置を自動で見つけて挿入</strong>できます。</p>



<p>ランキング処理や、 閾値を使った判定などで意外と活躍します。</p>



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



<h4 class="wp-block-heading"><span id="toc21">優先度付きキュー：heapq</span></h4>



<p>「一番小さい（または大きい）要素を 繰り返し取り出したい」</p>



<p>こうした処理は、 <code>heapq</code> を使うのが定番です。</p>



<p>全体をソートし直すよりも効率がよく、 アルゴリズム的にもきれいな書き方になります。</p>



<p>タスク管理や簡易スケジューラなど、 実務でも使いどころは意外と多いです。</p>



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



<h4 class="wp-block-heading"><span id="toc22">意味のある定数を作る：enum</span></h4>



<p>数値や文字列をそのまま使っていると、</p>



<ul class="wp-block-list">
<li>「この 1 は何を意味してるんだっけ？」</li>



<li>「&#8221;A&#8221; と &#8220;B&#8221; の違いが分かりにくい」</li>
</ul>



<p>といった問題が起きがちです。</p>



<p><code>enum</code> を使えば、 <strong>意味のある名前を持った定数</strong>として表現できます。</p>



<p>状態管理やモード切替などでは、 可読性と安全性が一気に上がります。</p>



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



<p>この章のポイントは、</p>



<p><strong>「処理を頑張るより、データ構造を変える」</strong>という発想です。</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>



<h3 class="wp-block-heading"><span id="toc23">④ 数値計算と数学的処理</span></h3>



<p>Pythonで数値を扱う処理というと、 すぐに NumPy などの外部ライブラリを思い浮かべる人も多いかもしれません。</p>



<p>ですが、</p>



<p><strong>「高度な数値解析」や「大量データ処理」</strong>でなければ、 標準ライブラリだけで十分な場面は意外と多いです。</p>



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



<h4 class="wp-block-heading"><span id="toc24">基本的な数学関数：math</span></h4>



<p><code>math</code> モジュールには、 日常的に使う数学関数が一通りそろっています。</p>



<ul class="wp-block-list">
<li>平方根・指数・対数</li>



<li>三角関数（sin, cos, tan）</li>



<li>円周率 <code>pi</code> などの定数</li>
</ul>



<p>ちょっとした計算や、 業務スクリプトの数値処理ならこれで十分です。</p>



<p>「計算のためだけに外部ライブラリを入れる」 必要はありません。</p>



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



<h4 class="wp-block-heading"><span id="toc25">浮動小数点の落とし穴を避ける：decimal</span></h4>



<p>お金や割合を扱う計算で、</p>



<p><code>0.1 + 0.2 != 0.3</code></p>



<p>という結果を見て驚いたことはありませんか？</p>



<p>これは浮動小数点数の仕様によるものです。</p>



<p><code>decimal</code> モジュールを使えば、 <strong>10進数として正確な計算</strong>ができます。</p>



<p>金融計算や請求処理など、 「ズレが許されない」場面では必須の知識です。</p>



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



<h4 class="wp-block-heading"><span id="toc26">統計処理：statistics</span></h4>



<p>データの平均や中央値、分散、標準偏差など、 基本的な統計量を求めたいだけなら <code>statistics</code> で十分です。</p>



<p>小規模データの分析や、 結果の確認・検証用途で活躍します。</p>



<p>「とりあえず平均を見たい」 そんなときに、重いライブラリは不要です。</p>



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



<h4 class="wp-block-heading"><span id="toc27">乱数生成の使い分け：random と secrets</span></h4>



<p>乱数を使う場面でも、 目的に応じた使い分けが大切です。</p>



<ul class="wp-block-list">
<li><code>random</code>：シミュレーションやテストデータ生成</li>



<li><code>secrets</code>：パスワードやトークンなどの機密情報</li>
</ul>



<p><code>secrets</code> は、 暗号学的に安全な乱数を生成するためのモジュールです。</p>



<p>セキュリティ用途で <code>random</code> を使わない、 という点はぜひ覚えておきましょう。</p>



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



<p>このように、数値処理の基本は <strong>標準ライブラリだけでかなりの範囲をカバー</strong>できます。</p>



<p>「NumPy を入れる前に、まず標準で足りないか考える」</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>



<h3 class="wp-block-heading"><span id="toc28">⑤ データの永続化とフォーマット</span></h3>



<p>プログラムを書いていると、 <strong>「データを保存したい」「あとで読み込みたい」</strong> という場面は必ず出てきます。</p>



<p>このときも、すぐに外部ライブラリや 本格的なデータベースを検討しがちですが、</p>



<p><strong>小〜中規模の用途なら、標準ライブラリで十分</strong>なケースがとても多いです。</p>



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



<h4 class="wp-block-heading"><span id="toc29">JSON形式の読み書き：json</span></h4>



<p>Web API や設定ファイルでおなじみの JSON 形式は、 <code>json</code> モジュールで簡単に扱えます。</p>



<p>辞書やリストをそのまま保存・復元できるため、</p>



<ul class="wp-block-list">
<li>設定ファイル</li>



<li>APIレスポンスの保存</li>



<li>一時的なデータキャッシュ</li>
</ul>



<p>といった用途にぴったりです。</p>



<p>「JSONの読み書きのためだけに外部ライブラリを入れる」 必要はありません。</p>



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



<h4 class="wp-block-heading"><span id="toc30">表形式データ：csv</span></h4>



<p>CSVファイルの操作も、標準ライブラリで完結します。</p>



<p><code>csv</code> モジュールを使えば、</p>



<ul class="wp-block-list">
<li>カンマ区切りの読み書き</li>



<li>ヘッダー付きデータの処理</li>
</ul>



<p>などを、安全に行えます。</p>



<p>Excelやスプレッドシートとのやり取り程度なら、 わざわざ重いライブラリは不要です。</p>



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



<h4 class="wp-block-heading"><span id="toc31">軽量データベース：sqlite3</span></h4>



<p>「ファイルだけでは管理しづらい」 「でもサーバーを立てるほどでもない」</p>



<p>そんなときに便利なのが <code>sqlite3</code> です。</p>



<p>SQLiteは<strong>ファイル1つで完結するデータベース</strong>なので、</p>



<ul class="wp-block-list">
<li>個人ツール</li>



<li>小規模アプリ</li>



<li>試作・検証用</li>
</ul>



<p>といった用途にとても向いています。</p>



<p>しかも Python では、標準ライブラリとして最初から使えます。</p>



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



<h4 class="wp-block-heading"><span id="toc32">オブジェクトの保存：pickle</span></h4>



<p><code>pickle</code> を使うと、 Pythonのオブジェクトをそのままファイルに保存できます。</p>



<p>一方で、</p>



<p><strong>信頼できないデータを読み込んではいけない</strong></p>



<p>という重要な注意点もあります。</p>



<p>用途を限定して使えば便利ですが、 設定ファイルや外部共有データには向きません。</p>



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



<p>このあたりの話は、初心者のうちにつまずきやすく、</p>



<p>「結局どう使い分ければいいの？」 と混乱しやすいポイントでもあります。</p>



<p>体系的に整理したい人には、 こちらの一冊がとても役立ちます。</p>



<p><strong>スッキリわかるPython入門</strong><br>✅ <a rel="noopener" target="_blank" href="https://amzn.to/4jrmOpV">Amazonでチェックする</a>｜ <a rel="noopener" target="_blank" href="https://a.r10.to/hkpzyW">楽天でチェックする</a></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>



<h3 class="wp-block-heading"><span id="toc33">⑥ 開発効率と品質管理</span></h3>



<p>Pythonを書き始めたばかりの頃は、 「動けばOK」で進めてしまいがちです。</p>



<p>ですが、コード量が増えてくると、</p>



<ul class="wp-block-list">
<li>どこで何が起きているのか分からない</li>



<li>修正したら別のところが壊れた</li>



<li>実行に時間がかかる理由が分からない</li>
</ul>



<p>といった問題が少しずつ出てきます。</p>



<p>ここでも活躍するのが、 <strong>開発を助ける標準ライブラリ</strong>たちです。</p>



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



<h4 class="wp-block-heading"><span id="toc34">コマンドライン引数解析：argparse</span></h4>



<p>PythonでCLIツールを作るなら、 <code>argparse</code> はほぼ必須です。</p>



<p>オプションやヘルプを自動生成できるため、</p>



<p><strong>「使い方が分かりにくいツール」になりにくい</strong></p>



<p>のが大きなメリットです。</p>



<p>自作スクリプトを人に渡すときにも、 安心して使ってもらえます。</p>



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



<h4 class="wp-block-heading"><span id="toc35">ログ出力：logging</span></h4>



<p>デバッグのために <code>print</code> を多用していませんか？</p>



<p><code>logging</code> を使えば、</p>



<ul class="wp-block-list">
<li>情報ログ</li>



<li>警告</li>



<li>エラー</li>
</ul>



<p>といった<strong>重要度に応じた記録</strong>ができます。</p>



<p>本番運用や長期的なメンテナンスを考えるなら、 早めに慣れておきたい標準機能です。</p>



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



<h4 class="wp-block-heading"><span id="toc36">テスト：unittest / doctest</span></h4>



<p>「修正するたびに手動で全部確認する」</p>



<p>そんな状態から抜け出すために、 テストはとても重要です。</p>



<p><code>unittest</code> を使えば、 標準だけでしっかりとした単体テストを書けます。</p>



<p><code>doctest</code> は、 ドキュメントに書いたサンプルコードを そのままテストとして使えるのが特徴です。</p>



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



<h4 class="wp-block-heading"><span id="toc37">実行時間の計測：timeit</span></h4>



<p>「この処理、どれくらい速いんだろう？」</p>



<p>そんな疑問に答えてくれるのが <code>timeit</code> です。</p>



<p>処理時間を正確に計測できるため、 <strong>感覚ではなく数値で比較</strong>できます。</p>



<p>パフォーマンス改善の第一歩として、 とても頼りになる存在です。</p>



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



<p>この章で紹介したライブラリを使い始めると、</p>



<p><strong>「Pythonコードが一段階プロっぽくなる」</strong></p>



<p>感覚が出てきます。</p>



<p>ただ、この分野は 「もう少し詳しく知りたい」 「いろんな書き方を見比べたい」</p>



<p>というニーズも強くなりがちです。</p>



<p>そんなときに相性がいいのが、 読み放題で複数冊をチェックできるこちらです。</p>



<p><strong>Kindle Unlimited</strong><br>✅ <a rel="noopener" target="_blank" href="https://amzn.to/4sp6lGK">Amazonでチェックする</a></p>



<p>logging やテスト、設計まわりの本を <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="toc38">補足：外部ライブラリが必要になる目安</span></h2>



<p>ここまで見てきたように、 Pythonの標準ライブラリは想像以上に高機能です。</p>



<p>ですが、もちろん<strong>すべてを標準で済ませるべき</strong>というわけではありません。</p>



<p>大切なのは、</p>



<p><strong>「標準で十分な範囲」と「外部ライブラリを使うべきライン」を見極めること</strong></p>



<p>です。</p>



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



<h3 class="wp-block-heading"><span id="toc39">標準ライブラリで対応するのが向いているケース</span></h3>



<ul class="wp-block-list">
<li>処理対象が小〜中規模</li>



<li>シンプルな自動化・ツール作成</li>



<li>環境依存やインストール手順を増やしたくない</li>



<li>長期的に安定して動かしたい</li>
</ul>



<p>こうした場合は、 まず標準ライブラリで実装を検討するのが基本です。</p>



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



<h3 class="wp-block-heading"><span id="toc40">外部ライブラリを検討すべきタイミング</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>数値計算・配列処理 → NumPy</li>



<li>表データ分析 → Pandas / Polars</li>



<li>HTTP通信 → requests</li>
</ul>



<p>などがあります。</p>



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



<p>特にデータ分析分野では、 「標準でもできるけど、効率や可読性が大きく違う」 というケースが多いです。</p>



<p>そうした<strong>“一線を超えた場面”</strong>で、 次のステップとして知っておきたいのがこちらです。</p>



<p><strong>Python Polars</strong><br>✅ <a rel="noopener" target="_blank" href="https://amzn.to/4sljfFw">Amazonでチェックする</a>｜ <a rel="noopener" target="_blank" href="https://a.r10.to/h5Yzzj">楽天でチェックする</a></p>



<p>Pandasよりも高速・省メモリなケースが多く、 <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>



<p>標準ライブラリを理解したうえで選ぶからこそ、 その価値を最大限に活かせます。</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="toc41">まとめ</span></h2>



<p>Pythonには、最初からとても多くの便利な機能が用意されています。</p>



<p>それにもかかわらず、 <strong>「標準ライブラリでできることを知らない」</strong>だけで、</p>



<ul class="wp-block-list">
<li>不要な外部ライブラリを増やしてしまう</li>



<li>環境構築でつまずく</li>



<li>コードが複雑になる</li>
</ul>



<p>といった遠回りをしてしまうのは、少しもったいないですよね。</p>



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



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



<ul class="wp-block-list">
<li>Pythonの設計思想「Batteries Included」</li>



<li>標準ライブラリで十分な場面を用途別に整理</li>



<li>外部ライブラリを使う判断基準</li>
</ul>



<p>という流れで、 <strong>「まず標準を疑う」ための考え方</strong>を紹介してきました。</p>



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



<p>大切なのは、</p>



<p><strong>「標準ライブラリを使うか、外部ライブラリを使うか」</strong></p>



<p>という二択ではなく、</p>



<p><strong>「今の目的に対して、どこまでが標準で十分か」</strong></p>



<p>を判断できるようになることです。</p>



<p>この視点を持てるようになると、 コードは自然とシンプルになり、 トラブルにも強くなります。</p>



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



<p>最初はすべて覚える必要はありません。</p>



<p>「あ、こういうときに使える標準ライブラリがあったな」</p>



<p>そう思い出せるだけでも、 Pythonとの付き合い方はぐっと楽になります。</p>



<p>ぜひこれからは、 外部ライブラリを探す前に一度、 <strong>標準ライブラリの存在を思い出してみてください。</strong></p>



<p>きっと、Pythonがもっと書きやすくなりますよ 😊</p>



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



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



<p>この記事で紹介した内容を、もう少し深掘りしたい方はこちらもおすすめです。</p>



<ul class="wp-block-list">
<li><a target="_blank" href="https://python.cbagames.jp/2025/12/27/python-stdlib-map-beginners/">Python初心者が「標準ライブラリだけ」でどこまで戦えるか完全マップ｜できること総まとめ</a></li>



<li><a target="_blank" href="https://python.cbagames.jp/2025/06/12/python-regex-re-module-beginner/">Python正規表現の使い方入門｜reモジュールで文字列を簡単マッチング！</a></li>



<li><a target="_blank" href="https://python.cbagames.jp/2025/06/13/python-pathlib-beginner-guide/">【Python入門】pathlibの使い方を完全解説｜フォルダー・パス操作が簡単になる方法</a></li>



<li><a target="_blank" href="https://python.cbagames.jp/2025/06/10/python-logging-basic-guide/">【Python入門】ログ出力の基本をやさしく解説｜printとの違いやloggingの使い方も紹介！</a></li>



<li><a target="_blank" href="https://python.cbagames.jp/2025/06/13/python-json-module-guide/">【Python入門】jsonモジュールの使い方｜JSONの読み書きと変換をやさしく解説！</a></li>
</ul>



<p>標準ライブラリを<strong>「点」ではなく「面」</strong>で理解すると、 Pythonの書き方が一気に整理されてきます。</p>



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



<h3 class="wp-block-heading"><span id="toc43">参考文献</span></h3>



<ul class="wp-block-list">
<li><a rel="noopener" target="_blank" href="https://docs.python.org/ja/3/library/index.html">Python 標準ライブラリ（日本語公式ドキュメント）</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/3/library/index.html">Python Standard Library（公式ドキュメント / 英語）</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/3/tutorial/stdlib.html">標準ライブラリ概説（Python公式チュートリアル）</a></li>



<li><a rel="noopener" target="_blank" href="https://docs.python.org/3/tutorial/stdlib2.html">標準ライブラリ概説・応用編（Python公式チュートリアル）</a></li>



<li><a rel="noopener" target="_blank" href="https://realpython.com/ref/stdlib/">Python Standard Library Reference（Real Python）</a></li>



<li><a rel="noopener" target="_blank" href="https://www.sejuku.net/blog/75068">Python標準ライブラリとは？代表的なモジュールと使いどころ解説（侍エンジニア）</a></li>



<li><a rel="noopener" target="_blank" href="https://beagle-dog.com/python-standard-library-usage-rules/">Python標準ライブラリの使いどころと考え方まとめ</a></li>



<li><a rel="noopener" target="_blank" href="https://qiita.com/ddd_nnuco/items/0873a5f286049ba46265">Python標準ライブラリを使いこなすための考え方（Qiita）</a></li>



<li><a rel="noopener" target="_blank" href="https://en.wikipedia.org/wiki/Standard_library">Standard library（Wikipedia）</a></li>
</ul>



<p>本記事の内容は、上記の公式ドキュメントおよび技術記事を参考に構成しています。 より詳しい仕様や最新情報については、Python公式ドキュメントをあわせて確認してください。</p>



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



<h2 class="wp-block-heading"><span id="toc44">よくある質問（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>いいえ、必ずしもそうではありません。</p>



<p>大切なのは「使わないこと」ではなく、 <strong>なぜそのライブラリを使うのかを説明できること</strong>です。</p>



<p>標準ライブラリで十分に解決できる場面を知らないまま外部ライブラリに頼ると、 環境構築や依存関係でつまずきやすくなります。</p>



<p>まずは標準ライブラリで書けるかを考え、 「ここは標準だと大変そう」「明確なメリットがある」 と判断できたときに外部ライブラリを使うのがおすすめです。</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>



<p>標準ライブラリはC言語などで実装されている部分も多く、 小〜中規模の処理であれば十分なパフォーマンスが出ます。</p>



<p>ただし、大量データの数値計算や高度な分析では、 NumPy や Polars のような専門ライブラリのほうが 圧倒的に高速なケースもあります。</p>



<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>



<ul class="wp-block-list">
<li>処理内容を説明するのにコードより文章のほうが長くなり始めた</li>



<li>同じような処理を何度も自作している</li>



<li>標準で書くと可読性が大きく下がる</li>
</ul>



<p>こうなってきたら、外部ライブラリを検討するタイミングです。</p>



<p>逆に、</p>



<ul class="wp-block-list">
<li>小規模なデータ</li>



<li>単発の自動化</li>



<li>学習目的のコード</li>
</ul>



<p>であれば、標準ライブラリで十分なことがほとんどです。</p>



<p>「標準でできるか？」を一度考えるクセをつけるだけで、 Pythonの理解はかなり深まりますよ 😊</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2026/01/03/python-stdlib-enough-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【最新版】生成AI時代に無駄とされるプログラミング学習法5選｜効率的な学び方とは？</title>
		<link>https://python.cbagames.jp/2025/09/19/programming-study-waste-ai/</link>
					<comments>https://python.cbagames.jp/2025/09/19/programming-study-waste-ai/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Thu, 18 Sep 2025 22:19:19 +0000</pubDate>
				<category><![CDATA[IT転職・キャリア]]></category>
		<category><![CDATA[AI活用]]></category>
		<category><![CDATA[ITエンジニア]]></category>
		<category><![CDATA[Python初心者]]></category>
		<category><![CDATA[キャリア戦略]]></category>
		<category><![CDATA[プログラミング学習]]></category>
		<category><![CDATA[効率的学習法]]></category>
		<category><![CDATA[生成AI]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=659</guid>

					<description><![CDATA[目次 1. はじめに2. 生成AI時代に無駄とされるプログラミング学習法5選2-1. タイピングスピードを上げる練習2-2. 座学中心の学習2-3. アルゴリズムに偏った学習2-4. 環境構築やエラー対応に過剰な時間をか [&#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. はじめに</a></li><li><a href="#toc2" tabindex="0">2. 生成AI時代に無駄とされるプログラミング学習法5選</a><ol><li><a href="#toc3" tabindex="0">2-1. タイピングスピードを上げる練習</a></li><li><a href="#toc4" tabindex="0">2-2. 座学中心の学習</a></li><li><a href="#toc5" tabindex="0">2-3. アルゴリズムに偏った学習</a></li><li><a href="#toc6" tabindex="0">2-4. 環境構築やエラー対応に過剰な時間をかける</a></li><li><a href="#toc7" tabindex="0">2-5. 「ググる」力</a></li></ol></li><li><a href="#toc8" tabindex="0">3. AI時代に効率的な学習スタイルとは？</a><ol><li><a href="#toc9" tabindex="0">3-1. AIを先生にする学習</a></li><li><a href="#toc10" tabindex="0">3-2. 小さなアプリを作る実践学習</a></li><li><a href="#toc11" tabindex="0">3-3. 学んだことをアウトプットする習慣</a></li><li><a href="#toc12" tabindex="0">学んだら発信、その次は「スカウトを受ける」</a></li></ol></li><li><a href="#toc13" tabindex="0">4. まとめ</a><ol><li><a href="#toc14" tabindex="0">あわせて読みたい</a></li></ol></li><li><a href="#toc15" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

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



<p>近年、プログラミング学習のスタイルは大きく変わってきました。その背景にあるのが、生成AIの登場です。これまで「正しい」とされてきた学習法が、実は今の時代では効率が悪く、ほとんど役に立たなくなっているケースもあります。</p>



<p>たとえば「タイピング速度を極限まで上げる」とか「ひたすらアルゴリズム問題を解く」といった練習は、AIがコードを生成できる現代では必ずしも必要ではありません。むしろAIをうまく活用しながら、自分の思考力や問題解決力を伸ばすことが、これからのエンジニアには求められます。</p>



<p>この記事では、<strong>生成AIの時代に無駄とされるプログラミング学習法5つ</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/08/1a3083031b238eeda1abcd2ebfed71c7-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>初心者の方はもちろん、これまで自己流で勉強してきた方も、学習スタイルを見直すきっかけになるはずです。</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="toc2">2. 生成AI時代に無駄とされるプログラミング学習法5選</span></h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" src="https://python.cbagames.jp/wp-content/uploads/2025/09/6db8f0b8ce5cd380454a32c8b217f9d2-1024x683.jpg" alt="" class="wp-image-660" srcset="https://python.cbagames.jp/wp-content/uploads/2025/09/6db8f0b8ce5cd380454a32c8b217f9d2-1024x683.jpg 1024w, https://python.cbagames.jp/wp-content/uploads/2025/09/6db8f0b8ce5cd380454a32c8b217f9d2-300x200.jpg 300w, https://python.cbagames.jp/wp-content/uploads/2025/09/6db8f0b8ce5cd380454a32c8b217f9d2-768x512.jpg 768w, https://python.cbagames.jp/wp-content/uploads/2025/09/6db8f0b8ce5cd380454a32c8b217f9d2.jpg 1536w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading"><span id="toc3">2-1. タイピングスピードを上げる練習</span></h3>



<p>かつては「プログラマー＝高速タイピングできる人」というイメージがありました。ですが今はAIがコードを生成してくれるため、ひたすら手で打つ練習は効率が悪いです。大切なのは、生成されたコードを理解し、自分の意図通りに修正できる力。<br>「タイピングの速さ」よりも「コードを読む力」を鍛える方が役立ちます。</p>



<h3 class="wp-block-heading"><span id="toc4">2-2. 座学中心の学習</span></h3>



<p>本や動画を眺めるだけのインプット学習は、頭に入りにくく忘れやすいもの。生成AI時代では、実際にコードを書きながら、AIに質問して解決する「対話型学習」の方が圧倒的に効率的です。<br>アウトプットを通じて学んだ方が、理解も定着も早くなります。</p>



<h3 class="wp-block-heading"><span id="toc5">2-3. アルゴリズムに偏った学習</span></h3>



<p>もちろんアルゴリズムの基礎理解は重要です。ただし「数百問のアルゴリズム問題をひたすら解く」といった学習法は、今や非効率。AIはアルゴリズム生成を得意とするため、実務でゼロから自分で設計する場面は少なくなっています。<br>これからは、AIが提案したアルゴリズムを理解し、システム設計にどう組み込むかを考える力が求められます。</p>



<h3 class="wp-block-heading"><span id="toc6">2-4. 環境構築やエラー対応に過剰な時間をかける</span></h3>



<p>環境構築で半日つぶした経験、ありませんか？今ではAIに聞けば必要なコマンドや手順をすぐに提示してくれます。エラー対応も「原因を教えて」とAIに質問すれば、仮説と解説付きで返ってくることも多いです。<br>大事なのは「ただ解決する」のではなく、<strong>解決のプロセスを理解して自分の知識にすること</strong>。これが未来の実力差になります。</p>



<h3 class="wp-block-heading"><span id="toc7">2-5. 「ググる」力</span></h3>



<p>「ググれカス」という言葉が流行った時代もありましたが、いまや検索力だけでは差別化できません。AIを使って効率的に情報を収集し、出てきた情報の信頼性を見極める力が重要です。<br>特に「AIがどの情報源を参照したのか？」を追跡できるスキルは、これから必須になります。</p>



<p>そして、こうした効率的な学習には<strong>快適な作業環境</strong>も大事。学習効率を上げるためのツールも紹介しておきます。</p>



<ul class="wp-block-list">
<li>⌨️ <a rel="noopener" target="_blank" href="https://amzn.to/4nb4SRa">Keychron K2 HEカスタムキーボード（Amazon）</a> ｜ <a rel="noopener" target="_blank" href="https://a.r10.to/hRdOl0">楽天市場で見る</a></li>



<li>🖱️ <a rel="noopener" target="_blank" href="https://amzn.to/3KtkzVj">【Amazon.co.jp限定】 ロジクール MX MASTER3s</a></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="toc8">3. AI時代に効率的な学習スタイルとは？</span></h2>



<p>「従来の学習法が無駄になるなら、じゃあどう学べばいいの？」と思いますよね。ここからは、生成AIの時代におすすめの効率的な学習スタイルを紹介します。ポイントは、AIを「先生」や「相棒」としてうまく活用することです。</p>



<h3 class="wp-block-heading"><span id="toc9">3-1. AIを先生にする学習</span></h3>



<p>わからないことがあれば即座にAIに質問し、その場で解決していくスタイルです。これにより、わざわざ検索で迷子にならずに済みます。<br>さらに「なぜそうなるのか？」と一歩深掘りして質問することで、自分だけのオーダーメイド教科書が出来上がります。</p>



<h3 class="wp-block-heading"><span id="toc10">3-2. 小さなアプリを作る実践学習</span></h3>



<p>単に文法を学ぶよりも、小さなアプリやツールを実際に作ってみる方が圧倒的に効率的です。成果物があることで達成感も得られ、学習のモチベーションが持続します。<br>例えば「Pythonでデスクトップアプリを作る」といったミニプロジェクトはおすすめです。</p>



<ul class="wp-block-list">
<li>📘 <a rel="noopener" target="_blank" href="https://amzn.to/3Iv9UZE">Pythonでつくるデスクトップアプリ 単行本</a> ｜ <a rel="noopener" target="_blank" href="https://a.r10.to/h5Gij9">楽天市場で見る</a></li>
</ul>



<h3 class="wp-block-heading"><span id="toc11">3-3. 学んだことをアウトプットする習慣</span></h3>



<p>ブログやSNS、GitHubに学んだ内容をまとめることで、知識が定着します。AIにコードを生成してもらった場合でも「どう修正したのか」「どこで工夫したのか」を言語化しておくと、自分の財産になります。<br>アウトプットはポートフォリオにもなるので、転職やキャリア形成にも役立ちます。</p>



<p>さらに、基礎を固めたい人には体系的な書籍も有効です。特に「Java」や「Python」といった主要言語の本は、AI時代でもしっかり役立ちます。</p>



<ul class="wp-block-list">
<li>📘 <a rel="noopener" target="_blank" href="https://amzn.to/4pu1SRF">プロになるJava―仕事で必要なプログラミングの知識がゼロから身につく最高の指南書</a> ｜ <a rel="noopener" target="_blank" href="https://a.r10.to/h5PYDw">楽天市場で見る</a></li>
</ul>



<h3 class="wp-block-heading"><span id="toc12">学んだら発信、その次は「スカウトを受ける」</span></h3>



<p>AI時代はアウトプットがそのまま職務経歴書。スカウト型や自社開発志向で、成果の“見られ方”を変えましょう。</p>



<ul class="wp-block-list">
<li>レバテックダイレクト： 書類選考スキップ級のスカウトが届く／マッチ率を数値化</li>



<li>TechClipsエージェント： 自社開発中心・年収500万円以上に特化。現役エンジニアが伴走</li>
</ul>


<p><a rel="nofollow noopener" target="_blank" href="https://px.a8.net/svt/ejp?a8mat=45C6Y4+56CS7M+2JK4+4SO4V6">【レバテックダイレクト】</a></p>
<p><img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www19.a8.net/0.gif?a8mat=45C6Y4+56CS7M+2JK4+4SO4V6" alt=""></p>


<p><a rel="nofollow noopener" target="_blank" href="https://px.a8.net/svt/ejp?a8mat=45C6Y4+5B491U+3SWM+5YJRM">ITエンジニア専門の転職エージェント【TechClipsエージェント】</a></p>
<p><img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=45C6Y4+5B491U+3SWM+5YJRM" alt=""></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="toc13">4. まとめ</span></h2>



<p>これまで「正しい」とされてきたプログラミング学習法も、生成AIの登場によって大きく変化しました。タイピング速度や座学中心の勉強、アルゴリズム問題を延々と解くことなどは、もはや効率的とは言えません。</p>



<p>これからの時代に必要なのは、<strong>AIをうまく活用しながら学ぶ姿勢</strong>です。エラー解決や情報収集もAIに助けてもらい、その知識を自分のものにしていく。小さなアプリを作って実践したり、学んだことをアウトプットしたりすることで、スキルは着実に身につきます。</p>



<p>AIを「脅威」として捉えるのではなく、「強力な味方」として取り入れることが、効率的に成長するための最短ルート。学習の方向性を見直すことができれば、キャリアアップや年収アップにもつながっていくでしょう。</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/08/1a3083031b238eeda1abcd2ebfed71c7-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>「AI×効率的な学習法×快適な環境」――この3つを揃えることで、あなたのプログラミング学習はぐっとスピードアップしますよ。</p>
</div></div>



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



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



<p>もっと効率的に学びたい方や、AI時代のキャリア形成に興味がある方はこちらの記事もおすすめです。</p>



<ul class="wp-block-list">
<li><a target="_blank" href="https://python.cbagames.jp/2025/06/10/vscode-ai-copilot-beginner/">初心者向けVS CodeでAIを使う方法｜Copilot・チャットAI・エージェントまで完全ガイド</a></li>



<li><a target="_blank" href="https://python.cbagames.jp/2025/06/05/python-learning-sites-books-apps/">Python初心者におすすめの学習サイト・本・アプリ10選【2025年版】</a></li>



<li><a target="_blank" href="https://python.cbagames.jp/2025/09/12/ai-engineer-survive-value-up/">AI時代に生き残れるエンジニアとは？市場価値を上げる人・奪われる人の決定的差</a></li>



<li><a target="_blank" href="https://python.cbagames.jp/2025/09/06/it-certifications-skill-career/">ITエンジニアにおすすめの資格3選｜実務で役立つ＆キャリアアップに効く勉強法</a></li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc15">よくある質問（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">AIを使えばプログラミングを勉強しなくてもいいですか？</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>残念ながら答えは「いいえ」です。AIがコードを生成してくれるのは事実ですが、そのコードを正しく理解し、修正や拡張ができる最低限の知識は不可欠です。<br>AIは「アシスタント」であって「代わりに学んでくれる存在」ではない、と考えましょう。</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>があります。AIとのやり取りでは断片的な知識になりがちですが、書籍は基礎を網羅的にカバーしてくれます。<br>特に初心者は、AI学習と書籍学習を組み合わせると効率が格段に上がります。</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>「ブラインドタッチができないと学習効率が下がる」ので、最低限のタイピングスキルは必要です。ただし、競技のように秒速で打てる必要はありません。<br>今後は「コードを速く打つ」より「AIと会話して問題を解決する力」に比重が移っていきます。</p>
</div></dd></dl></div>



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



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/09/19/programming-study-waste-ai/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python入門】引数のデフォルト値とタイプアノテーションの使い方をやさしく解説！</title>
		<link>https://python.cbagames.jp/2025/06/11/python-default-arguments-type-annotations/</link>
					<comments>https://python.cbagames.jp/2025/06/11/python-default-arguments-type-annotations/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Wed, 11 Jun 2025 04:07:03 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[Python初心者]]></category>
		<category><![CDATA[Python型ヒント]]></category>
		<category><![CDATA[コーディングの基本]]></category>
		<category><![CDATA[タイプアノテーション]]></category>
		<category><![CDATA[デフォルト引数]]></category>
		<category><![CDATA[関数の使い方]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=247</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-10"><label class="toc-title" for="toc-checkbox-10">目次</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></ol></li><li><a href="#toc7" tabindex="0">3. タイプアノテーション（型ヒント）の基本</a><ol><li><a href="#toc8" tabindex="0">✅ 型ヒントってなに？</a></li><li><a href="#toc9" tabindex="0">✅ 書き方の基本</a></li><li><a href="#toc10" tabindex="0">✅ 型ヒントとデフォルト値は一緒に書ける</a></li><li><a href="#toc11" tabindex="0">✅ 戻り値がない場合は「None」</a></li><li><a href="#toc12" tabindex="0">✅ よく使う型ヒント</a></li><li><a href="#toc13" tabindex="0">⚠️ 型ヒントは「目印」だけ！強制力はない</a></li><li><a href="#toc14" tabindex="0">✅ 型ヒントを使うと何がうれしいの？</a></li></ol></li><li><a href="#toc15" tabindex="0">4. 実行時の挙動と注意点</a><ol><li><a href="#toc16" tabindex="0">✅ 型ヒントは“目印”だけ！強制力はない</a></li><li><a href="#toc17" tabindex="0">⚠️ 型をまちがえると、変な動きになることがある！</a></li><li><a href="#toc18" tabindex="0">✅ 型チェックにはエディタの補助機能が便利！</a></li><li><a href="#toc19" tabindex="0">✅ チェックを厳しくするツールもあるよ</a></li><li><a href="#toc20" tabindex="0">✅ 覚えておきたいまとめ</a></li></ol></li><li><a href="#toc21" tabindex="0">5. まとめ｜可読性と安全性が一気にアップ！</a><ol><li><a href="#toc22" tabindex="0">✅ デフォルト引数は「省略できるやさしさ」</a></li><li><a href="#toc23" tabindex="0">✅ 型ヒントは「間違いを防ぐ地図」</a></li><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">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜型のないPythonで「型」を使う意味とは？</span></h2>



<p>Pythonは「動的型付け」と呼ばれるプログラミング言語です。これは、変数を使うときに**「この変数は整数です」や「これは文字列です」といった宣言をしなくても使える**という特徴があります。</p>



<p>たとえば、こんなふうに書けます。</p>



<pre class="wp-block-preformatted"><code>price = 100      # 整数<br>name = "りんご"  # 文字列<br></code></pre>



<p>とっても自由で、初心者にもやさしいですね！</p>



<p>でも、プログラムが大きくなってくると、**「この変数ってどんな型だったっけ？」**と分かりにくくなることがあります。また、意図しない型の値を使ってしまって、**バグ（エラーのもと）**が起きることも…。</p>



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



<p>そこで便利なのが「タイプアノテーション（型ヒント）」です！</p>



<p>型ヒントを使うことで、こんなメリットがあります：</p>



<ul class="wp-block-list">
<li>この関数にどんなデータを渡せばいいのか<strong>一目で分かる</strong></li>



<li>間違った型のデータを渡したときに、<strong>エディタが警告してくれる</strong></li>



<li>チームで書くときにも、<strong>コードの意図が伝わりやすくなる</strong></li>
</ul>



<p>また、関数の引数に<strong>デフォルト値を設定する</strong>ことで、呼び出し時に<strong>省略できる引数</strong>を作ることもできます。これも、Pythonのコードを<strong>より使いやすく、分かりやすくする</strong>ための工夫なんです。</p>



<p>この記事では、初心者の方でもわかるように、</p>



<ul class="wp-block-list">
<li>関数の引数にデフォルト値を設定する方法</li>



<li>型ヒント（タイプアノテーション）の使い方</li>
</ul>



<p>を、やさしく・ていねいに解説していきます！</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>



<p>関数を使うとき、よく「引数（ひきすう）」というものを渡しますよね。たとえば、商品の値段と個数を渡して、合計金額を計算する関数を考えてみましょう。</p>



<pre class="wp-block-preformatted"><code>def total_price_one_item(unit_price, quantity):<br>    return unit_price * quantity<br></code></pre>



<p>この関数を使うには、こんなふうに2つの値を渡さないといけません。</p>



<pre class="wp-block-preformatted"><code>print(total_price_one_item(100, 2))  # → 200<br></code></pre>



<p>でも、「quantity（個数）」がいつも1個の場合もありますよね？<br>そんなとき、<strong>いちいち「1」と書くのが面倒</strong>だったりします。</p>



<p>そこで便利なのが、**デフォルト値（あらかじめの値）**です！</p>



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



<h3 class="wp-block-heading"><span id="toc3">✅ デフォルト値をつけるとどうなる？</span></h3>



<p>関数の引数にデフォルト値をつけると、<strong>その引数を渡さなくてもOK</strong>になります。<br>書き方はとっても簡単です！</p>



<pre class="wp-block-preformatted"><code>def total_price_one_item(unit_price, quantity=1):<br>    return unit_price * quantity<br></code></pre>



<p>このように書いておくと、<code>quantity</code> を指定しなかった場合は、自動で <code>1</code> が使われます。</p>



<pre class="wp-block-preformatted"><code>print(total_price_one_item(120))      # quantity を省略 → 120 * 1 = 120<br>print(total_price_one_item(120, 3))   # quantity を指定 → 120 * 3 = 360<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc4">✅ 引数名を指定して呼び出す方法</span></h3>



<p>引数が多い関数では、どの値が何に対応してるのか分かりづらくなることもあります。</p>



<p>そんなときは、「引数名」を指定して呼び出すこともできます！</p>



<pre class="wp-block-preformatted"><code>print(total_price_one_item(unit_price=150, quantity=2))  # → 300<br>print(total_price_one_item(quantity=2, unit_price=150))  # 順番を逆にしてもOK<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc5">⚠️ デフォルト値のルールに注意！</span></h3>



<p>1つ注意してほしいことがあります。</p>



<p><strong>デフォルト値をつけた引数のあとに、デフォルト値がない引数を書くとエラーになります。</strong></p>



<p>たとえば、これは間違いです：</p>



<pre class="wp-block-preformatted"><code># ❌ エラーになる書き方<br>def wrong_example(quantity=1, unit_price):<br>    return unit_price * quantity<br></code></pre>



<p>Pythonは、<strong>後ろから順番にデフォルト値をつけていくルール</strong>になっています。</p>



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



<h3 class="wp-block-heading"><span id="toc6">✅ デフォルト値がないとエラーになる場合</span></h3>



<p>逆に、<strong>デフォルト値を設定していない引数を省略してしまうと</strong>エラーになります。</p>



<pre class="wp-block-preformatted"><code>def greet(name):<br>    print(f"こんにちは、{name}さん！")<br><br>greet()  # ❌ エラー！ name がないよ！<br></code></pre>



<p>この場合は <code>name</code> にデフォルト値をつけるとエラーが出なくなります。</p>



<pre class="wp-block-preformatted"><code>def greet(name="ゲスト"):<br>    print(f"こんにちは、{name}さん！")<br><br>greet()  # → こんにちは、ゲストさん！<br></code></pre>



<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>次は、関数に「この引数は〇〇の型ですよ」と教えてくれる「タイプアノテーション」について紹介していきます！</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="toc7">3. タイプアノテーション（型ヒント）の基本</span></h2>



<p>Pythonは「型（データの種類）」をあらかじめ書かなくても動く言語ですが、実は<strong>どんな型を使うかを「ヒント」として書いておくこともできる</strong>んです。</p>



<p>このヒントのことを、「<strong>タイプアノテーション</strong>」とか「<strong>型ヒント</strong>」と呼びます。</p>



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



<h3 class="wp-block-heading"><span id="toc8">✅ 型ヒントってなに？</span></h3>



<p>型ヒントとは、<strong>この変数にはこういうデータが入りますよ！という目印</strong>です。</p>



<p>たとえば、価格や数量は「整数（int）」、名前は「文字列（str）」というふうに、使う型をはっきりさせることで、<strong>プログラムが読みやすくなったり、ミスに気づきやすくなったりします</strong>。</p>



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



<h3 class="wp-block-heading"><span id="toc9">✅ 書き方の基本</span></h3>



<p>関数で使うときの型ヒントの書き方はこちら：</p>



<pre class="wp-block-preformatted"><code>def total_price_one_item(unit_price: int, quantity: int) -> int:<br>    return unit_price * quantity<br></code></pre>



<p>この例では、</p>



<ul class="wp-block-list">
<li><code>unit_price</code> は整数（<code>int</code>）</li>



<li><code>quantity</code> も整数（<code>int</code>）</li>



<li>戻り値（return の結果）も整数（<code>int</code>）</li>
</ul>



<p>という意味になります。</p>



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



<h3 class="wp-block-heading"><span id="toc10">✅ 型ヒントとデフォルト値は一緒に書ける</span></h3>



<p>もちろん、<strong>デフォルト値と型ヒントを同時に使うこともできます</strong>。</p>



<pre class="wp-block-preformatted"><code>def total_price_one_item(unit_price: int, quantity: int = 1) -> int:<br>    return unit_price * quantity<br></code></pre>



<p>このようにすると、「<code>quantity</code> は整数で、指定がないときは 1 にしますよ」という意味になります。</p>



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



<h3 class="wp-block-heading"><span id="toc11">✅ 戻り値がない場合は「None」</span></h3>



<p>戻り値（return の結果）がない関数では、こう書きます：</p>



<pre class="wp-block-preformatted"><code>def greet(name: str) -> None:<br>    print(f"こんにちは、{name}さん！")<br></code></pre>



<p>ここでの <code>-&gt; None</code> は、「この関数は何も返さないですよ」という合図です。</p>



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



<h3 class="wp-block-heading"><span id="toc12">✅ よく使う型ヒント</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><code>int</code></td><td>整数</td><td>100, -5, 0</td></tr><tr><td><code>float</code></td><td>小数</td><td>3.14, 0.5</td></tr><tr><td><code>str</code></td><td>文字列</td><td>&#8220;こんにちは&#8221;, &#8216;Python&#8217;</td></tr><tr><td><code>bool</code></td><td>真偽値</td><td>True, False</td></tr><tr><td><code>List[int]</code></td><td>整数のリスト</td><td>[1, 2, 3]</td></tr><tr><td><code>Dict[str, int]</code></td><td>文字列をキーにした辞書</td><td>{&#8220;りんご&#8221;: 100}</td></tr><tr><td><code>Tuple[str, int]</code></td><td>タプル（組）</td><td>(&#8220;りんご&#8221;, 100)</td></tr></tbody></table></figure>



<p>💡 <code>List</code>, <code>Dict</code>, <code>Tuple</code> などを使うときは、最初に以下のようにインポートしておく必要があります。</p>



<pre class="wp-block-preformatted"><code>from typing import List, Dict, Tuple<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc13">⚠️ 型ヒントは「目印」だけ！強制力はない</span></h3>



<p>大事なポイントですが、<strong>型ヒントはあくまで「説明」や「目印」でしかありません</strong>。</p>



<p>たとえ違う型の値を渡しても、Pythonはエラーにしないことが多いです。</p>



<pre class="wp-block-preformatted"><code>def total_price(unit_price: int, quantity: int) -> int:<br>    return unit_price * quantity<br><br>print(total_price("100", 2))  # ❌ 実行できるけど、意図しない動きになるかも<br></code></pre>



<p>このように <code>unit_price</code> に文字列 <code>"100"</code> を渡してしまうと、Pythonは文字列の繰り返しとみなして <code>"100100"</code> という文字列を返してしまいます。</p>



<p><strong>「型ヒント通りに使おうね！」という約束ごとを、開発者どうしで守るためのしくみ</strong>と思っておきましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc14">✅ 型ヒントを使うと何がうれしいの？</span></h3>



<ul class="wp-block-list">
<li>関数の使い方がすぐに分かる</li>



<li>他の人が読んでも意味が伝わりやすい</li>



<li>間違った使い方をすると、エディタが教えてくれる（PyCharmや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="toc15">4. 実行時の挙動と注意点</span></h2>



<p>ここまでで、**型ヒント（タイプアノテーション）**の書き方やメリットを見てきました。でもちょっと不思議に思いませんか？</p>



<p>「型ヒントを書いてるのに、まちがった型を渡してもエラーにならないのはなぜ？」</p>



<p>実はここが、Pythonの「やさしいけどちょっと注意が必要なポイント」なんです。</p>



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



<h3 class="wp-block-heading"><span id="toc16">✅ 型ヒントは“目印”だけ！強制力はない</span></h3>



<p>Pythonでは、型ヒントをつけても<strong>その通りの型じゃなくても動いてしまう</strong>ことがあります。</p>



<p>たとえば、こんな関数があったとします：</p>



<pre class="wp-block-preformatted"><code>def total_price(unit_price: int, quantity: int) -> int:<br>    return unit_price * quantity<br></code></pre>



<p>ここで、まちがって <code>unit_price</code> に文字列 <code>"100"</code> を渡すとどうなるでしょう？</p>



<pre class="wp-block-preformatted"><code>print(total_price("100", 2))  # 実行できるけど...<br></code></pre>



<p>実行してみると、なんと結果は：</p>



<pre class="wp-block-preformatted"><code>100100<br></code></pre>



<p>あれ？エラーじゃないの？と思いますよね。</p>



<p>実はPythonは、</p>



<ul class="wp-block-list">
<li><code>"100"</code>（文字列） × <code>2</code>（整数）＝ <code>"100100"</code>（文字列が2回くり返される）</li>
</ul>



<p>というふうに動いてしまうんです。</p>



<p>つまり、<strong>Pythonは柔軟すぎて、まちがった型でも動いてしまうことがある</strong>んですね。</p>



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



<h3 class="wp-block-heading"><span id="toc17">⚠️ 型をまちがえると、変な動きになることがある！</span></h3>



<p>型ヒントがあっても、Python自身は「これはまちがってるよ！」とは言ってくれません。</p>



<p>でも、型がちがうと<strong>想定外の動きになってバグの原因になる</strong>ことがあります。</p>



<p>たとえば、合計金額を出すつもりだったのに、文字列がくり返されたり…</p>



<pre class="wp-block-preformatted"><code>def total_price(unit_price: int, quantity: int) -> int:<br>    return unit_price * quantity<br><br>print(total_price("100", 3))  # → "100100100"<br></code></pre>



<p>これではおかしな結果になってしまいますよね。</p>



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



<h3 class="wp-block-heading"><span id="toc18">✅ 型チェックにはエディタの補助機能が便利！</span></h3>



<p>PyCharmやVS Code などの<strong>高機能なエディタ</strong>では、型ヒントに合っていない使い方をすると、<strong>「この型は合ってないよ！」と警告してくれる</strong>機能があります。</p>



<pre class="wp-block-preformatted"><code># 例：VS Codeでの警告（赤い波線で表示）<br>total_price("100", 2)  # ⚠️ unit_price は int なのに str が渡されてますよ<br></code></pre>



<p>こういった<strong>警告をヒントにして、まちがいを早めに見つけることができる</strong>のも、型ヒントのいいところです。</p>



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



<h3 class="wp-block-heading"><span id="toc19">✅ チェックを厳しくするツールもあるよ</span></h3>



<p>Pythonでは、型チェックをもっとしっかりやりたいときに使えるツールもあります。</p>



<ul class="wp-block-list">
<li><strong>mypy</strong>（マイパイ）というツールを使うと、プログラム全体の型チェックができるようになります。</li>



<li>コマンドで <code>mypy ファイル名.py</code> と打つと、<strong>型のミスを自動でチェックしてくれます！</strong></li>
</ul>



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



<pre class="wp-block-preformatted"><code>mypy my_script.py<br></code></pre>



<p>こうすれば、<strong>Pythonでも型のミスを見つけやすくなる</strong>んです。</p>



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



<h3 class="wp-block-heading"><span id="toc20">✅ 覚えておきたいまとめ</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ポイント</th><th>説明</th></tr></thead><tbody><tr><td>型ヒントは目印だけ</td><td>実行時には強制されない</td></tr><tr><td>型がちがっても動くことがある</td><td>でもバグの原因になることも…</td></tr><tr><td>エディタが警告してくれる</td><td>PyCharmやVS Codeを使うと便利</td></tr><tr><td>mypyなどのチェックツールもある</td><td>本格的な開発で使われることが多い</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="toc21">5. まとめ｜可読性と安全性が一気にアップ！</span></h2>



<p>この記事では、Pythonの関数で使える2つの便利なテクニック、</p>



<ul class="wp-block-list">
<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="toc22">✅ デフォルト引数は「省略できるやさしさ」</span></h3>



<p>デフォルト値を設定することで、<strong>毎回すべての引数を入力しなくても関数を呼び出せる</strong>ようになります。</p>



<p>使う側にもやさしく、書くコードもスッキリします。</p>



<pre class="wp-block-preformatted"><code>def greet(name="ゲスト"):<br>    print(f"こんにちは、{name}さん！")<br><br>greet()  # → こんにちは、ゲストさん！<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc23">✅ 型ヒントは「間違いを防ぐ地図」</span></h3>



<p>タイプアノテーションを使うと、「この引数には整数が来るよ！」といった<strong>ヒントをプログラムに書いておくことができます</strong>。</p>



<p>これは実行中には強制されないけれど、<strong>間違いに気づきやすくなり、バグを減らすことができます。</strong></p>



<pre class="wp-block-preformatted"><code>def total_price(unit_price: int, quantity: int = 1) -> int:<br>    return unit_price * quantity<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc24">✅ 小さな工夫で大きなメリット！</span></h3>



<ul class="wp-block-list">
<li>関数が<strong>使いやすくなる</strong></li>



<li>コードの<strong>意味が伝わりやすくなる</strong></li>



<li>エディタが<strong>ミスを教えてくれる</strong></li>



<li>チームでの開発でも<strong>安心して使えるコードになる</strong></li>
</ul>



<p>これらのテクニックは、Python初心者のうちから使っていくと、<strong>あとあととても役に立ちます！</strong></p>



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



<h3 class="wp-block-heading"><span id="toc25">🎓 学びを自分のコードに活かしてみよう！</span></h3>



<p>もし今、自分で書いているPythonの関数があれば、</p>



<ul class="wp-block-list">
<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="toc26"> あわせて読みたい</span></h3>



<p>Pythonの関数や引数についてもっと知りたい方に、この記事とセットで読んでほしい記事をピックアップしました！</p>



<ul class="wp-block-list">
<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/11/python-args-kwargs/">【Python入門】可変長引数 *args と **kwargs の使い方をやさしく解説！</a><br>┗ 引数の数が決まっていないときに使える、柔軟な関数の作り方を紹介！</li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/10/python-for-useful-functions-tqdm-zip-enumerate/">【Python入門】for文で使える便利関数3選｜tqdm・zip・enumerateの使い方と活用例を解説！</a><br>┗ for文でのループ処理をもっと見やすく＆効率的に！</li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/07/python-indent-rules-guide/">【Python入門】インデントルール完全ガイド｜スペースとタブの違いって？</a><br>┗ 関数を書くときに必須の「インデント」のルールをしっかり理解しよう。</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc27">よくある質問（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><br>型ヒントは「必須」ではありませんが、書いておくと<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>Pythonの実行中にはエラーになりません。</strong><br>ただし、VS CodeやPyCharmなどのエディタでは<strong>警告が表示されて気づくことができます</strong>。本格的にチェックしたいときは <code>mypy</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><strong>注意が必要です！</strong><br>リストや辞書などの<strong>ミュータブル（変更できる）な値をデフォルト値にすると、思わぬ動きをすることがあります</strong>。その場合は、関数の中で <code>None</code> を使って対処する方法がよく使われます。</p>



<pre class="wp-block-preformatted"><code>def add_item(item, item_list=None):<br>    if item_list is None:<br>        item_list = []<br>    item_list.append(item)<br>    return item_list</code></pre>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/11/python-default-arguments-type-annotations/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python入門】日付・時間・タイムゾーンの基本と使い方をわかりやすく解説！</title>
		<link>https://python.cbagames.jp/2025/06/11/python-datetime-basics/</link>
					<comments>https://python.cbagames.jp/2025/06/11/python-datetime-basics/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Wed, 11 Jun 2025 03:10:33 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[datetime]]></category>
		<category><![CDATA[Python初心者]]></category>
		<category><![CDATA[タイムゾーン]]></category>
		<category><![CDATA[日付操作]]></category>
		<category><![CDATA[時間の計算]]></category>
		<category><![CDATA[祝日判定]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=234</guid>

					<description><![CDATA[目次 1. はじめに｜Pythonで日付や時間を扱う場面って？2. datetimeモジュールの基本的な使い方🔹 date（デート）オブジェクト ＝ 日付だけをあつかう💡ポイント：🔹 time（タイム）オブジェクト ＝  [&#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-12"><label class="toc-title" for="toc-checkbox-12">目次</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. datetimeモジュールの基本的な使い方</a><ol><li><a href="#toc3" tabindex="0">🔹 date（デート）オブジェクト ＝ 日付だけをあつかう</a><ol><li><a href="#toc4" tabindex="0">💡ポイント：</a></li></ol></li><li><a href="#toc5" tabindex="0">🔹 time（タイム）オブジェクト ＝ 時間だけをあつかう</a><ol><li><a href="#toc6" tabindex="0">💡ポイント：</a></li></ol></li><li><a href="#toc7" tabindex="0">🔹 datetime（デートタイム）オブジェクト ＝ 日付＋時間をあつかう</a><ol><li><a href="#toc8" tabindex="0">💡ポイント：</a></li></ol></li></ol></li><li><a href="#toc9" tabindex="0">3. 時間の足し算・引き算にはtimedelta</a><ol><li><a href="#toc10" tabindex="0">🔹 まずは使い方を覚えよう</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></ol></li><li><a href="#toc14" tabindex="0">4. タイムゾーンを扱うには timezone</a><ol><li><a href="#toc15" tabindex="0">🔹 そもそもタイムゾーンって？</a></li><li><a href="#toc16" tabindex="0">🔹 Pythonで日本時間（JST）を使うには？</a></li><li><a href="#toc17" tabindex="0">🔹 タイムゾーンをあとからつけたいときは？</a></li><li><a href="#toc18" tabindex="0">🔹 タイムゾーンを使うと何がうれしいの？</a></li></ol></li><li><a href="#toc19" tabindex="0">5. 日本の祝日をチェックするには jp_holidays</a><ol><li><a href="#toc20" tabindex="0">🔹 jp_holidaysって何？</a></li><li><a href="#toc21" tabindex="0">🔹 まずはインストールしよう</a></li><li><a href="#toc22" tabindex="0">🔹 基本の使い方を見てみよう</a></li><li><a href="#toc23" tabindex="0">🔹 どんな場面で役に立つ？</a></li><li><a href="#toc24" tabindex="0">🔸 注意ポイント</a></li></ol></li><li><a href="#toc25" tabindex="0">6. まとめ｜日付・時間の操作を使いこなそう！</a><ol><li><a href="#toc26" tabindex="0">あわせて読みたい</a></li></ol></li><li><a href="#toc27" 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>



<p>たとえば、こんなときに必要になります：</p>



<ul class="wp-block-list">
<li>毎日決まった時間にメールを送りたい</li>



<li>ログに「いつ何が起きたか」を記録したい</li>



<li>「7日後が何月何日か」を知りたい</li>



<li>日本の祝日かどうかを調べたい</li>
</ul>



<p>こういった処理は、ゲームでも、業務アプリでも、日記アプリでも、ほんとうによく出てくるんです。</p>



<p>そこで登場するのが、Pythonの標準モジュールである <strong><code>datetime</code>（デートタイム）モジュール</strong>です。<br>これは「日付や時間をかんたんに扱える便利な道具セット」みたいなもの。</p>



<p>しかも、Pythonではこの<code>datetime</code>を使えば、</p>



<ul class="wp-block-list">
<li>今日の日付や今の時間がすぐにわかる</li>



<li>3日後、1週間前などの日時が簡単に計算できる</li>



<li>タイムゾーン（日本時間、UTCなど）も扱える</li>
</ul>



<p>といったことが、プログラムでサクッとできちゃうんです！</p>



<p>この章では、そんな <strong>「日付・時間の基本操作」</strong> を、初心者の方でもわかるようにゆっくりていねいに解説していきます。</p>



<p>「時間の計算なんてむずかしそう…」と思っていたあなたも大丈夫！<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. datetimeモジュールの基本的な使い方</span></h2>



<p>Pythonで日付や時間をあつかうときに、よく使われるのが <code>datetime</code> というモジュールです。</p>



<p>このモジュールには、3つのとても便利な道具が用意されています。</p>



<h3 class="wp-block-heading"><span id="toc3">🔹 date（デート）オブジェクト ＝ 日付だけをあつかう</span></h3>



<p>「今日って何日？」や「この日が何曜日か知りたい」ってときに使います。</p>



<pre class="wp-block-preformatted"><code>from datetime import date<br><br>today = date.today()<br>print(today)  # 例: 2025-06-11<br></code></pre>



<h4 class="wp-block-heading"><span id="toc4">💡ポイント：</span></h4>



<ul class="wp-block-list">
<li><code>date(2025, 6, 11)</code> のようにして、好きな日付を作ることもできます。</li>



<li><code>.year</code>, <code>.month</code>, <code>.day</code> を使えば、年・月・日だけを取り出すこともできます。</li>



<li><code>.weekday()</code> を使うと「何曜日か」が数字でわかります（0=月曜, 6=日曜）。</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc5">🔹 time（タイム）オブジェクト ＝ 時間だけをあつかう</span></h3>



<p>今度は「朝8時」や「夜11時30分」など、<strong>時間だけ</strong>をあつかいたいときに使います。</p>



<pre class="wp-block-preformatted"><code>from datetime import time<br><br>t = time(8, 30, 0)<br>print(t)  # 08:30:00<br></code></pre>



<h4 class="wp-block-heading"><span id="toc6">💡ポイント：</span></h4>



<ul class="wp-block-list">
<li><code>.hour</code>, <code>.minute</code>, <code>.second</code>, <code>.microsecond</code> を使って、それぞれの時間の要素が取り出せます。</li>



<li>時だけじゃなくて「分」や「秒」まで細かく指定できます。</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc7">🔹 datetime（デートタイム）オブジェクト ＝ 日付＋時間をあつかう</span></h3>



<p>名前のとおり、「日付」と「時間」をセットで使いたいときに便利なのが <code>datetime</code> オブジェクト！</p>



<pre class="wp-block-preformatted"><code>from datetime import datetime<br><br>now = datetime.now()<br>print(now)  # 2025-06-11 12:34:56.789012（みたいな表示）<br></code></pre>



<h4 class="wp-block-heading"><span id="toc8">💡ポイント：</span></h4>



<ul class="wp-block-list">
<li><code>.year</code>, <code>.month</code>, <code>.day</code>, <code>.hour</code>, <code>.minute</code> など、全部取り出せる！</li>



<li><code>datetime(2025, 6, 11, 12, 0)</code> のように、自分で日付＋時間を作ることもできます。</li>



<li><code>.date()</code> を使えば、日付だけ取り出せます。</li>
</ul>



<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>「今日が何日か」だけでなく、「明日から7日後が何日か」「この時間に何かをする」などの<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. 時間の足し算・引き算にはtimedelta</span></h2>



<p>「7日後って何日？」とか「3日前はいつだった？」といった、<strong>日付の計算</strong>がしたいときに使えるのが、<br><code>timedelta（タイムデルタ）</code> というオブジェクトです！</p>



<p>ちょっとカタカナで難しそうな名前ですが、やってることはとってもシンプル。<br>「時間の差」や「日付のズレ」を表すための道具だと思ってください。</p>



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



<h3 class="wp-block-heading"><span id="toc10">🔹 まずは使い方を覚えよう</span></h3>



<pre class="wp-block-preformatted"><code>from datetime import datetime, timedelta<br><br>today = datetime(2025, 6, 11)<br>plus_7_days = today + timedelta(days=7)<br><br>print(plus_7_days)  # 2025-06-18 00:00:00<br></code></pre>



<p><code>timedelta(days=7)</code> と書けば、「7日間」という意味になります。<br>これを<code>datetime</code>に足せば、「7日後の日付」が簡単に求まります！</p>



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



<h3 class="wp-block-heading"><span id="toc11">🔹 引き算もできる！</span></h3>



<pre class="wp-block-preformatted"><code>day1 = datetime(2025, 6, 11)<br>day2 = datetime(2025, 5, 25)<br><br>diff = day1 - day2<br>print(diff)         # 17 days, 0:00:00<br>print(diff.days)    # 17<br></code></pre>



<p>2つの<code>datetime</code>オブジェクトを引き算すると、<code>timedelta</code>が返ってきます。<br><code>.days</code>を使えば、何日差かがすぐにわかります！</p>



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



<h3 class="wp-block-heading"><span id="toc12">🔹 時間の差もわかる！</span></h3>



<pre class="wp-block-preformatted"><code>from datetime import datetime, timedelta<br><br>start = datetime(2025, 6, 11, 10, 0)<br>end = datetime(2025, 6, 11, 12, 30)<br><br>delta = end - start<br>print(delta.seconds)  # 9000秒（2時間30分）<br></code></pre>



<p>日付が同じでも、時間が違えば <code>seconds</code> で差が見られます。</p>



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



<h3 class="wp-block-heading"><span id="toc13">🔹 いろんな単位に対応</span></h3>



<p><code>timedelta</code>は、以下のように<strong>いろんな単位</strong>を指定できます。</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>単位</th><th>キーワード例</th></tr></thead><tbody><tr><td>日</td><td><code>days=3</code></td></tr><tr><td>秒</td><td><code>seconds=1800</code></td></tr><tr><td>マイクロ秒</td><td><code>microseconds=500000</code></td></tr><tr><td>時間</td><td><code>hours=1</code></td></tr><tr><td>分</td><td><code>minutes=30</code></td></tr><tr><td>週間</td><td><code>weeks=2</code></td></tr></tbody></table></figure>



<p>例：</p>



<pre class="wp-block-preformatted"><code>after_two_weeks = datetime.now() + timedelta(weeks=2)<br></code></pre>



<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><code>timedelta</code> を使えば、「◯日後」や「何日差？」がかんたんに計算できます。<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="toc14">4. タイムゾーンを扱うには timezone</span></h2>



<p>みなさん、「世界の時間」って意識したことありますか？<br>日本とアメリカでは時差がありますよね。たとえば、アメリカが朝のとき、日本はもう夜だったりします。</p>



<p>こういった<strong>国や地域ごとの時間の違い</strong>をきちんと扱うには、「タイムゾーン（timezone）」という考え方が必要です。</p>



<p>Pythonでも、タイムゾーンをしっかり扱うための仕組みがちゃんと用意されています！</p>



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



<h3 class="wp-block-heading"><span id="toc15">🔹 そもそもタイムゾーンって？</span></h3>



<p>世界の基準となる時間が「UTC（協定世界時）」です。<br>日本は「UTCより9時間進んでいる」ので、**日本時間は「UTC+9」**と表されます。</p>



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



<h3 class="wp-block-heading"><span id="toc16">🔹 Pythonで日本時間（JST）を使うには？</span></h3>



<p>まずは、<code>timezone</code>というオブジェクトを使って、<strong>日本時間のタイムゾーンを定義</strong>します。</p>



<pre class="wp-block-preformatted"><code>from datetime import datetime, timezone, timedelta<br><br># 日本時間（UTC+9）を定義<br>jst = timezone(timedelta(hours=+9))<br><br># タイムゾーンつきの現在時刻<br>now_japan = datetime.now(jst)<br>print(now_japan)  # 2025-06-11 13:45:00+09:00（例）<br></code></pre>



<p>このように、<code>datetime.now(タイムゾーン)</code> としてあげれば、<strong>そのタイムゾーンでの現在時刻</strong>が取得できます！</p>



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



<h3 class="wp-block-heading"><span id="toc17">🔹 タイムゾーンをあとからつけたいときは？</span></h3>



<p>すでに作った日時オブジェクトに、あとからタイムゾーンをつけることもできます。</p>



<pre class="wp-block-preformatted"><code>dt = datetime(2025, 6, 11, 9, 0)<br>dt_jst = dt.replace(tzinfo=jst)<br>print(dt_jst)  # 2025-06-11 09:00:00+09:00<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc18">🔹 タイムゾーンを使うと何がうれしいの？</span></h3>



<p>グローバルに使われるアプリやサービスでは、ユーザーのいる国に合わせて時間を表示する必要があります。<br>タイムゾーンを正しく設定しておけば、</p>



<ul class="wp-block-list">
<li>サーバーではUTCで記録</li>



<li>ユーザーにはJSTで表示</li>
</ul>



<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>です。<br>Pythonでは、<code>timezone</code>と<code>timedelta</code>を組み合わせることで、日本時間や他の国の時間もカンタンに扱えます。</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="toc19">5. 日本の祝日をチェックするには jp_holidays</span></h2>



<p>「この日って祝日かな？」<br>「ゴールデンウィークの予定、自動で判断してくれたら便利なのに…」<br>そんなときに使えるのが、Pythonの外部ライブラリ <strong><code>jp_holidays</code>（ジェイピーホリデイズ）</strong> です！</p>



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



<h3 class="wp-block-heading"><span id="toc20">🔹 jp_holidaysって何？</span></h3>



<p>これは、日本の祝日を簡単にチェックできるライブラリです。</p>



<p>「この日が祝日かどうか」だけでなく、</p>



<ul class="wp-block-list">
<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="toc21">🔹 まずはインストールしよう</span></h3>



<p>このライブラリは標準では入っていないので、インストールが必要です。</p>



<pre class="wp-block-preformatted"><code>pip install jp_holidays<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>import jp_holidays<br>from datetime import date<br><br># この日が祝日かどうかチェック<br>print(jp_holidays.is_holiday(date(2025, 1, 1)))  <br># → True（元日）<br><br># 祝日名を表示<br>print(jp_holidays.is_holiday_name(date(2025, 1, 1)))  <br># → '元日'<br><br># その年の祝日一覧を取得<br>holidays = jp_holidays.year_holidays(2025)<br>for d, name in holidays:<br>    print(f"{d} は {name} です")<br></code></pre>



<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>勤怠アプリで「この日はお休みだから出勤扱いにしない」</li>



<li>スケジューラーで「祝日を自動でカレンダーに反映」</li>



<li>自動レポートで「営業日だけ処理を実行」</li>
</ul>



<p>など、<strong>実務でもめちゃくちゃ使えます！</strong></p>



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



<h3 class="wp-block-heading"><span id="toc24">🔸 注意ポイント</span></h3>



<p><code>jp_holidays</code>は「非公式ライブラリ」なので、以下のことに注意してください：</p>



<ul class="wp-block-list">
<li><strong>国の祝日変更（例：五輪で移動した祝日）には注意</strong></li>



<li>定期的にライブラリをアップデートするのがおすすめです（<code>pip install --upgrade jp_holidays</code>）</li>
</ul>



<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>この<code>jp_holidays</code>を使えば、<strong>自動で簡単に判定＆表示</strong>できます！</p>



<p>ちょっとしたツールから業務システムまで使えるので、知っておくとかなり便利ですよ✨</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="toc25">6. まとめ｜日付・時間の操作を使いこなそう！</span></h2>



<p>Pythonで日付や時間を扱うには、**標準モジュールの<code>datetime</code>**を中心に使います。</p>



<p>今回紹介した内容をまとめると…</p>



<p>✅ <code>date</code>, <code>time</code>, <code>datetime</code>で、日付・時間を自在に取り出せる<br>✅ <code>timedelta</code>を使えば、○日前・○日後の計算がカンタン！<br>✅ <code>timezone</code>を指定すれば、世界の時差もバッチリ管理できる<br>✅ 日本の祝日は<code>jp_holidays</code>で自動チェックできる</p>



<p>こうした知識は、<strong>本格的なアプリ開発や業務自動化</strong>にもすぐ役立ちます！</p>



<p>最初は少しむずかしく感じるかもしれませんが、この記事のコードをコピーして、ぜひ実際に試してみてください😊<br>「Pythonでこんなこともできるんだ！」という体験が、きっと楽しさにつながるはずです！</p>



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



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



<p>以下の記事も合わせて読むと、さらに理解が深まります👇</p>



<ul class="wp-block-list">
<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/07/python-automation-for-beginners/">Pythonでできる自動化10選｜初心者向けにやさしく解説</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/10/vscode-ai-copilot-beginner/">【初心者向け】VS CodeでAIを使う方法を解説！Copilot・チャットAI・エージェントまで完全ガイド</a></li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/09/fastapi-basic-usage-guide/">【初心者向け】FastAPIの基本の使い方をやさしく解説</a></li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc27">よくある質問（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"><code>datetime.now()</code> と <code>date.today()</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><code>datetime.now()</code>は「日付＋時刻」、<code>date.today()</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"><code>timedelta(days=30)</code>って必ず「1か月後」になりますか？</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>なりません！30日後ですが、月によって日数は違うため「1か月後」とは限りません。月単位の計算には <code>relativedelta</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>はい、<code>timezone(timedelta(hours=±差)</code> の形で、世界中のタイムゾーンを自分で作れます。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/11/python-datetime-basics/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Python入門】for文で使える便利関数3選｜tqdm・zip・enumerateの使い方と活用例を解説！</title>
		<link>https://python.cbagames.jp/2025/06/10/python-for-useful-functions-tqdm-zip-enumerate/</link>
					<comments>https://python.cbagames.jp/2025/06/10/python-for-useful-functions-tqdm-zip-enumerate/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Tue, 10 Jun 2025 03:06:00 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[enumerate]]></category>
		<category><![CDATA[for文]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Python初心者]]></category>
		<category><![CDATA[tqdm]]></category>
		<category><![CDATA[zip]]></category>
		<category><![CDATA[プログレスバー]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=220</guid>

					<description><![CDATA[目次 1. はじめに｜for文がもっと便利になる関数を紹介！2. tqdm｜処理の進捗が見えるプログレスバー✅ tqdmってなに？✅ インストールと使い方✅ どんな情報が見られるの？✅ tqdmのここがすごい！3. zi [&#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-14"><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">1. はじめに｜for文がもっと便利になる関数を紹介！</a></li><li><a href="#toc2" tabindex="0">2. tqdm｜処理の進捗が見えるプログレスバー</a><ol><li><a href="#toc3" tabindex="0">✅ tqdmってなに？</a></li><li><a href="#toc4" tabindex="0">✅ インストールと使い方</a></li><li><a href="#toc5" tabindex="0">✅ どんな情報が見られるの？</a></li><li><a href="#toc6" tabindex="0">✅ tqdmのここがすごい！</a></li></ol></li><li><a href="#toc7" tabindex="0">3. zip｜複数のリストを同時にループ処理</a><ol><li><a href="#toc8" tabindex="0">✅ zipってなに？</a></li><li><a href="#toc9" tabindex="0">✅ zipのポイントまとめ</a></li><li><a href="#toc10" tabindex="0">✅ 注意点：リストの長さが違うと？</a></li></ol></li><li><a href="#toc11" tabindex="0">4. enumerate｜インデックス付きで繰り返す</a><ol><li><a href="#toc12" tabindex="0">✅ enumerateってなに？</a></li><li><a href="#toc13" tabindex="0">✅ start引数で番号を1から始める</a></li><li><a href="#toc14" tabindex="0">✅ enumerateの活用シーン</a></li></ol></li><li><a href="#toc15" tabindex="0">5. まとめ｜for文 × 便利関数でコードの質が上がる！</a><ol><li><a href="#toc16" tabindex="0">あわせて読みたい</a></li></ol></li><li><a href="#toc17" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜for文がもっと便利になる関数を紹介！</span></h2>



<p>Pythonを使っていると、<strong>繰り返し処理（ループ）をする場面ってたくさん出てきますよね。たとえばリストの中身を1つずつ取り出して表示したり、何かの処理を何回もくり返したり……そんなときに活躍するのがfor文</strong>です。</p>



<p>でも、for文をたくさん使っていると、こんなことを思ったことはありませんか？</p>



<ul class="wp-block-list">
<li>「このループ、<strong>あとどれくらいで終わるんだろう？</strong>」</li>



<li>「<strong>リストが2つ</strong>あるんだけど、どうやって同時に回そう？」</li>



<li>「今<strong>何番目の要素</strong>を処理してるんだっけ……？」</li>
</ul>



<p>実は、こういった「ちょっと不便かも？」を<strong>簡単に解決してくれる関数</strong>がPythonにはちゃんと用意されています！</p>



<p>この記事では、そんな便利な関数たち――</p>



<ul class="wp-block-list">
<li><code>tqdm</code>（ループの進み具合を表示）</li>



<li><code>zip</code>（複数のリストをまとめてループ）</li>



<li><code>enumerate</code>（インデックス付きでループ）</li>
</ul>



<p>この3つを、Python初心者にもわかるようにやさしく解説していきます。<br>for文に<strong>ちょっとプラスするだけ</strong>で、コードがもっと分かりやすく・使いやすくなりますよ！</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. tqdm｜処理の進捗が見えるプログレスバー</span></h2>



<p>for文を使って、たくさんのデータを処理しているとき、「<strong>あとどれくらいで終わるんだろう？</strong>」って思ったことありませんか？<br>そんなときに便利なのが、**tqdm（ティー・キュー・ディー・エム）**というライブラリです。</p>



<h3 class="wp-block-heading"><span id="toc3">✅ tqdmってなに？</span></h3>



<p><code>tqdm</code>は、<strong>ループの進み具合（進捗）をバーで表示してくれる</strong>ツールです。<br>ループ処理に「あと〇％で終わるよ〜！」と<strong>視覚的に教えてくれる</strong>ので、とっても安心感があります。</p>



<h3 class="wp-block-heading"><span id="toc4">✅ インストールと使い方</span></h3>



<p><code>tqdm</code>はPythonに最初から入っているわけではないので、最初にインストールが必要です。<br>ターミナル（またはコマンドプロンプト）でこのコマンドを実行してください：</p>



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



<p>次に、Pythonのコードで<code>tqdm</code>を読み込むにはこうします：</p>



<pre class="wp-block-preformatted"><code>from tqdm import tqdm<br></code></pre>



<p>使い方はとっても簡単で、for文の中で「繰り返したいリストなど」を<code>tqdm()</code>で囲むだけ！</p>



<pre class="wp-block-preformatted"><code>from tqdm import tqdm<br>import time<br><br>for i in tqdm(range(10)):<br>    time.sleep(0.5)  # ちょっと時間のかかる処理をイメージ<br></code></pre>



<p>実行すると、ターミナル上に「█」が伸びていく<strong>プログレスバー</strong>が出てきます！</p>



<h3 class="wp-block-heading"><span id="toc5">✅ どんな情報が見られるの？</span></h3>



<p><code>tqdm</code>を使うと、以下のような情報が一目でわかります：</p>



<ul class="wp-block-list">
<li>現在の進み具合（％表示）</li>



<li>終わった回数 / 全体の回数</li>



<li>経過時間・残り時間（予想）</li>
</ul>



<p>「まだ半分か〜」「あと10秒で終わる！」など、<strong>作業の見通しが立つ</strong>のでとても便利です。</p>



<h3 class="wp-block-heading"><span id="toc6">✅ tqdmのここがすごい！</span></h3>



<ul class="wp-block-list">
<li><strong>大量のデータ処理でも安心感あり！</strong><br>→ どこまで終わったか分かるので、ストレスが減ります。</li>



<li><strong>処理が遅い時に気づける！</strong><br>→ 進みが遅いと感じたら、コードを見直すチャンス！</li>



<li><strong>Jupyter Notebookでも使える！</strong><br>→ <code>from tqdm.notebook import tqdm</code>とすれば、ノートブックにも対応。</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="toc7">3. zip｜複数のリストを同時にループ処理</span></h2>



<p>Pythonでfor文を使っていると、**2つのリストを同時に扱いたい！**ということがあります。</p>



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



<pre class="wp-block-preformatted"><code>名前リスト = ["太郎", "花子", "次郎"]<br>点数リスト = [80, 90, 75]<br></code></pre>



<p>この2つのリストを<strong>同じ順番で1人ずつ表示したい</strong>とき、どうすればいいでしょう？</p>



<p>ここで登場するのが、便利な関数 <strong><code>zip()</code></strong> です！</p>



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



<h3 class="wp-block-heading"><span id="toc8">✅ zipってなに？</span></h3>



<p><code>zip()</code>は、<strong>複数のリストや繰り返しオブジェクトを1つずつまとめてくれる関数</strong>です。<br>使い方はとてもシンプル！</p>



<pre class="wp-block-preformatted"><code>for 名前, 点数 in zip(名前リスト, 点数リスト):<br>    print(f"{名前}さんの点数は{点数}点です")<br></code></pre>



<p>これを実行すると、こんなふうに出力されます：</p>



<pre class="wp-block-preformatted"><code>太郎さんの点数は80点です  <br>花子さんの点数は90点です  <br>次郎さんの点数は75点です<br></code></pre>



<p><strong>1つ目のリストの1番目と、2つ目のリストの1番目がセットで処理される</strong>感じですね。</p>



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



<h3 class="wp-block-heading"><span id="toc9">✅ zipのポイントまとめ</span></h3>



<ul class="wp-block-list">
<li><strong>複数のリストやタプルを「ペア」にして同時に処理</strong>できる</li>



<li>3つ以上のリストも組み合わせられる！（例：<code>zip(A, B, C)</code>）</li>



<li>リストの中身を<strong>対応づけて処理したいときにピッタリ！</strong></li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc10">✅ 注意点：リストの長さが違うと？</span></h3>



<p><code>zip()</code>は、一番<strong>短いリストに合わせて止まる</strong>ようになっています。</p>



<pre class="wp-block-preformatted"><code>A = [1, 2, 3]<br>B = ["a", "b"]<br><br>for x, y in zip(A, B):<br>    print(x, y)<br></code></pre>



<p>このコードでは、<code>(1, "a")</code> と <code>(2, "b")</code> までしか表示されません。<br>**3と&#8221;c&#8221;**のようなペアが存在しないので、そこまででループが終わります。</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>zipは、データを<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="toc11">4. enumerate｜インデックス付きで繰り返す</span></h2>



<p>Pythonのfor文でリストを繰り返すとき、「この要素って<strong>何番目</strong>なんだろう？」と思ったことはありませんか？</p>



<p>そんなときに使えるのが、**<code>enumerate()</code>（エニュメレート）**という関数です。</p>



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



<h3 class="wp-block-heading"><span id="toc12">✅ enumerateってなに？</span></h3>



<p><code>enumerate()</code>は、リストなどの繰り返しオブジェクトに<strong>番号（インデックス）を自動で付けてくれる関数</strong>です。</p>



<p>ふつうのfor文では、こう書きますよね：</p>



<pre class="wp-block-preformatted"><code>果物リスト = ["りんご", "バナナ", "みかん"]<br><br>for 果物 in 果物リスト:<br>    print(果物)<br></code></pre>



<p>でも「何番目か」も一緒に表示したいなら、<code>enumerate()</code>を使うととっても簡単！</p>



<pre class="wp-block-preformatted"><code>for i, 果物 in enumerate(果物リスト):<br>    print(f"{i}番目の果物は{果物}です")<br></code></pre>



<p>実行結果：</p>



<pre class="wp-block-preformatted"><code>0番目の果物はりんごです  <br>1番目の果物はバナナです  <br>2番目の果物はみかんです<br></code></pre>



<p>番号（インデックス）と一緒に要素が出てきます！</p>



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



<h3 class="wp-block-heading"><span id="toc13">✅ start引数で番号を1から始める</span></h3>



<p>Pythonでは番号（インデックス）は<strong>0からスタート</strong>するのが基本ですが、「1番目、2番目…」のように表示したいときもありますよね。</p>



<p>そんなときは、<code>start=1</code>をつけるだけ！</p>



<pre class="wp-block-preformatted"><code>for i, 果物 in enumerate(果物リスト, start=1):<br>    print(f"{i}番目の果物は{果物}です")<br></code></pre>



<p>これで出力はこうなります：</p>



<pre class="wp-block-preformatted"><code>1番目の果物はりんごです  <br>2番目の果物はバナナです  <br>3番目の果物はみかんです<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc14">✅ enumerateの活用シーン</span></h3>



<ul class="wp-block-list">
<li>データに<strong>順位をつけたいとき</strong></li>



<li>ループ処理で**「何件目か」を表示したいとき**</li>



<li><strong>インデックス番号をもとに条件分岐</strong>したいとき（たとえば、3番目だけ特別な処理をする など）</li>
</ul>



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



<p>enumerateを使えば、わざわざ<code>range(len(リスト))</code>のような書き方をしなくても、<strong>番号と要素のペア</strong>をスマートに扱えます。</p>



<p>Pythonで繰り返し処理をたくさん書く人にとって、<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="toc15">5. まとめ｜for文 × 便利関数でコードの質が上がる！</span></h2>



<p>この記事では、Pythonのfor文と一緒に使うととっても便利な3つの関数をご紹介しました。</p>



<ul class="wp-block-list">
<li>✅ <code>tqdm</code>：ループの進捗を<strong>プログレスバーで見える化</strong>！</li>



<li>✅ <code>zip</code>：複数のリストを<strong>ペアにして同時にループ</strong>！</li>



<li>✅ <code>enumerate</code>：要素と<strong>その番号（インデックス）をセットでループ</strong>！</li>
</ul>



<p>どれも書き方はかんたんなのに、<strong>コードの読みやすさ・使いやすさ・効率</strong>が一気にアップするすぐれものです。</p>



<p>「Pythonのコードって読みにくいな…」<br>「for文ってもっと賢く使えないかな？」<br>そんなときは、ぜひ今回紹介した関数たちを使ってみてください。</p>



<p>少し工夫するだけで、<strong>見やすくてバグが出にくいコード</strong>が書けるようになりますよ！</p>



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



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



<p>for文と便利関数をマスターしたら、次はこちらもチェック！</p>



<ul class="wp-block-list">
<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/02/python-syntax-indent-pep8-beginner2/">Pythonの基本構文をやさしく解説｜改行・インデント・エラー対応まで初心者向けに丁寧に紹介</a><br>　基本をおさらいして、読みやすいコードを目指そう！</li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/07/python-automation-for-beginners/">Pythonでできる自動化10選｜初心者向けにやさしく解説</a><br>　for文を活かして、毎日の作業を自動化しよう！</li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/06/variables-nameerror-beginner-mistakes/">Python初心者がやりがちな変数名のミス5選｜NameErrorを防ぐコツ</a><br>　よくあるミスを知って、エラーの少ないコードに！</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc17">よくある質問（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">tqdmはJupyter Notebookでも使えますか？</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>はい、使えます！<br>Jupyter Notebookの場合は、次のように書くときれいに表示されます：</p>



<pre class="wp-block-preformatted"><code>from tqdm.notebook import tqdm<br></code></pre>
</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">zipでリストの長さが違うとどうなりますか？</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>一番短いリストに合わせて、ループが途中で終わります。<br>たとえば、3つと2つのリストをzipした場合、<strong>2つ目のリストに合わせて2回だけループ</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"><strong>enumerateでインデックスを1から始めたいんだけど？</strong></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>start=1</code>を指定すればOKです：</p>



<pre class="wp-block-preformatted"><code>for i, val in enumerate(リスト, start=1):<br>    print(i, val)</code></pre>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/10/python-for-useful-functions-tqdm-zip-enumerate/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pydanticとは？Pythonで安全なデータバリデーションを簡単に実装する方法【初心者向け】</title>
		<link>https://python.cbagames.jp/2025/06/10/python-pydantic-validation/</link>
					<comments>https://python.cbagames.jp/2025/06/10/python-pydantic-validation/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Tue, 10 Jun 2025 02:49:26 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[Pydantic]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Python初心者]]></category>
		<category><![CDATA[エラーハンドリング]]></category>
		<category><![CDATA[セキュアプログラミング]]></category>
		<category><![CDATA[データバリデーション]]></category>
		<category><![CDATA[型ヒント]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=216</guid>

					<description><![CDATA[目次 1. はじめに｜PydanticでPythonコードの安全性を高めよう2. Pydanticとは？｜データクラスより強力な型チェックツール◆ そもそも、なぜデータのチェックが必要なの？◆ そこで登場、Pydanti [&#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-16"><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">1. はじめに｜PydanticでPythonコードの安全性を高めよう</a></li><li><a href="#toc2" tabindex="0">2. Pydanticとは？｜データクラスより強力な型チェックツール</a><ol><li><a href="#toc3" tabindex="0">◆ そもそも、なぜデータのチェックが必要なの？</a></li><li><a href="#toc4" tabindex="0">◆ そこで登場、Pydantic！</a></li><li><a href="#toc5" tabindex="0">◆ データクラスとの違いまとめ</a></li></ol></li><li><a href="#toc6" tabindex="0">3. 基本の使い方｜型ヒントによる自動バリデーション</a><ol><li><a href="#toc7" tabindex="0">◆ まずはインストールしよう</a></li><li><a href="#toc8" tabindex="0">◆ Pydanticクラスの基本形</a></li><li><a href="#toc9" tabindex="0">◆ オブジェクトを作ってみよう！</a></li><li><a href="#toc10" tabindex="0">◆ 自動で型を直してくれることもある！</a></li><li><a href="#toc11" tabindex="0">◆ 補足：キーワード引数で渡す</a></li><li><a href="#toc12" tabindex="0">🌟まとめ：ここまでのおさらい</a></li></ol></li><li><a href="#toc13" tabindex="0">4. より厳密なチェックを行う｜strictモードと型制限</a><ol><li><a href="#toc14" tabindex="0">◆ strictモードってなに？</a></li><li><a href="#toc15" tabindex="0">◆ 使い方はすごく簡単！</a></li><li><a href="#toc16" tabindex="0">◆ どんなときにstrictを使うの？</a></li><li><a href="#toc17" tabindex="0">◆ さらに！「再代入」もチェックしたい場合は？</a></li><li><a href="#toc18" tabindex="0">🌟まとめ：strictモードでデータの安全性を強化しよう</a></li></ol></li><li><a href="#toc19" tabindex="0">5. 実行時エラーを扱う｜構造化されたエラーハンドリング</a><ol><li><a href="#toc20" tabindex="0">◆ エラーをキャッチする方法</a></li><li><a href="#toc21" tabindex="0">◆ .errors() を使って、エラーを見やすくしよう！</a></li><li><a href="#toc22" tabindex="0">◆ pprintでさらに見やすく！</a></li><li><a href="#toc23" tabindex="0">🌟まとめ：エラーは「読める形」で受け取ろう</a></li></ol></li><li><a href="#toc24" tabindex="0">6. バリデーションルールを追加しよう｜数値・文字列・日付</a><ol><li><a href="#toc25" tabindex="0">◆ 使い方は Field() に条件をつけるだけ！</a></li><li><a href="#toc26" tabindex="0">◆ 数値に使えるバリデーション</a></li><li><a href="#toc27" tabindex="0">◆ 文字列に使えるバリデーション：正規表現</a></li><li><a href="#toc28" tabindex="0">◆ 日付に使えるバリデーション</a></li><li><a href="#toc29" tabindex="0">◆ デフォルト値も Field() でOK！</a></li><li><a href="#toc30" tabindex="0">🌟まとめ：Pydanticなら「ルール作り」もラクラク！</a></li></ol></li><li><a href="#toc31" tabindex="0">7. 値の変更を禁止する｜frozenモードで読み取り専用に</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><li><a href="#toc35" tabindex="0">🌟まとめ：値を変えさせない＝バグ防止の第一歩！</a></li></ol></li><li><a href="#toc36" tabindex="0">8. 独自ルールの追加｜オリジナルバリデーションの書き方</a><ol><li><a href="#toc37" tabindex="0">◆ 使い方は @field_validator() を使うだけ！</a></li><li><a href="#toc38" tabindex="0">💡ポイント：</a></li><li><a href="#toc39" tabindex="0">◆ 実行してみよう！</a></li><li><a href="#toc40" tabindex="0">◆ 複数の変数をまとめてチェックしたいときは？</a></li><li><a href="#toc41" tabindex="0">◆ どんなときに使うの？</a></li><li><a href="#toc42" tabindex="0">🌟まとめ：自由にルールを作れるから、実用度MAX！</a></li></ol></li><li><a href="#toc43" tabindex="0">9. データの入出力｜辞書・JSONとのシームレスな連携</a><ol><li><a href="#toc44" tabindex="0">◆ オブジェクトから辞書に変換する</a></li><li><a href="#toc45" tabindex="0">◆ オブジェクトからJSON文字列に変換する</a></li><li><a href="#toc46" tabindex="0">◆ 辞書やJSONからPydanticオブジェクトを作る</a></li><li><a href="#toc47" tabindex="0">🌟まとめ：データの変換もPydanticにおまかせ！</a></li></ol></li><li><a href="#toc48" tabindex="0">10. まとめ｜Pydanticを使って安全で信頼性の高いコードに</a><ol><li><a href="#toc49" tabindex="0">💡Pydanticってどんなものだった？</a></li><li><a href="#toc50" tabindex="0">🛠 こんなときにPydanticを使うと◎</a></li><li><a href="#toc51" tabindex="0">✅ あわせて読みたい｜関連記事リンク集</a></li></ol></li><li><a href="#toc52" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜PydanticでPythonコードの安全性を高めよう</span></h2>



<p>Pythonでプログラムを書いていると、**「データの中身が想定と違ってエラーになる」**というトラブルに一度は遭遇したことがあるのではないでしょうか。</p>



<ul class="wp-block-list">
<li>文字列のはずなのに数値が入っていた</li>



<li>APIから受け取ったデータの型がバラバラ</li>



<li>ユーザー入力のミスでプログラムが落ちた</li>
</ul>



<p>こうした問題の多くは、<strong>データの型や内容を事前にチェックできていないこと</strong>が原因です。</p>



<p>そこで活躍するのが、Pythonで安全なデータバリデーションを簡単に実装できるライブラリ<br><strong>Pydantic</strong> です。</p>



<p>Pydanticを使うと、Pythonのクラスに<br>「この変数には<strong>どんな型・どんな条件のデータ</strong>が入るべきか」<br>を宣言的に書くだけで、**自動的にチェック（バリデーション）**してくれます。</p>



<p>しかも、</p>



<ul class="wp-block-list">
<li>数値の範囲チェック（例：0〜1000だけ許可）</li>



<li>正規表現による文字列検証</li>



<li>日付が未来・過去かの判定</li>



<li>誤った値が入った場合の分かりやすいエラー表示</li>
</ul>



<p>といった処理を、<strong>複雑なif文を書かずに</strong>実現できます。</p>



<p>この記事では、<br><strong>「Pydanticとは何か？」という基本から、Python初心者でもすぐ使える実装例、実務で役立つ設定ポイントまで</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. Pydanticとは？｜データクラスより強力な型チェックツール</span></h2>



<p>「Pydantic（パイダンティック）」って聞き慣れない言葉かもしれませんが、実はとっても便利なライブラリなんです。</p>



<p>一言で言うと、**「クラスに入ってくるデータをちゃんとチェックしてくれるツール」**です。</p>



<h3 class="wp-block-heading"><span id="toc3">◆ そもそも、なぜデータのチェックが必要なの？</span></h3>



<p>たとえば、Pythonでこんなクラスを作ったとします：</p>



<pre class="wp-block-preformatted"><code>from dataclasses import dataclass<br><br>@dataclass<br>class User:<br>    name: str<br>    age: int<br></code></pre>



<p>このクラスは、「ユーザーの名前は文字列」「年齢は整数」というルールを決めてます。でも実際には…</p>



<pre class="wp-block-preformatted"><code>user = User(name=123, age="こんにちは")<br></code></pre>



<p>↑こんな変なデータでも<strong>エラーにならずに作れてしまう</strong>んです😱<br>つまり、<strong>書いたルールが守られていないのに、Pythonは気にしない</strong>んですね…。</p>



<h3 class="wp-block-heading"><span id="toc4">◆ そこで登場、Pydantic！</span></h3>



<p>Pydanticを使うと、同じようなクラスを**「ちゃんとルールを守らせる形」で作れる**ようになります。</p>



<p>まずはインストールから👇</p>



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



<p>そして、こんなふうに使います：</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel<br><br>class User(BaseModel):<br>    name: str<br>    age: int<br></code></pre>



<p>今度はどうなるかというと…</p>



<pre class="wp-block-preformatted"><code>user = User(name=123, age="こんにちは")<br></code></pre>



<p>↑これは<strong>即エラー！</strong><br>「nameは文字列って書いてあるのに数字が来てるよ！」って教えてくれるんです👏</p>



<p>さらにすごいのが、<strong>文字列の <code>"123"</code> を整数として受け取ってくれる</strong>ような、かしこい自動変換機能もついています（必要に応じてオフにもできます）。</p>



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



<h3 class="wp-block-heading"><span id="toc5">◆ データクラスとの違いまとめ</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>比較項目</th><th>データクラス</th><th>Pydantic（BaseModel）</th></tr></thead><tbody><tr><td>型ヒントの強制力</td><td>なし</td><td>あり（チェックされる）</td></tr><tr><td>自動バリデーション</td><td>なし</td><td>あり</td></tr><tr><td>自動型変換</td><td>なし</td><td>あり（※設定でオフ可）</td></tr><tr><td>エラーの構造化</td><td>なし</td><td>あり</td></tr><tr><td>JSONとの変換</td><td>手動</td><td><code>.model_dump()</code> などで簡単</td></tr></tbody></table></figure>



<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>「ただのデータ入れ物」だったクラスが、Pydanticを使うことで<strong>しっかりとした安全な設計</strong>になります。特にAPIや外部からの入力を扱うときには、<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="toc6">3. 基本の使い方｜型ヒントによる自動バリデーション</span></h2>



<p>ここからは、Pydanticの「基本のキ」ともいえる使い方を紹介します！</p>



<p>「型ヒントだけで自動的にバリデーションしてくれるってどういうこと？」と思ったあなた、ここでしっかり体験してみましょう💡</p>



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



<h3 class="wp-block-heading"><span id="toc7">◆ まずはインストールしよう</span></h3>



<p>まだインストールしていない方は、ターミナルで次のコマンドを打ってください：</p>



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



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



<h3 class="wp-block-heading"><span id="toc8">◆ Pydanticクラスの基本形</span></h3>



<p>Pydanticでは、<code>BaseModel</code>という特別なクラスを使います。このクラスを継承するだけで、バリデーション機能がバッチリ使えるようになります！</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel<br><br>class User(BaseModel):<br>    name: str<br>    age: int<br></code></pre>



<p>このクラスは、「名前は文字列」「年齢は整数」というルールを持ったデータ構造です。</p>



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



<h3 class="wp-block-heading"><span id="toc9">◆ オブジェクトを作ってみよう！</span></h3>



<pre class="wp-block-preformatted"><code>user = User(name="田中太郎", age=25)<br>print(user)<br></code></pre>



<p>✅ 結果：</p>



<pre class="wp-block-preformatted"><code>name='田中太郎' age=25<br></code></pre>



<p>ちゃんとルールどおりのデータなら問題なし！</p>



<p>でも、もし型が違っていたら…？</p>



<pre class="wp-block-preformatted"><code>user = User(name=12345, age="hello")<br></code></pre>



<p>❌ 結果：</p>



<pre class="wp-block-preformatted"><code>pydantic_core._pydantic_core.ValidationError: ...<br></code></pre>



<p>エラーになってくれます！これは「nameは文字列じゃないし、ageも整数じゃないよ！」って教えてくれてるんです。</p>



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



<h3 class="wp-block-heading"><span id="toc10">◆ 自動で型を直してくれることもある！</span></h3>



<p>Pydanticは「これは変換できそうだな」と判断した場合、<strong>型変換してくれる</strong>ことがあります。たとえば：</p>



<pre class="wp-block-preformatted"><code>user = User(name="佐藤花子", age="30")<br>print(user.age)  # → 30（int型になってる！）<br></code></pre>



<p>このように、<strong>文字列の &#8220;30&#8221; も自動的に整数に変換</strong>してくれるんです。</p>



<p>便利だけど、「勝手に変換してほしくない！」ってときもありますよね。それは次の章「strictモード」で解説します😊</p>



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



<h3 class="wp-block-heading"><span id="toc11">◆ 補足：キーワード引数で渡す</span></h3>



<p>Pydanticでは、オブジェクトを作るときに「キーワード引数（名前付きの引数）」で渡す必要があります。</p>



<pre class="wp-block-preformatted"><code>User("佐藤", 22)  # ❌ これはエラー<br>User(name="佐藤", age=22)  # ⭕<br><br></code></pre>



<p>間違いやすいポイントなので注意しましょう！</p>



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



<h3 class="wp-block-heading"><span id="toc12">🌟まとめ：ここまでのおさらい</span></h3>



<ul class="wp-block-list">
<li><code>BaseModel</code>を継承してクラスを定義するだけでバリデーションOK！</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="toc13">4. より厳密なチェックを行う｜strictモードと型制限</span></h2>



<p>前のセクションでは、Pydanticが<strong>自動で型変換してくれる</strong>ことを紹介しましたね。</p>



<p>たとえば、こんなふうに：</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel<br><br>class User(BaseModel):<br>    age: int<br><br>user = User(age="30")  # 自動で文字列 → 整数に変換される<br>print(user.age)  # → 30<br></code></pre>



<p>これはとっても便利なんですが、時には…</p>



<p>「いやいや、<strong>型はキッチリ守って</strong>ほしいんだよ！！」</p>



<p>っていうシーンもありますよね。たとえば、APIで受け取る重要なデータとか、セキュリティが大事なときとか。</p>



<p>そんなときに活躍するのが「<strong>strict（ストリクト）モード</strong>」です！</p>



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



<h3 class="wp-block-heading"><span id="toc14">◆ strictモードってなに？</span></h3>



<p>strictとは「厳密な・きびしい」って意味で、<strong>自動変換なしで、指定した型と完全に一致しないとエラーになる</strong>ようにできます。</p>



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



<h3 class="wp-block-heading"><span id="toc15">◆ 使い方はすごく簡単！</span></h3>



<p>Pydanticの<code>Field()</code>関数に <code>strict=True</code> を追加するだけです。</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel, Field<br><br>class User(BaseModel):<br>    age: int = Field(strict=True)<br></code></pre>



<p>この設定をすると、たとえ <code>"30"</code> のような文字列でも <strong>整数として受け付けてくれません</strong>！</p>



<pre class="wp-block-preformatted"><code>user = User(age="30")  # ❌ これはエラー<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc16">◆ どんなときにstrictを使うの？</span></h3>



<ul class="wp-block-list">
<li>入力値が<strong>想定通りの型であることを強く保証したいとき</strong></li>



<li>自動変換が<strong>逆にバグの原因になる</strong>かもしれないとき</li>



<li>ユーザーや外部システムからの入力を<strong>完全にチェックしたいとき</strong></li>
</ul>



<p>こんなときに strict=True はとても役立ちます。</p>



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



<h3 class="wp-block-heading"><span id="toc17">◆ さらに！「再代入」もチェックしたい場合は？</span></h3>



<p>Pydanticは、<strong>最初にデータを受け取ったときだけ</strong>バリデーションを行います。<br>つまり、後から値を変更しても、ふつうはチェックしてくれません。</p>



<pre class="wp-block-preformatted"><code>user = User(age=30)<br>user.age = "なんと"  # ❌ 本来はダメだけど、通ってしまう…<br></code></pre>



<p>こんなふうに、後からの変更も厳しくチェックしたい場合は、クラス定義に次の設定を追加しましょう：</p>



<pre class="wp-block-preformatted"><code>class User(BaseModel, validate_assignment=True):<br>    age: int = Field(strict=True)<br></code></pre>



<p>これで、<strong>後からの代入もバリデーション対象になります！</strong></p>



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



<h3 class="wp-block-heading"><span id="toc18">🌟まとめ：strictモードでデータの安全性を強化しよう</span></h3>



<ul class="wp-block-list">
<li><code>Field(strict=True)</code> を使うと、<strong>型が厳密にチェック</strong>される</li>



<li>自動変換を防いで、バグを未然に防ぐことができる</li>



<li><code>validate_assignment=True</code> で<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="toc19">5. 実行時エラーを扱う｜構造化されたエラーハンドリング</span></h2>



<p>さて、ここまでで「Pydanticは型が合わなければエラーになる！」というのは体験済みですね。</p>



<p>でもそのエラー、<strong>どう扱ったらいいのか</strong>って困ることありませんか？<br>「エラー文が長すぎて何が原因かわからない…」ってなったこと、きっとあるはずです😅</p>



<p>Pydanticでは、<strong>エラーの内容を“ちゃんと整理された形”で取り出す方法</strong>が用意されているんです！<br>それが「<strong>構造化されたエラーハンドリング</strong>」。</p>



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



<h3 class="wp-block-heading"><span id="toc20">◆ エラーをキャッチする方法</span></h3>



<p>まずは、<code>try...except</code>でエラーをキャッチします。</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel, ValidationError<br><br>class User(BaseModel):<br>    name: str<br>    age: int<br><br>try:<br>    user = User(name=123, age="hello")  # 型が合ってない<br>except ValidationError as e:<br>    print("エラーが出ました！")<br>    print(e)<br></code></pre>



<p>✅ これだけでも、エラーの内容は表示されます。でも、ちょっと見づらいですよね。</p>



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



<h3 class="wp-block-heading"><span id="toc21">◆ .errors() を使って、エラーを見やすくしよう！</span></h3>



<p>Pydanticの<code>ValidationError</code>には、<strong><code>.errors()</code>という便利なメソッドがついています。<br>これを使うと、エラーの内容をリスト＋辞書形式</strong>で取り出せます。</p>



<pre class="wp-block-preformatted"><code>except ValidationError as e:<br>    print(e.errors())<br></code></pre>



<p>👀 出力例：</p>



<pre class="wp-block-preformatted"><code>[<br>    {'loc': ('name',), 'msg': 'str type expected', 'type': 'type_error.str'},<br>    {'loc': ('age',), 'msg': 'value is not a valid integer', 'type': 'type_error.integer'}<br>]<br></code></pre>



<ul class="wp-block-list">
<li><code>loc</code>: どのフィールドでエラーが出たか</li>



<li><code>msg</code>: エラーメッセージ</li>



<li><code>type</code>: エラーの種類</li>
</ul>



<p>こうやって見ると、「ああ、<code>name</code>と<code>age</code>の型がおかしいんだな」って<strong>すぐにわかります！</strong></p>



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



<h3 class="wp-block-heading"><span id="toc22">◆ pprintでさらに見やすく！</span></h3>



<p>エラー情報はたくさんあると読みにくくなります。そんなときは、<code>pprint</code>モジュールを使って、きれいに整形表示しちゃいましょう！</p>



<pre class="wp-block-preformatted"><code>from pprint import pprint<br><br>except ValidationError as e:<br>    pprint(e.errors())<br></code></pre>



<p>これで、<strong>見た目スッキリ！</strong> 読みやすさUPです💡</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><code>ValidationError</code>は <code>.errors()</code> で構造化された情報が取れる</li>



<li><code>loc</code>, <code>msg</code>, <code>type</code> でエラーの場所・理由・種類がすぐわかる</li>



<li><code>pprint</code>を使えば表示もきれい！</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">6. バリデーションルールを追加しよう｜数値・文字列・日付</span></h2>



<p>前のセクションでは、Pydanticの「型チェック」と「エラーの扱い方」を紹介しましたね。<br>でも実はPydantic、<strong>もっと細かいルールまで設定できる</strong>んです！</p>



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



<ul class="wp-block-list">
<li>数値は「0以上100以下だけOK」にしたい</li>



<li>文字列は「メールアドレスっぽい形」にしたい</li>



<li>日付は「未来の日付だけ」受け付けたい</li>
</ul>



<p>こういうチェックを<strong>とても簡単に追加できる</strong>のが、Pydanticの強みなんです💪</p>



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



<h3 class="wp-block-heading"><span id="toc25">◆ 使い方は Field() に条件をつけるだけ！</span></h3>



<p>Pydanticでは、インスタンス変数に <code>Field()</code> を使って、**さまざまな制限（バリデーションルール）**を追加できます。</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel, Field<br><br>class Product(BaseModel):<br>    price: int = Field(ge=0, le=10000)  # 0以上10000以下<br></code></pre>



<p><code>ge=0</code>は「0以上（Greater than or Equal）」<br><code>le=10000</code>は「10000以下（Less than or Equal）」です！</p>



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



<h3 class="wp-block-heading"><span id="toc26">◆ 数値に使えるバリデーション</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><code>gt=値</code></td><td>値より大きい（Greater Than）</td></tr><tr><td>以上</td><td><code>ge=値</code></td><td>値以上（Greater or Equal）</td></tr><tr><td>より小さい</td><td><code>lt=値</code></td><td>値より小さい（Less Than）</td></tr><tr><td>以下</td><td><code>le=値</code></td><td>値以下（Less or Equal）</td></tr></tbody></table></figure>



<p>👀 例：</p>



<pre class="wp-block-preformatted"><code>score: int = Field(ge=0, le=100)  # 0〜100点のテストの点数<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc27">◆ 文字列に使えるバリデーション：正規表現</span></h3>



<p>文字列に「この形じゃないとダメ！」というルールをつけたいときは、<code>pattern</code>を使います。</p>



<p>たとえば、「郵便番号（7桁の数字）」をチェックしたいとき：</p>



<pre class="wp-block-preformatted"><code>zipcode: str = Field(pattern=r"^\d{7}$")<br></code></pre>



<ul class="wp-block-list">
<li><code>\d</code>は数字</li>



<li><code>{7}</code>は「7文字ちょうど」</li>



<li><code>^...$</code>は「最初から最後まで」って意味です</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc28">◆ 日付に使えるバリデーション</span></h3>



<p>未来の日付や過去の日付だけを受け付けたいときは、<strong>特別な型ヒント</strong>を使います！</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel, FutureDate, PastDate<br>from datetime import date<br><br>class Event(BaseModel):<br>    start_date: FutureDate  # 今日より未来だけOK<br>    created_at: PastDate    # 過去の日付だけOK<br></code></pre>



<p>これで、未来のイベントなのに「昨日の日付」とかを指定したらエラーになります！</p>



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



<h3 class="wp-block-heading"><span id="toc29">◆ デフォルト値も Field() でOK！</span></h3>



<p><code>Field()</code> の<strong>最初の引数</strong>に値を入れると、それが**初期値（デフォルト）**になります。</p>



<pre class="wp-block-preformatted"><code>quantity: int = Field(1, ge=1, le=10)  # 初期値1、1〜10の間だけOK<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc30">🌟まとめ：Pydanticなら「ルール作り」もラクラク！</span></h3>



<ul class="wp-block-list">
<li><code>Field()</code>を使えば、細かい条件もすぐに設定できる</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="toc31">7. 値の変更を禁止する｜frozenモードで読み取り専用に</span></h2>



<p>ここまでで、Pydanticが**「データをチェックする仕組み」**としてすごく便利なことがわかってきましたね。</p>



<p>でも、「データを受け取ったあと、<strong>間違えて変更されちゃうと困る</strong>…！」<br>そんなときはどうしたらいいのでしょうか？</p>



<p>Pydanticには、**「この値は後から変えられないようにする」**という機能もあるんです！<br>それが「<strong>frozen（フローズン）モード</strong>」です🍦</p>



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



<h3 class="wp-block-heading"><span id="toc32">◆ 特定の値だけ変更できないようにする（フィールド単位）</span></h3>



<p>まずは、特定の変数（インスタンス変数）だけ「読み取り専用」にする方法です。</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel, Field<br><br>class User(BaseModel):<br>    name: str = Field(frozen=True)  # この値は変更できない<br>    age: int<br></code></pre>



<p>この設定をすると、<code>name</code>を変更しようとしたときにエラーになります👇</p>



<pre class="wp-block-preformatted"><code>user = User(name="田中", age=25)<br>user.name = "佐藤"  # ❌ エラーが出ます！<br></code></pre>



<p>でも、<code>age</code>は普通に変更できます。</p>



<pre class="wp-block-preformatted"><code>user.age = 26  # ⭕<br><br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc33">◆ クラス全体を「完全に変更不可」にする</span></h3>



<p>「全部の値を一度決めたら変更不可にしたい！」というときは、**クラス全体を凍結（frozen）**できます。</p>



<p>そのためには、<code>ConfigDict</code>という設定を使います。</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel, ConfigDict<br><br>class Product(BaseModel):<br>    name: str<br>    price: int<br><br>    model_config = ConfigDict(frozen=True)<br></code></pre>



<p>この設定を入れると、<strong>どの変数も変更できなく</strong>なります。</p>



<pre class="wp-block-preformatted"><code>item = Product(name="りんご", price=100)<br>item.price = 200  # ❌ エラーになります！<br></code></pre>



<p>こうすることで、「受け取ったデータを安全にそのまま保持したい！」という場面でとっても役立ちます。</p>



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



<h3 class="wp-block-heading"><span id="toc34">◆ どんなときに使うの？</span></h3>



<ul class="wp-block-list">
<li>ユーザーIDや商品コードなど、<strong>一度決めたら変えてはいけないデータ</strong></li>



<li>外部から受け取ったデータを<strong>そのまま保持しておきたい場合</strong></li>



<li>誤って値を変えてしまうのを<strong>プログラムで防ぎたいとき</strong></li>
</ul>



<p>「frozen」は、そんな時に頼れる仕組みです💪</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><code>Field(frozen=True)</code> で特定の値だけ変更不可にできる</li>



<li><code>ConfigDict(frozen=True)</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="toc36">8. 独自ルールの追加｜オリジナルバリデーションの書き方</span></h2>



<p>ここまでで、Pydanticが用意している便利なチェック機能（バリデーション）をいろいろ紹介してきましたね！</p>



<p>でも、場合によってはこんなこともあります。</p>



<p>「数字のチェックだけじゃ足りない…」<br>「“パスワードには必ず英数字が混ざってないとダメ”みたいなルールを作りたい！」</p>



<p>そういうときこそ、<strong>自分でルール（バリデーション）を書く出番</strong>です！<br>Pydanticでは、<strong>独自のバリデーション関数</strong>をクラスに追加することで、好きなチェック処理ができます🙌</p>



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



<h3 class="wp-block-heading"><span id="toc37">◆ 使い方は @field_validator() を使うだけ！</span></h3>



<p>まずは使い方の全体イメージから👇</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel, field_validator<br><br>class User(BaseModel):<br>    username: str<br><br>    @field_validator('username')<br>    @classmethod<br>    def check_username(cls, value):<br>        if " " in value:<br>            raise ValueError("ユーザー名に空白は使えません！")<br>        return value<br></code></pre>



<h3 class="wp-block-heading"><span id="toc38">💡ポイント：</span></h3>



<ul class="wp-block-list">
<li><code>@field_validator('変数名')</code> ← ここでチェックしたい変数を指定</li>



<li>デコレーターの下に<strong>クラスメソッド</strong>を定義（<code>@classmethod</code>）</li>



<li>チェックに<strong>失敗したらエラーを出す（<code>raise ValueError</code>）</strong></li>



<li>問題なければ、<strong>そのまま値を<code>return</code></strong></li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc39">◆ 実行してみよう！</span></h3>



<pre class="wp-block-preformatted"><code>user = User(username="tanaka taro")  # 空白入り → ❌エラー！<br></code></pre>



<pre class="wp-block-preformatted"><code>user = User(username="tanaka_taro")  # OK！🙆‍♀️<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc40">◆ 複数の変数をまとめてチェックしたいときは？</span></h3>



<p>例えば「パスワードと確認用パスワードが同じかチェックしたい」みたいな場合は、<code>@model_validator(mode='after')</code> という<strong>モデル全体をチェックする方法</strong>があります。今回はフィールドバリデーションがメインなので、ここでは割愛しますが、ご希望あれば後日解説します！</p>



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



<h3 class="wp-block-heading"><span id="toc41">◆ どんなときに使うの？</span></h3>



<ul class="wp-block-list">
<li>入力値に<strong>特定のルールを強制したい</strong>とき</li>



<li>既存のバリデーションでは<strong>チェックしきれない条件</strong>があるとき</li>



<li><strong>独自のロジック</strong>を入れたいとき（例：メールアドレスが社内ドメインかどうか）</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc42">🌟まとめ：自由にルールを作れるから、実用度MAX！</span></h3>



<ul class="wp-block-list">
<li><code>@field_validator()</code> で<strong>好きな条件</strong>を設定できる</li>



<li>条件を満たさなければ <code>ValueError</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="toc43">9. データの入出力｜辞書・JSONとのシームレスな連携</span></h2>



<p>さて、ここまででPydanticの「データチェック」についてたっぷり学んできましたが…</p>



<p>「じゃあ、そのデータを<strong>辞書にしたり、JSONにしたり</strong>ってできるの？」<br>「APIで送ったり、ファイルに保存したり、そういうこともできるの？」</p>



<p>はい！Pydanticなら、<strong>そのへんもめちゃくちゃカンタン</strong>です😊</p>



<p>この章では、Pydanticモデルと<strong>辞書やJSONとの変換方法</strong>をマスターしていきましょう！</p>



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



<h3 class="wp-block-heading"><span id="toc44">◆ オブジェクトから辞書に変換する</span></h3>



<p>Pydanticのオブジェクトを辞書にしたいときは、<code>.model_dump()</code> を使います！</p>



<pre class="wp-block-preformatted"><code>from pydantic import BaseModel<br><br>class User(BaseModel):<br>    name: str<br>    age: int<br><br>user = User(name="佐藤", age=28)<br>user_dict = user.model_dump()<br><br>print(user_dict)<br></code></pre>



<p>✅ 結果：</p>



<pre class="wp-block-preformatted"><code>{'name': '佐藤', 'age': 28}<br></code></pre>



<p>Pythonの<code>dict</code>とまったく同じ形で使えます！</p>



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



<h3 class="wp-block-heading"><span id="toc45">◆ オブジェクトからJSON文字列に変換する</span></h3>



<p>「辞書」じゃなくて「JSON文字列」にしたいときは <code>.model_dump_json()</code> を使います👇</p>



<pre class="wp-block-preformatted"><code>user_json = user.model_dump_json()<br>print(user_json)<br></code></pre>



<p>✅ 結果：</p>



<pre class="wp-block-preformatted"><code>{"name": "佐藤", "age": 28}<br></code></pre>



<p>このままAPIに送ったり、ファイルに保存したりできます！</p>



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



<h3 class="wp-block-heading"><span id="toc46">◆ 辞書やJSONからPydanticオブジェクトを作る</span></h3>



<p>逆に、「外から受け取ったデータをPydanticモデルに変換したい！」という場合もありますよね？</p>



<p><strong>辞書から作る</strong>ときは、次のように <code>**辞書</code> を渡します：</p>



<pre class="wp-block-preformatted"><code>data = {"name": "田中", "age": 35}<br>user = User(**data)<br></code></pre>



<p><strong>JSON文字列から作る</strong>ときは <code>.model_validate_json()</code> を使います！</p>



<pre class="wp-block-preformatted"><code>json_data = '{"name": "鈴木", "age": 22}'<br>user = User.model_validate_json(json_data)<br></code></pre>



<p>もちろん、このときも<strong>バリデーションがしっかり行われる</strong>ので、安心です👌</p>



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



<h3 class="wp-block-heading"><span id="toc47">🌟まとめ：データの変換もPydanticにおまかせ！</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>やりたいこと</th><th>使うメソッド</th></tr></thead><tbody><tr><td>オブジェクト → 辞書</td><td><code>.model_dump()</code></td></tr><tr><td>オブジェクト → JSON文字列</td><td><code>.model_dump_json()</code></td></tr><tr><td>辞書 → オブジェクト</td><td><code>YourModel(**your_dict)</code></td></tr><tr><td>JSON → オブジェクト</td><td><code>.model_validate_json()</code></td></tr></tbody></table></figure>



<p>Pydanticがあれば、<strong>データチェック＋変換も一括でOK！</strong><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="toc48">10. まとめ｜Pydanticを使って安全で信頼性の高いコードに</span></h2>



<p>ここまで読んでくださって、ありがとうございました！<br>この記事では、**Pydantic（パイダンティック）**というPythonライブラリを使って、**データのチェック（バリデーション）**をどうやって行うかをやさしく解説してきました。</p>



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



<h3 class="wp-block-heading"><span id="toc49">💡Pydanticってどんなものだった？</span></h3>



<ul class="wp-block-list">
<li>Pythonのクラスに<strong>型ヒントをつけるだけで自動チェック</strong>！</li>



<li><strong>間違ったデータが入らないように守ってくれる</strong>頼れる存在！</li>



<li>さらに、
<ul class="wp-block-list">
<li>自動型変換</li>



<li>厳密なチェック（strict）</li>



<li>エラーの見やすい出力</li>



<li>独自ルールの追加</li>



<li>辞書やJSONとの変換</li>



<li>値を凍結して変更禁止にする設定<br>…などなど、<strong>超実用的な機能がたくさん！</strong></li>
</ul>
</li>
</ul>



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



<h3 class="wp-block-heading"><span id="toc50">🛠 こんなときにPydanticを使うと◎</span></h3>



<ul class="wp-block-list">
<li>ユーザーからの入力をチェックしたいとき</li>



<li>外部APIから来たデータを検証したいとき</li>



<li>Webアプリでフォーム入力を安全に扱いたいとき</li>



<li>FastAPIなどのフレームワークと組み合わせて使うとき</li>
</ul>



<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>Pydanticは、Pythonコードに**安心・安全という「盾」**を与えてくれるツールです。最初はちょっと難しそうに見えるかもしれませんが、<strong>使い始めるとその便利さにびっくりします！</strong></p>



<p>あなたのPythonコードも、Pydanticで<strong>もっとスマートに、もっと安全に</strong>していきましょう😊</p>
</div></div>



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



<h3 class="wp-block-heading"><span id="toc51">✅ あわせて読みたい｜関連記事リンク集</span></h3>



<p>Pydanticを学んだあなたにおすすめしたい、関連する記事はこちらです👇</p>



<ul class="wp-block-list">
<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/09/fastapi-basic-usage-guide/">【初心者向け】FastAPIの基本の使い方をやさしく解説｜最速で始めるPythonのWeb開発</a><br>　→ Pydanticとの相性抜群なWebフレームワーク「FastAPI」の入門編！</li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/06/python-syntaxerror-beginner/">【初心者向け】SyntaxErrorとは？よくある書き間違いと直し方を徹底解説</a><br>　→ 「エラーで止まった！」という時にまず読んでほしいエラー対策ガイド。</li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/05/errors-for-beginners/">Python初心者がよくつまずくエラー10選と解決法まとめ｜原因から対処法までやさしく解説</a><br>　→ 初心者がつまずきやすいエラーを先回りして解決！</li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/06/print-debugging-python/">Pythonのprintデバッグ活用術｜初心者でもできるエラー解決の第一歩</a><br>　→ バリデーションと合わせて「デバッグ力」も高めよう！</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc52">よくある質問（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">Pydanticって無料で使えるの？</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>はい、Pydanticはオープンソースで、誰でも無料で使えます！商用プロジェクトでもOKです。</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">FastAPIと一緒に使うことが多いって本当？</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>本当です！FastAPIはPydanticと組み合わせて使うことを前提に設計されているため、相性バツグンです。</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">Pydanticはどの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>Pydantic v2以降は<strong>Python 3.8以上</strong>に対応しています。v1系なら3.7でもOKです。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/10/python-pydantic-validation/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python初心者がやりがちな変数名のミス5選｜NameErrorを防ぐコツ</title>
		<link>https://python.cbagames.jp/2025/06/06/variables-nameerror-beginner-mistakes/</link>
					<comments>https://python.cbagames.jp/2025/06/06/variables-nameerror-beginner-mistakes/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Fri, 06 Jun 2025 04:06:30 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[NameError]]></category>
		<category><![CDATA[Python初心者]]></category>
		<category><![CDATA[エラー対処]]></category>
		<category><![CDATA[デバッグ]]></category>
		<category><![CDATA[プログラミングの基本]]></category>
		<category><![CDATA[変数名]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=137</guid>

					<description><![CDATA[目次 1. はじめに｜「NameError」は初心者の関門！2. NameErrorってどんなエラー？🔍 どうしてこのエラーが出るの？🧠 他にもある、NameErrorが出るパターン✅ ポイントまとめ3. 初心者がやりが [&#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-18"><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">1. はじめに｜「NameError」は初心者の関門！</a></li><li><a href="#toc2" tabindex="0">2. NameErrorってどんなエラー？</a><ol><li><a href="#toc3" tabindex="0">🔍 どうしてこのエラーが出るの？</a></li><li><a href="#toc4" tabindex="0">🧠 他にもある、NameErrorが出るパターン</a></li><li><a href="#toc5" tabindex="0">✅ ポイントまとめ</a></li></ol></li><li><a href="#toc6" tabindex="0">3. 初心者がやりがちな変数名のミス5選</a><ol><li><a href="#toc7" tabindex="0">ミス①：変数を定義してないのに使っちゃう</a></li><li><a href="#toc8" tabindex="0">ミス②：大文字・小文字をまちがえる</a></li><li><a href="#toc9" tabindex="0">ミス③：スペルミス（うっかり間違い）</a></li><li><a href="#toc10" tabindex="0">ミス④：ローカル変数とグローバル変数をごっちゃにする</a></li><li><a href="#toc11" tabindex="0">ミス⑤：Pythonの予約語を変数名に使っちゃう</a></li><li><a href="#toc12" tabindex="0">🎯 まとめ：変数名まわりの注意点を意識しよう！</a></li></ol></li><li><a href="#toc13" tabindex="0">4. NameErrorを防ぐコツ</a><ol><li><a href="#toc14" tabindex="0">✅ コツ①：変数を使う前に「print」で確認！</a></li><li><a href="#toc15" tabindex="0">✅ コツ②：エディタの補完機能をフル活用！</a></li><li><a href="#toc16" tabindex="0">✅ コツ③：わかりやすい命名ルールを決めよう</a></li><li><a href="#toc17" tabindex="0">✅ コツ④：スコープ（変数の有効範囲）を意識しよう</a></li></ol></li><li><a href="#toc18" tabindex="0">5. まとめ</a><ol><li><a href="#toc19" tabindex="0">👇 この記事のおさらい！</a></li><li><a href="#toc20" tabindex="0">💡 初心者にとってのNameErrorは「つまずきポイント」であり「学びポイント」</a></li><li><a href="#toc21" tabindex="0">あわせて読みたい</a></li></ol></li><li><a href="#toc22" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜「NameError」は初心者の関門！</span></h2>



<p>Pythonを始めたばかりの人が最初につまずきやすいエラー、それが「<strong>NameError（ネームエラー）</strong>」です。</p>



<p>たとえば、こんな感じのエラーを見たことがありませんか？</p>



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



<p>「え？ちゃんと書いたのにエラー？なにが悪いの？」と戸惑う方、多いんです。<br>でも安心してください。これは<strong>Pythonが「scoreって何？そんな名前のもの知らないよ！」と教えてくれている</strong>だけなんです。</p>



<p>じつはこのエラー、多くの場合はちょっとしたミスが原因です。<br>たとえば、変数を定義する前に使ってしまったり、名前を間違えたり、大文字小文字をうっかり変えてしまったり。</p>



<p>こうした「変数名まわりのミス」は、初心者にとって“あるある”な落とし穴。<br>ですが、<strong>どんなミスが起きやすいのかをあらかじめ知っておけば、防ぐのはかんたん</strong>です！</p>



<p>この記事では、<strong>Python初心者がやりがちな変数名のミス5選</strong>と、その対策をやさしく解説していきます。</p>



<p>「エラーにビビらずプログラミングを楽しめるようになりたい！」<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. NameErrorってどんなエラー？</span></h2>



<p>Pythonでプログラムを動かしていると、こんなエラーメッセージを見かけることがあります。</p>



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



<p>これが**NameError（ネームエラー）**です。日本語にすると「名前が見つかりませんエラー」という感じ。<br>ようするに、「<strong>その名前（変数）がどこにも定義されてないよ！</strong>」というPythonからのメッセージなんです。</p>



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



<h3 class="wp-block-heading"><span id="toc3">🔍 どうしてこのエラーが出るの？</span></h3>



<p>たとえばこんなときに出ます：</p>



<pre class="wp-block-preformatted"><code>print(message)  # ← まだmessageという変数はどこにもない！<br></code></pre>



<p>Pythonくんは「えっ？<code>message</code>ってなに？そんなの聞いてないよ〜！」と困ってしまうわけですね。<br><strong>プログラムの中で変数を使うときは、必ず先に「これがmessageです」と教えておく必要があります。</strong></p>



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



<p>こうすれば問題なし！ちゃんと「messageっていう名前はこれですよ」と教えてあげてから使ってますよね。</p>



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



<h3 class="wp-block-heading"><span id="toc4">🧠 他にもある、NameErrorが出るパターン</span></h3>



<ul class="wp-block-list">
<li><strong>スペルミス（打ち間違い）</strong> pythonコピーする編集する<code>myname = "AI" print(my_name) # ← アンダーバーが入ってる！</code></li>



<li><strong>大文字・小文字の違い</strong> pythonコピーする編集する<code>UserName = "Alice" print(username) # ← 小文字になってる！</code></li>
</ul>



<p>Pythonでは**「UserName」と「username」はまったく別物**として扱われるので、ここでもNameErrorが出てしまいます。</p>



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



<h3 class="wp-block-heading"><span id="toc5">✅ ポイントまとめ</span></h3>



<ul class="wp-block-list">
<li>NameErrorは「名前が定義されていない」エラー</li>



<li>変数を使う前に、ちゃんと定義しよう</li>



<li>スペルや大文字小文字にも気をつけよう</li>
</ul>



<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>初心者がやりがちな変数名のミス5選</strong>を紹介します。<br>ここを押さえれば、NameErrorともっと仲良くなれますよ！</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="toc6">3. 初心者がやりがちな変数名のミス5選</span></h2>



<p>Pythonを始めたばかりの人がよくやってしまう、<strong>変数名に関するミス</strong>を5つ紹介します。<br>これを知っておくだけで、「NameError」をぐっと減らせますよ！</p>



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



<h3 class="wp-block-heading"><span id="toc7">ミス①：変数を定義してないのに使っちゃう</span></h3>



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



<p>これは一番よくあるミスです！<br>「score」がまだ定義されていないのに、いきなり使ってしまってる状態です。</p>



<p>✅ <strong>こうすればOK！</strong></p>



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



<p>まず「scoreっていう名前はコレですよ！」ってPythonに教えてあげましょう。</p>



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



<h3 class="wp-block-heading"><span id="toc8">ミス②：大文字・小文字をまちがえる</span></h3>



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



<p>Pythonでは<strong>大文字と小文字を区別</strong>するので、「UserName」と「username」は別の変数です。</p>



<p>✅ <strong>こうすればOK！</strong></p>



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



<p>変数名はなるべく**全部小文字＋アンダーバー（_）**で書くと、まちがいにくくなりますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc9">ミス③：スペルミス（うっかり間違い）</span></h3>



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



<p>これは一見気づきにくいですが、「naem」と「name」がまちがってますね。<br>キーボードの打ち間違い、けっこうやりがちです。</p>



<p>✅ <strong>対策は？</strong></p>



<p>エディタ（例：VSCode）を使っているなら、<strong>補完機能や赤い波線で教えてくれる</strong>こともあります。<br>うまく活用しましょう！</p>



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



<h3 class="wp-block-heading"><span id="toc10">ミス④：ローカル変数とグローバル変数をごっちゃにする</span></h3>



<pre class="wp-block-preformatted"><code>score = 50<br><br>def show_score():<br>    print(score)  # OK（外のscoreが見えてる）<br><br>def update_score():<br>    score = score + 10  # これはエラー！<br><br>update_score()<br></code></pre>



<p>関数の中で同じ名前の変数を使うと、<strong>Pythonは「別の変数だ」と思ってしまう</strong>ことがあります。<br>上の例では「関数内でscoreを定義してる」とみなされてしまい、エラーになります。</p>



<p>✅ <strong>こうすればOK！</strong></p>



<pre class="wp-block-preformatted"><code>score = 50<br><br>def update_score():<br>    global score<br>    score = score + 10  # OK！<br><br>update_score()<br></code></pre>



<p>でも「global」を使うのは上級テクなので、最初は<strong>関数の外と中で名前を変える</strong>のが安全です！</p>



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



<h3 class="wp-block-heading"><span id="toc11">ミス⑤：Pythonの予約語を変数名に使っちゃう</span></h3>



<pre class="wp-block-preformatted"><code>list = [1, 2, 3]<br>print(list)<br>print(list("abc"))  # エラー！<br></code></pre>



<p>「list」はPythonがもともと使っている<strong>組み込み関数</strong>の名前です。<br>これを上書きしちゃうと、本来の機能が使えなくなってしまいます。</p>



<p>✅ <strong>対策は？</strong></p>



<ul class="wp-block-list">
<li><code>list</code> → <code>my_list</code></li>



<li><code>str</code> → <code>text</code></li>



<li><code>int</code> → <code>num</code></li>
</ul>



<p>のように、<strong>ちょっとだけ変えて使う</strong>のがおすすめ！</p>



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



<h3 class="wp-block-heading"><span id="toc12">🎯 まとめ：変数名まわりの注意点を意識しよう！</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>ミス</th><th>内容</th></tr></thead><tbody><tr><td>①</td><td>定義してない変数を使う</td></tr><tr><td>②</td><td>大文字・小文字のまちがい</td></tr><tr><td>③</td><td>スペルミス</td></tr><tr><td>④</td><td>スコープ（範囲）の混乱</td></tr><tr><td>⑤</td><td>予約語を使ってしまう</td></tr></tbody></table></figure>



<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>ちょっとしたことだけど、意識するだけでNameErrorを防げます！</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="toc13">4. NameErrorを防ぐコツ</span></h2>



<p>「NameError」に悩まされないようにするためには、<strong>ちょっとした工夫</strong>がとても効果的です！<br>ここでは、Python初心者でもすぐに実践できる4つのコツを紹介します。</p>



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



<h3 class="wp-block-heading"><span id="toc14">✅ コツ①：変数を使う前に「print」で確認！</span></h3>



<p>「この変数、ちゃんと定義できてるかな？」と不安なときは、まず <code>print()</code> でチェックしてみましょう！</p>



<pre class="wp-block-preformatted"><code>score = 90<br>print(score)  # 確認OK！<br></code></pre>



<p>もしエラーが出たら、「あ、定義されてないかも？」とすぐ気づけます。<br>**「printは最強のデバッグツール」**という人もいるくらい、頼りになりますよ！</p>



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



<h3 class="wp-block-heading"><span id="toc15">✅ コツ②：エディタの補完機能をフル活用！</span></h3>



<p>VSCodeやPyCharmなどのエディタを使うと、<strong>変数名を途中まで打つと候補が出てきます。</strong></p>



<pre class="wp-block-preformatted"><code>user_na...（←途中まで打つと "user_name" が補完候補に出る）<br></code></pre>



<p>これなら、スペルミスや大文字・小文字の間違いも防ぎやすい！<br><strong>初心者こそ、良いエディタを使うのがおすすめ</strong>です。</p>



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



<h3 class="wp-block-heading"><span id="toc16">✅ コツ③：わかりやすい命名ルールを決めよう</span></h3>



<p>たとえば、こんなルールにするとミスが減ります：</p>



<ul class="wp-block-list">
<li><strong>すべて小文字</strong></li>



<li><strong>単語の区切りはアンダーバー（_）</strong></li>



<li><strong>意味のある名前にする</strong></li>
</ul>



<pre class="wp-block-preformatted"><code>user_name = "Alice"<br>user_age = 18<br></code></pre>



<p>これだけで、<strong>読みやすくてミスしにくいコード</strong>になりますよ！</p>



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



<h3 class="wp-block-heading"><span id="toc17">✅ コツ④：スコープ（変数の有効範囲）を意識しよう</span></h3>



<p>「関数の中の変数」と「関数の外の変数」は<strong>別物</strong>です。<br>これを知らないと、NameErrorや思わぬバグにつながります。</p>



<pre class="wp-block-preformatted"><code>def greet():<br>    name = "Taro"<br>    print(name)  # OK！<br><br>print(name)  # エラー！関数の中の変数は外から見えない<br></code></pre>



<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>変数名を使うときは「自分で名札をつける」つもりで！<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="toc18">5. まとめ</span></h2>



<p>この記事では、Python初心者がよくぶつかる「<strong>NameError（ネームエラー）</strong>」について、<br>その意味や原因、そして防ぐためのコツを紹介してきました。</p>



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



<h3 class="wp-block-heading"><span id="toc19">👇 この記事のおさらい！</span></h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>内容</th><th>ポイント</th></tr></thead><tbody><tr><td>NameErrorとは？</td><td>「その名前（変数）が定義されてないよ！」というエラー</td></tr><tr><td>よくあるミス</td><td>定義前に使う、スペルミス、大文字小文字の違い、予約語の使用など</td></tr><tr><td>防ぐコツ</td><td>printで確認、補完機能の活用、命名ルールの統一、スコープを意識する</td></tr></tbody></table></figure>



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



<h3 class="wp-block-heading"><span id="toc20">💡 初心者にとってのNameErrorは「つまずきポイント」であり「学びポイント」</span></h3>



<p>最初はエラーが出るとびっくりしますよね。でも、<strong>エラーはあなたにヒントをくれる“先生”みたいなもの</strong>。<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>NameErrorをマスターしたら、次は**「スコープ」や「型」**にも挑戦してみましょう。<br>Pythonの世界がもっと楽しく、わかりやすくなりますよ！</p>
</div></div>



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



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



<p>NameError以外にも、Python初心者がよくつまずくポイントはたくさんあります。<br>以下の記事もあわせて読むことで、もっとスムーズにPythonを学べますよ！</p>



<ul class="wp-block-list">
<li>🔧 <a target="_blank" href="https://python.cbagames.jp/2025/06/05/errors-for-beginners/">Python初心者がよくつまずくエラー10選と解決法まとめ</a><br>　→ よく出るエラーをまとめてチェック！</li>



<li>📘 <a target="_blank" href="https://python.cbagames.jp/2025/06/02/python-variable-beginner/">【初心者向け】Pythonの変数とは？命名ルールと使い方をやさしく解説</a><br>　→ 変数の基礎をしっかり学びたい方におすすめ！</li>



<li>🧠 <a target="_blank" href="https://python.cbagames.jp/2025/06/06/python-syntaxerror-beginner/">【初心者向け】SyntaxErrorとは？よくある書き間違いと直し方を徹底解説</a><br>　→ 文法ミスを防ぐためのコツがわかる！</li>
</ul>



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



<h2 class="wp-block-heading"><span id="toc22">よくある質問（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">NameError: name &#8216;〇〇&#8217; is not defined」と出たときはどうすればいいの？</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">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>です。読みやすさやエラー回避のためにも、英単語＋アンダーバーでつけると安心です。</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">list や str を変数名にしても大丈夫？</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>Pythonの機能とかぶる名前（組み込み関数）は避けるべき</strong>です。上書きしてしまうと、本来の機能が使えなくなります。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/06/variables-nameerror-beginner-mistakes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python初心者でも楽しく作れる！かんたん自作プログラム5選</title>
		<link>https://python.cbagames.jp/2025/06/05/python-beginner-easy-programs/</link>
					<comments>https://python.cbagames.jp/2025/06/05/python-beginner-easy-programs/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Thu, 05 Jun 2025 03:56:40 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[Python初心者]]></category>
		<category><![CDATA[コピペOK]]></category>
		<category><![CDATA[プログラミング学習]]></category>
		<category><![CDATA[初心者向けPython]]></category>
		<category><![CDATA[楽しいPython]]></category>
		<category><![CDATA[自作プログラム]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=121</guid>

					<description><![CDATA[目次 1. はじめに｜Python初心者でも「作る」楽しさを体験しよう2. プログラム①：おみくじアプリ🎯 できること🛠 コードをコピペして試そう💬 解説：何をしているの？✅ 実行のしかた（例：Windowsの場合）🔁  [&#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-20"><label class="toc-title" for="toc-checkbox-20">目次</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">✅ 実行のしかた（例：Windowsの場合）</a></li><li><a href="#toc7" tabindex="0">🔁 応用編：メッセージを増やしてみよう！</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">🛠 コードをコピペして試そう</a></li><li><a href="#toc11" tabindex="0">💬 解説：何をしているの？</a></li><li><a href="#toc12" tabindex="0">✅ 実行してみよう（IDLEなどで）</a></li><li><a href="#toc13" tabindex="0">🧪 応用アイデア：5秒ごとにメッセージを表示するタイマー</a></li></ol></li><li><a href="#toc14" tabindex="0">4. プログラム③：じゃんけんゲーム</a><ol><li><a href="#toc15" tabindex="0">🎯 できること</a></li><li><a href="#toc16" tabindex="0">🛠 コードをコピペして試そう</a></li><li><a href="#toc17" tabindex="0">💬 解説：何をしているの？</a></li><li><a href="#toc18" tabindex="0">✅ 試してみよう！</a></li></ol></li><li><a href="#toc19" tabindex="0">5. プログラム④：簡単な電卓</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><li><a href="#toc23" tabindex="0">✅ 試し方の例</a></li><li><a href="#toc24" tabindex="0">🧪 応用編：計算履歴をリストにして残す</a></li></ol></li><li><a href="#toc25" tabindex="0">6. プログラム⑤：ミニToDoリスト</a><ol><li><a href="#toc26" tabindex="0">🎯 できること</a></li><li><a href="#toc27" tabindex="0">🛠 コードをコピペして試そう</a></li><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><li><a href="#toc31" tabindex="0">7. まとめ｜小さな成功体験がPython上達の近道！</a><ol><li><a href="#toc32" tabindex="0"> あわせて読みたい</a></li></ol></li><li><a href="#toc33" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜Python初心者でも「作る」楽しさを体験しよう</span></h2>



<p>こんにちは！<br>Python（パイソン）って聞くと、「プログラミングって難しそう…」「自分にはムリかも…」って思う人もいるかもしれません。でも、安心してください。Pythonは、<strong>プログラミング初心者にとって一番やさしい言語のひとつ</strong>なんです。</p>



<p>たとえば、「じゃんけんゲーム」や「おみくじ」など、身近なテーマでもちょっとしたプログラムが作れちゃいます。しかも、**ちょっとコードを打つだけで自分だけの作品が完成！**これはとってもワクワクしますよ。</p>



<p>このページでは、「まだPythonを始めたばかり」「コードってよくわからない…」という人でも楽しめる、<strong>かんたんな自作プログラムを5つ紹介</strong>します。全部コピペOKなので、気軽に試せます！</p>



<p>💡 <strong>小さくても“自分で作った”という成功体験</strong>は、プログラミングを学ぶうえでとても大事なステップです。</p>



<p>「作るって、こんなにおもしろいんだ！」<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>「今日の運勢はどうかな？」<br>そんな気分をPythonで楽しめるのが、この<strong>おみくじアプリ</strong>です。</p>



<h3 class="wp-block-heading"><span id="toc3">🎯 できること</span></h3>



<p>プログラムを実行すると、「大吉」「中吉」「吉」「凶」などの運勢がランダムで表示されます。運試し感覚で楽しく使えますよ！</p>



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



<h3 class="wp-block-heading"><span id="toc4">🛠 コードをコピペして試そう</span></h3>



<pre class="wp-block-preformatted"><code>import random<br><br># おみくじの選択肢を用意<br>choices = ["大吉", "中吉", "小吉", "吉", "末吉", "凶"]<br><br># ランダムにひとつ選んで表示<br>result = random.choice(choices)<br>print("今日の運勢は……「" + result + "」です！")<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc5">💬 解説：何をしているの？</span></h3>



<ol class="wp-block-list">
<li><code>import random</code><br>　→ ランダムな選択をするための「random」モジュールを使えるようにしています。</li>



<li><code>choices = [...]</code><br>　→ おみくじの中身をリストで用意しています。</li>



<li><code>random.choice(choices)</code><br>　→ リストの中からランダムにひとつ選んでいます。</li>



<li><code>print(...)</code><br>　→ 結果を画面に表示しています。</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc6">✅ 実行のしかた（例：Windowsの場合）</span></h3>



<ol class="wp-block-list">
<li>IDLE（Pythonの標準エディタ）を開く</li>



<li>新しいファイルを作って上のコードをコピペ</li>



<li>「F5」キーで実行！</li>
</ol>



<p>毎回結果が変わるので、何度でも楽しめますよ！</p>



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



<h3 class="wp-block-heading"><span id="toc7">🔁 応用編：メッセージを増やしてみよう！</span></h3>



<pre class="wp-block-preformatted"><code>choices = ["大吉", "中吉", "小吉", "吉", "末吉", "凶", "大凶", "大当たり！？"]<br></code></pre>



<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>リストの中を自由にアレンジして、自分だけのおみくじを作ってみましょう！</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="toc8">3. プログラム②：タイマーアプリ</span></h2>



<p>「3秒待ってから“スタート！”って言いたい」<br>「勉強の時間を測りたい」<br>そんなときに使えるのが、この<strong>タイマーアプリ</strong>です！</p>



<p>Pythonなら、ほんの数行でかんたんなタイマーが作れますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc9">🎯 できること</span></h3>



<p>自分で秒数を入力すると、カウントダウンしてから「時間です！」と表示されます。<br>シンプルですが、学習にも便利で実用的！</p>



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



<h3 class="wp-block-heading"><span id="toc10">🛠 コードをコピペして試そう</span></h3>



<pre class="wp-block-preformatted"><code>import time<br><br># ユーザーに秒数を入力してもらう<br>seconds = int(input("何秒タイマーにしますか？："))<br><br>print(f"{seconds}秒タイマーをスタートします…")<br>time.sleep(seconds)  # 指定した秒数だけ待つ<br>print("時間です！")<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc11">💬 解説：何をしているの？</span></h3>



<ol class="wp-block-list">
<li><code>import time</code><br>　→ 「時間」に関する操作をするためのモジュールです。</li>



<li><code>input("〜")</code><br>　→ ユーザーから数字を受け取ります（文字として受け取るので <code>int()</code> で数字に変換！）。</li>



<li><code>time.sleep(seconds)</code><br>　→ 指定された秒数だけ“止まる（待つ）”命令です。</li>



<li><code>print(...)</code><br>　→ 結果を表示します。</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc12">✅ 実行してみよう（IDLEなどで）</span></h3>



<ol class="wp-block-list">
<li>コードを貼り付けて「F5」で実行</li>



<li>「何秒タイマーにしますか？」と聞かれるので、好きな数字を入力</li>



<li>時間が経ったら「時間です！」と表示！</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc13">🧪 応用アイデア：5秒ごとにメッセージを表示するタイマー</span></h3>



<pre class="wp-block-preformatted"><code>import time<br><br>for i in range(5):<br>    print(f"{i+1}分経過しました…")<br>    time.sleep(60)<br></code></pre>



<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>これで「5分ごとのアラーム」も簡単に作れます！</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="toc14">4. プログラム③：じゃんけんゲーム</span></h2>



<p>「じゃんけんぽん！」<br>Pythonで<strong>コンピューターと対戦するじゃんけんゲーム</strong>を作ってみましょう！</p>



<p>入力と条件分岐（if文）の使い方を練習するのにピッタリなプログラムです。</p>



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



<h3 class="wp-block-heading"><span id="toc15">🎯 できること</span></h3>



<p>プレイヤーが「グー・チョキ・パー」のどれかを入力し、コンピューターがランダムに選んだ手と勝負します。</p>



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



<h3 class="wp-block-heading"><span id="toc16">🛠 コードをコピペして試そう</span></h3>



<pre class="wp-block-preformatted"><code>import random<br><br># 選べる手をリストで用意<br>hands = ["グー", "チョキ", "パー"]<br><br># プレイヤーの入力を受け取る<br>player = input("じゃんけん！グー・チョキ・パーのどれかを入力してください：")<br><br># コンピューターの手をランダムに選ぶ<br>computer = random.choice(hands)<br><br>print(f"あなた：{player}　コンピューター：{computer}")<br><br># 勝敗を判定する<br>if player == computer:<br>    print("あいこです！")<br>elif (player == "グー" and computer == "チョキ") or \<br>     (player == "チョキ" and computer == "パー") or \<br>     (player == "パー" and computer == "グー"):<br>    print("あなたの勝ち！")<br>else:<br>    print("あなたの負け…")<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc17">💬 解説：何をしているの？</span></h3>



<ol class="wp-block-list">
<li><code>hands = [...]</code><br>　→ 「グー・チョキ・パー」の3つをリストで用意します。</li>



<li><code>input()</code><br>　→ ユーザーの手を入力で受け取ります。</li>



<li><code>random.choice(hands)</code><br>　→ コンピューターがランダムで1つ選びます。</li>



<li><code>if</code>文で勝ち負けを判定<br>　→ あいこ・勝ち・負けの3パターンで条件分岐しています。</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc18">✅ 試してみよう！</span></h3>



<ol class="wp-block-list">
<li>実行すると「手を入力してください」と聞かれるので、「グー」「チョキ」「パー」のいずれかを入力します。</li>



<li>結果がすぐに表示され、勝敗がわかります！</li>
</ol>



<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>ちょっと工夫すれば、5回勝負にして「何勝何敗だったか」を表示することもできますよ！</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="toc19">5. プログラム④：簡単な電卓</span></h2>



<p>足し算、引き算、かけ算、わり算。<br>ふだん使っている「電卓」をPythonで作ってみましょう！</p>



<p>とってもシンプルですが、<strong>変数、演算子、条件分岐</strong>を学ぶのにピッタリのプログラムです。</p>



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



<h3 class="wp-block-heading"><span id="toc20">🎯 できること</span></h3>



<p>ユーザーが入力した数字と演算子（+ &#8211; * /）を使って、計算結果を表示します。<br>「1 + 1 = 2」みたいな感じですね！</p>



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



<h3 class="wp-block-heading"><span id="toc21">🛠 コードをコピペして試そう</span></h3>



<pre class="wp-block-preformatted"><code># ユーザーから数値と演算子を入力してもらう<br>num1 = float(input("1つ目の数字を入力してください："))<br>op = input("演算子を入力してください（+ - * /）：")<br>num2 = float(input("2つ目の数字を入力してください："))<br><br># 演算子によって計算を分ける<br>if op == "+":<br>    result = num1 + num2<br>elif op == "-":<br>    result = num1 - num2<br>elif op == "*":<br>    result = num1 * num2<br>elif op == "/":<br>    if num2 == 0:<br>        result = "0では割れません！"<br>    else:<br>        result = num1 / num2<br>else:<br>    result = "演算子が無効です。+ - * / のいずれかを使ってください。"<br><br>print(f"結果：{result}")<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc22">💬 解説：何をしているの？</span></h3>



<ol class="wp-block-list">
<li><code>input()</code>で数字と記号（+ &#8211; * /）を受け取る<br>　→ 数字は<code>float()</code>で小数も扱えるようにしています。</li>



<li><code>if</code>文で演算子に応じた計算をする<br>　→ わり算は特別に「0で割ってないか？」をチェック！</li>



<li><code>print()</code>で結果を表示</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc23">✅ 試し方の例</span></h3>



<pre class="wp-block-preformatted"><code>1つ目の数字を入力してください：10  <br>演算子を入力してください（+ - * /）：*  <br>2つ目の数字を入力してください：5  <br>結果：50.0<br></code></pre>



<p>Pythonがあなたの代わりに計算してくれました！</p>



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



<h3 class="wp-block-heading"><span id="toc24">🧪 応用編：計算履歴をリストにして残す</span></h3>



<pre class="wp-block-preformatted"><code>history = []<br>history.append(f"{num1} {op} {num2} = {result}")<br>print("計算履歴：", history)<br></code></pre>



<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>何回も使うなら、こういう風に記録を取るのも楽しいですよ。</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="toc25">6. プログラム⑤：ミニToDoリスト</span></h2>



<p>「やること」をメモしておきたいとき、あなたならどうしますか？<br>Pythonで**シンプルなToDoリスト（やることリスト）**を作れば、毎日のタスク管理も楽しくなりますよ！</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>



<p>とってもシンプルで、リストの使い方を練習するのにぴったりです！</p>



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



<h3 class="wp-block-heading"><span id="toc27">🛠 コードをコピペして試そう</span></h3>



<pre class="wp-block-preformatted"><code>todo_list = []<br><br>while True:<br>    print("\nメニュー：1. 追加  2. 表示  3. 削除  4. 終了")<br>    choice = input("番号を入力してください：")<br><br>    if choice == "1":<br>        task = input("追加するやること：")<br>        todo_list.append(task)<br>        print("追加しました！")<br>    elif choice == "2":<br>        print("ToDoリスト：")<br>        for i, task in enumerate(todo_list):<br>            print(f"{i + 1}. {task}")<br>    elif choice == "3":<br>        num = int(input("削除したい番号：")) - 1<br>        if 0 &lt;= num &lt; len(todo_list):<br>            removed = todo_list.pop(num)<br>            print(f"「{removed}」を削除しました。")<br>        else:<br>            print("番号が正しくありません。")<br>    elif choice == "4":<br>        print("終了します。おつかれさまでした！")<br>        break<br>    else:<br>        print("1〜4の数字を入力してください。")<br></code></pre>



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



<h3 class="wp-block-heading"><span id="toc28">💬 解説：このコードで何をしているの？</span></h3>



<ol class="wp-block-list">
<li><code>todo_list = []</code><br>　→ やることを入れる「からっぽのリスト」を作ります。</li>



<li><code>while True:</code><br>　→ 「終了」を選ぶまで、メニューが何度でも表示されます。</li>



<li><code>append()</code>でリストに追加、<code>pop()</code>で削除<br>　→ リストの基本操作がこの1本でわかります！</li>



<li><code>enumerate()</code>で番号つき表示<br>　→ 「1. 買い物に行く」みたいに番号付きで見やすく表示します。</li>
</ol>



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



<h3 class="wp-block-heading"><span id="toc29">✅ 実行例（使ってみるとこうなる）</span></h3>



<pre class="wp-block-preformatted"><code>メニュー：1. 追加  2. 表示  3. 削除  4. 終了  <br>番号を入力してください：1  <br>追加するやること：宿題をやる  <br>追加しました！<br><br>番号を入力してください：2  <br>ToDoリスト：  <br>1. 宿題をやる<br></code></pre>



<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><code>日付</code>や<code>カテゴリ</code>を追加して、もっと本格的なタスク管理に！</li>



<li>作ったToDoをファイルに保存してみると、さらにレベルアップ！</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="toc31">7. まとめ｜小さな成功体験がPython上達の近道！</span></h2>



<p>おつかれさまでした！<br>ここまでで、Python初心者でも楽しく作れる5つのプログラムを紹介してきました。</p>



<ul class="wp-block-list">
<li>ランダムに運勢を表示する【おみくじアプリ】</li>



<li>時間を測る【タイマーアプリ】</li>



<li>コンピューターと対戦できる【じゃんけんゲーム】</li>



<li>四則演算ができる【簡単な電卓】</li>



<li>タスクを管理できる【ミニToDoリスト】</li>
</ul>



<p>どれも「コピペでOK」、しかも「ちょっと書き換えるだけでアレンジできる」ものばかり。<br>最初は「写すだけ」でもいいんです。そこから少しずつ**“こうしたらどうなるかな？”**と試してみることで、プログラミングの力がどんどん育っていきます。</p>



<p><strong>小さなプログラムでも、自分で作れたときの感動は本物です。</strong></p>



<p>あなたも今日から“Pythonでモノを作れる人”の仲間入りです！<br>次は、もっと実用的なスクリプトや簡単なゲーム作りにもチャレンジしてみましょう。</p>



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



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



<p>Pythonにもっと慣れてきたら、こちらの記事もおすすめです！</p>



<ul class="wp-block-list">
<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/05/python-beginner-automation-scripts/">Python初心者でもできる！毎日の作業を自動化する簡単スクリプト3選【コピペOK】</a></li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/01/start-idle-windows1/">【Python入門1】WindowsでPythonを始めよう！IDLEのインストールと基本の使い方ガイド</a></li>



<li>🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/05/errors-for-beginners/">Python初心者がよくつまずくエラー10選と解決法まとめ｜原因から対処法までやさしく解説</a></li>
</ul>



<h2 class="wp-block-heading"><span id="toc33">よくある質問（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>まずは「おみくじアプリ」や「じゃんけんゲーム」から始めるのがおすすめです！<br>理由はコードが短くて動かしやすく、すぐに「動いた！」という体験ができるからです。成功体験はモチベーションにつながりますよ。</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">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>Pythonは完全に無料で使えるプログラミング言語</strong>です。<br>WindowsやMacでも簡単にインストールできます。インストール方法は以下の記事でくわしく解説しています。<br>→ 🔗 <a target="_blank" href="https://python.cbagames.jp/2025/06/01/start-idle-windows1/">【Python入門1】WindowsでPythonを始めよう！IDLEのインストールと基本の使い方ガイド</a></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>もちろんOKです！<br>むしろ、<strong>自分なりにコードを変えてみることが一番の学習法</strong>です。<br>表示メッセージを変えたり、条件を増やしたり、ぜひ自由にアレンジして楽しんでください。</p>
</div></dd></dl></div>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/05/python-beginner-easy-programs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
