第3回:分岐とモジュールの魔法

🗣 はじめに

プログラムって、すごく正直者なんです。人間みたいに「察して」はくれません。

もしパソコンの世界に100円ショップがあったら、大炎上しちゃうと思うんです。「100円!」って言ったら、本当に100円ぴったりを期待するのに、実際は110円だったりすると「話が違うじゃないか!」って、もう大騒ぎになっちゃうイメージですね。

だからこそ、「明確に伝える」ってめっちゃ大事。プログラミングには、こんな魔法の言葉があるんですよ。

「動いたからヨシ!」
— 全国のプログラマーの合言葉

意味が分からなくても、とにかく動けばOK!っていうのがプログラミングの面白いところ。でも、もし誰かにそのプログラムを使ってもらうときは、「どうして動いているのか」をちょこっと書いてあげると、みんながもっとハッピーになりますよ。「バグっぽいけどとりあえず動いてるから触るな」ってコードは、ホントに嫌われちゃいますからね。

🎯 目標

① 数字を足してみる:x = x + 1

「今ある値に1足していく」っていう、めちゃくちゃよく使う処理。慣れたら無限に応用できる!

x = x + 1 の意味は、「変数xに入っている値に1を足して、またxに代入しなおす」ことです。

ここでちょっと立ち止まって考えてみてください。
「x = x + 1」という式、数学の数式として見るとちょっと変ですよね?
左辺の x と右辺の x + 1 は、数学的には別の値だから「同じものに等しい」とは言えません。
だから「間違ってるんじゃないか?」と思うのも無理はありません。

でもプログラミングではここに特別な意味があります。
右辺の x + 1 は「今のxに1足した結果」のことで、
その計算結果を新しく左辺の変数 x に上書きしているんです。
つまり「今のxを使って計算した結果でxを更新する」という動作になります。

ここで、= と == の違いについても押さえておきましょう。
= は「代入」を意味します。つまり、右辺の値を左辺の変数に入れる、という動作です。
一方、== は「等しいかどうかを調べる比較演算子」です。
例えば x == 3 は「xが3と等しいか?」を調べる条件で、結果は True(真)か False(偽)になります。

まとめると:

この書き方は「代入」と「計算」の両方が合わさっているため、最初は頭がこんがらがることもあります。
でも、これこそがプログラミングの基礎中の基礎。
何度も使いながら理解を深めていきましょう。

使用箇所:
カウンター機能やスコア加算、繰り返し処理の中で値を更新するときに、めちゃくちゃ頻繁に使います。

▶ 実習フォームを開く
▶ 答えを見る

② ランダムに数字を表示する

おみくじっぽい動きをさせたい時に使う「乱数」。Pythonでは random モジュールを呼び出して使います。

random モジュールの使い方:

乱数はゲームやくじ引き、ランダムな選択をしたいときに欠かせません。

▶ 実習フォームを開く
▶ 答えを見る

③ ランダムで挨拶を選んでみる

前回のリストと今回の random を組み合わせて「選ばせる」処理をしてみましょう。

リストの要素をランダムに取り出す例:

これはユーザーへのランダムな挨拶や、返答のパターンを切り替えたいときに便利です。

▶ 実習フォームを開く
▶ 答えを見る

④ 条件によって返答を分ける(if文)

「もし○○だったら〜する」っていう条件分岐。プログラムを書くなら必須の魔法です。

if文の基本:

== は「等しいか」、!= は「等しくないか」を判定します。

if文はプログラムの流れを分けて、状況に応じた処理を実行したいときに使います。例えれば、道案内で「右なら◯へ、左なら△へ」と振り分けるイメージです。

▶ 実習フォームを開く
▶ 答えを見る

⑤ ユーザーに入力させる(input)

プログラムに文字や数字を入力してもらって、その内容に合わせて動かすこともできます。

input() と型変換のポイント:

input() は常に文字列を返すので、数値として扱う場合は int() で変換が必要です。逆に数字を文字列に変換するなら str(数字) と書きます。

ユーザーの入力を受け取って処理を変えることで、インタラクティブなプログラムが作れます。

▶ 実習フォームを開く
▶ 答えを見る

⑥ 自由に返事する BOT を作ってみよう

入力された言葉に応じて返事を変える「ミニBOT」を作ります。条件分岐と文字列比較の応用ですね。

簡単な返答BOTの例:

say = input("なんて話す?")
if say == "こんにちは":
    print("こんにちは!")
else:
    print("なんて?")

このように、「もし入力が◯◯ならこう返す、そうでなければ別の返事をする」という形で返答の幅を作れます。

応用すれば、チャットゲームや診断ツールも作れますよ。

▶ 実習フォームを開く
▶ 答えを見る

📘 復習課題

▶ 実習フォームを開く
← トップページに戻る