【Python】第1章 「やさしい入門」
1.2 変数と算術式

2021年12月26日

今回は少々長いプログラムです。
いよいよ本格的なプログラムに挑戦しましょう。
ちょっと難しい点もありますが、がんばって付いてきて下さい。

対応するC言語のサンプルはこちらです。

プログラムの目的

℃=(5/9)(F-32)の公式から華氏と摂氏の対応表を表示するプログラムです。
華氏0度から300度までの摂氏値の対応を表示しましょう。

プロジェクトの作成

前回のサンプルプログラムを書き直しても良いのですが、これからどんどん学習しますので新たにプロジェクトを作成することをおすすめします。
プロジェクトは前回同様に作成して下さい。
本ブログでは"002_celsius"としています。

ソースコード

前回と同様にサンプルコードをvisual studioで作成してください。
作成したらビルドしてエラーが出ない事を確認します。
※外部エディタを利用する際はutf-8で保存して下さい。

プログラムの実行

こちらも前回同様、「開始」ボタンを押して下さい。
このような画面が出力されれば成功です。

解説

プログラムを作成する前にどのような手順で結果を求めるかを考えます。
この手順の事をアルゴリズムと呼びます。
プログラミング言語は異なってもアルゴリズムは必ず存在します。
アルゴリズムを対応するプログラミング言語に落とす作業をプログラミングと呼びます。

①フローチャート

②変数
Pythonではデータ(値)を格納する場所を用意することが出来、これを変数と呼びます。
fahr = 0は変数fahr に0を代入(コピー)することを示しています。

③コメント
プログラミングの格言に「明日の自分は他人」と言う格言があります。
これはソースコードの意味を作成したときは覚えていても、しばらく立つと忘れてしまい意味が分からなくなるということです。
これを避けるため、プログラムの実行には関係ありませんが後から理解出来るように説明を付けることが出来ます。
これをコメントと言います。
pythonでは#を付けるとその後ろはコメントとして認識されます。

③while fahr <= 300:
while文と言い繰り返し処理を記述できます。
この文の意味は変数fahrが300以下の間、対象の処理を繰り返すことを意味しています。
尚 <=を比較演算子と呼びます。演算子はいくつかありますのでこちらで紹介します。(C言語ではおなじみですね)
下記表の真になる条件とはこの条件を満たすと文の(例えばwhileの中)処理をする事を意味します。
尚、while文の最後のコロン(:)は必ず必要になります

演算子 真になる条件
a == b 等しいなら
a != b 等しくないなら
a < b bが大きいなら
a > b aが大きいなら
a <= b bがa以上なら
a >= b aがb以上なら

④while文の対象
while文の対象は例題では以下です。

celsius = 5 * (fahr-32) / 9
int_cel = int(celsius)
print (“fahr:%d, cel:%d" %(fahr, int_cel))
fahr = fahr+20

一段下がっていますよね。これをインデントと呼びます。
Pythonではwhile文の次から始まるインデントされたブロックがwhile対象となります。
インデントはタブでもスペースでも構いませんが注意しなければならないのはインデントのサイズは統一する必要があると言うことす。
例題ではタブで設定しています。
それではwhileの中を見てみましょう。
まずは摂氏(celsius)を求めています。

変数について注意が必要です。
pythonの変数は整数型と小数点型(浮動小数点)があります。
入る値により自動で定義されます。
fahrは0を代入しています。0は整数なのでfahrは整数型となります。
celsiusは代入していませんので、どの型になるのでしょうか?
実は割り算を行うと結果は必ず小数点型になります。
そのためcelsiusは小数点型です。
このまま表示しても良いのですが、今回は整数型で表示します。
そこでselsiusを整数型のint_celに代入します。
小数点型はint()を利用すると整数に変換できます。
詳しい仕組みは今後理解出来ますので今回はそういうモノとお考え下さい。
printで画面に表示し、最後にfahrを20増分し、whileの判断に戻ります。

⑤print
最初に学んだhell worldでも出てきましたね。
今回は、数値を表示しています。
ちょっとわかりにくいので図で示します。

“"で囲まれたエリアがディスプレイに表示される対象です。
%dは固定の文字ではなく、変数の値を示します。
図のようにそれぞれが対応します。
C言語のprintf文と同様ですが変数側にも%指示が必要な部分が異なります

 

それではプログラムの流れに沿って解説します

①fahr = 0
まず変数fahrに0がセットされます。

②while fahr <= 300
fahrが300以内なら中の文を実行します

③celsius = 5 * (fahr-32) / 9;
公式に従って摂氏を求めます

④print
華氏と摂氏を表示します。

⑤fahr = fahr + 20;
華氏の値を20進めます。
また先頭のwhileに戻り同様の作業を繰り返します。

華氏の値が300を越えたら終了になります。

今回はここまで。

python教室総合目次に戻る

Python教室

Posted by taka