もし Python に出くわしたら
Python に最初から組み込まれている関数の1つに ABS 関数があります。ABS とは「絶対の」という意味の英単語 absolute の頭3文字を使った関数で、これを使えば次のようなプログラム (1) が書けます。
a = ____ア____(input())
print(abs(a))
これと同じことを、ABS 関数を使わずにやろうとすると、まず IF 文を使おうとするでしょう。次のプログラム (2) で行けます。
a = ____ア____(input())
if ____イ____ :
print(a)
if ____ウ____ :
print(-a)
でも、この場面では完全に2つに分けられていることを考えると、次のプログラム (3) の方が良いでしょう。
a = ____ア____(input())
if ____イ____ :
print(a)
____エ____ :
print(-a)
さて、ここから先はちょっと難しいかもしれませんので、いったんここまでの《解答》をお知らせしましょう。
さて、このタイミングで if 文中での〈条件式〉の書き方を確認します。
if 〈条件式〉 :
(処理) # :(コロン)の次の行には、自動で4文字分のインデントが入る
のように書きます。
さらに続けましょう。「IF 文を1回だけ、else 文を使わずに」やるには、次のプログラム (4) のやり方があります。
a = ____ア____(input())
if ____オ____ :
____カ____
print(a)
では、いよいよ最後「ABS 関数も IF 文も使わずに」同じことをやるにはどうすれば良いでしょうか。次の〈基本関数〉のいずれかを使って実現してください。
a = ____ア____(input())
print (______キ______)
プログラム (2),(3),(4) は IF 文のバリエーションです。IF 文の良い練習になるでしょう。
プログラム (5) は実は関数 ** で出来るんです。* は掛け算ですが、** は乗数計算をしてくれます。
では、後半戦の《解説・解答》と行きましょう。
プログラム (4) の(カ:a = −a )は代入文です。IF 節の中で「もし変数 a が負なら符号を変える」、言い換えると「もし変数 a が正ならそのまま」ですから、この IF 節を終えた時点で変数 a は正に(または 0)なっています。こうして IF 節を終えてから IF 節の外で「変数 a の値をプリントする」というわけです。
プログラム (5) では、キーボードから入力した実数 a をまず2乗します。a が正の数でも負の数でも、a を2乗した時点で値は必ず正になります。続いて0.5乗すなわち平方根をとれば、大きさが元に戻って結果的に符号が正になるというわけです。
同じことを実現するにも、いろんな考え方・組み立て方があります。みんなでワイワイガヤガヤやるうちに、自然とそれが感じられるのがプログラミング学習の良いところです。めでたし、めでたし。
◇ ◇ ◇
〜 Python を使ってみよう 〜
▷ Pythonで加減乗除と+α
▷ もし Python に出くわしたら
▷ Python グルグルとぐろ巻く
この記事が気に入ったらサポートをしてみませんか?