プログラムって、すごく正直者なんです。人間みたいに「察して」はくれません。
もしパソコンの世界に100円ショップがあったら、大炎上しちゃうと思うんです。「100円!」って言ったら、本当に100円ぴったりを期待するのに、実際は110円だったりすると「話が違うじゃないか!」って、もう大騒ぎになっちゃうイメージですね。
だからこそ、「明確に伝える」ってめっちゃ大事。プログラミングには、こんな魔法の言葉があるんですよ。
「動いたからヨシ!」
— 全国のプログラマーの合言葉
意味が分からなくても、とにかく動けばOK!っていうのがプログラミングの面白いところ。でも、もし誰かにそのプログラムを使ってもらうときは、「どうして動いているのか」をちょこっと書いてあげると、みんながもっとハッピーになりますよ。「バグっぽいけどとりあえず動いてるから触るな」ってコードは、ホントに嫌われちゃいますからね。
「今ある値に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
(偽)になります。
まとめると:
=
は「代入」、値をセットするときに使う==
は「比較」、値が同じか調べるときに使うx = 0
→ 変数xに0を初期設定x = x + 1
→ 現在のxの値に1を足して更新print(x)
→ 今のxの値を画面に表示この書き方は「代入」と「計算」の両方が合わさっているため、最初は頭がこんがらがることもあります。
でも、これこそがプログラミングの基礎中の基礎。
何度も使いながら理解を深めていきましょう。
使用箇所:
カウンター機能やスコア加算、繰り返し処理の中で値を更新するときに、めちゃくちゃ頻繁に使います。
おみくじっぽい動きをさせたい時に使う「乱数」。Pythonでは random
モジュールを呼び出して使います。
random モジュールの使い方:
import random
→ 乱数を扱うための準備random.randint(0, 5)
→ 0から5の間でランダムに数字を選ぶprint(...)
→ 結果を画面に表示乱数はゲームやくじ引き、ランダムな選択をしたいときに欠かせません。
前回のリストと今回の random
を組み合わせて「選ばせる」処理をしてみましょう。
リストの要素をランダムに取り出す例:
greetings = ["おはよう", "こんにちわ", "こんばんは"]
print(greetings[random.randint(0, 2)])
→ リストの中からランダムに選んで表示これはユーザーへのランダムな挨拶や、返答のパターンを切り替えたいときに便利です。
「もし○○だったら〜する」っていう条件分岐。プログラムを書くなら必須の魔法です。
if文の基本:
score = 45
← 点数を設定if score > 40:
← 条件「scoreが40より大きいなら」print("赤点回避!")
← 条件が真なら表示==
は「等しいか」、!=
は「等しくないか」を判定します。
if文はプログラムの流れを分けて、状況に応じた処理を実行したいときに使います。例えれば、道案内で「右なら◯へ、左なら△へ」と振り分けるイメージです。
プログラムに文字や数字を入力してもらって、その内容に合わせて動かすこともできます。
input() と型変換のポイント:
name = input("名前は?")
← 文字列として受け取るage = int(input("年齢は?"))
← 数字に変換するif age >= 20:
← 条件で判定input() は常に文字列を返すので、数値として扱う場合は int()
で変換が必要です。逆に数字を文字列に変換するなら str(数字)
と書きます。
ユーザーの入力を受け取って処理を変えることで、インタラクティブなプログラムが作れます。
入力された言葉に応じて返事を変える「ミニBOT」を作ります。条件分岐と文字列比較の応用ですね。
簡単な返答BOTの例:
say = input("なんて話す?")
if say == "こんにちは":
print("こんにちは!")
else:
print("なんて?")
このように、「もし入力が◯◯ならこう返す、そうでなければ別の返事をする」という形で返答の幅を作れます。
応用すれば、チャットゲームや診断ツールも作れますよ。