目次
はじめに
お久しぶりです、本当に、(約半年ぶりですね)
poaぶろぐです。
2026に向けて自分のナレッジをためるためにも技術ブログを再開していこうかなと思いましたので、気が向いたときに書いていければと思います。稀にためになることも書くので、暇な方ぜひみていってください。
さて、今回のこの記事では、Python初心者の私が最初に本当につまずいたポイントを3つ、できるだけ噛み砕いてまとめます。
同じようにPythonを始めた方の参考になれば嬉しいです。
つまずき①:mainloop()って何をしているの?
GUIアプリを作るために、tkinter を触り始めたときに、必ず出てくるのがこの一文です。
root.mainloop()
正直、最初は
「これ何?おまじない?」
という感覚でした。
最初の誤解
- 自分で作った関数?
- 書かないとエラーになるから、とりあえず書いているだけ
こんな理解でした。
実際に理解したこと
mainloop() は、
「ユーザーの操作(クリックなど)をずっと待ち続けるための処理」
です。
これを書かないと、
- 画面が一瞬表示されてすぐ閉じる
- ボタンを押しても何も反応しない
という状態になります。
GUIアプリは、何かが起こるのを待ち続ける必要がある
そのための待機ループが mainloop() だと理解すると、腑に落ちました。
つまずき②:「ライブラリ=標準機能?」問題
次に混乱したのが、ライブラリの考え方です。
import tkinter as tk
この一行を見たとき、
「ライブラリって標準機能のこと?」
と本気で思っていました。
初心者あるあるな混乱
- ライブラリ = Pythonに最初から入っているもの?
importしている時点で、もう外部なのでは?
このあたりがごちゃごちゃになります。
今の理解
Pythonには大きく分けて2種類あります。
- 標準ライブラリ
→ Pythonを入れた時点で使える(tkinter など) - 外部ライブラリ
→ 自分でインストールする必要がある(requests など)
tkinter は
「標準ライブラリだけど、使うときは import する」
という位置づけでした。
「ライブラリ=外部」ではない、というのが最初の大きな気づきでした。
つまずき③:「関数っていつ実行されてるの?」
GUIでボタンを作ったとき、次のコードを見て混乱しました。
button = tk.Button(root, text="クリック", command=on_button_click)
正直、ここで思ったのはこれです。
「え、
on_button_clickって今もう実行されてない?」
最初に混乱したポイント
- 関数名を書いているだけなのに
- なぜかクリックすると処理が動く
()を付けていないのに実行されるのが不思議
「Python、勝手に関数呼んでない?」と感じました。
実際に理解したこと
ここで渡しているのは、
関数を“実行”しているのではなく、
「あとで使うために関数そのものを渡している」
という仕組みでした。
command=on_button_click # 実行しない
command=on_button_click() # これは即実行される
()を付けない → 関数そのものを渡す()を付ける → その場で実行する
ボタンがクリックされた「そのタイミング」で
Pythonがこの関数を呼び出してくれる、という流れです。
ここで一気に腑に落ちたこと
この考え方は、GUIだけでなく、
- Webアプリ
- イベント処理
- 非同期処理
にも全部つながってくる概念でした。
「関数は、値として渡せる」
これを理解した瞬間、
Pythonが一段階分かりやすくなった感覚がありました。
まとめ
いかがでしたでしょうか??!!(めちゃ簡単な内容ですみません)
Pythonを勉強し始めて感じたのは、
つまずくポイントそのものよりも、**「何が分かっていないのか分からない状態」**が一番しんどい、ということでした。
今回挙げた
mainloop()の役割が分からない- ライブラリと標準機能の違いが曖昧
- 関数が「いつ実行されているのか」が分からない
といった点は、どれも初心者なら一度は必ず引っかかる部分だと思います。
最初は「おまじない」に見えていたコードも、
一つずつ言葉で説明できるようになると、
**「分からないけど動く」から「理解して動かせる」**に変わってきました。
まだまだ分からないことは多いですが、
これからも無理に先へ進まず、理解できたこと・つまずいたことを
学習ログとしてブログに残していこうと思います。
同じようにPythonを学び始めた方の参考になれば幸いです!

コメント