【基礎編②】プログラム作成の基本

基本的なコードの書き方がわかったので、実際に簡単なプログラムを作成してみます。
プログラムは基本的に入力に対して、計算・処理を行い、結果を出力します。
今回は簡易的なレジをつくるイメージで以下の入力・処理・出力で考えたいと思います。

入力:りんごの個数、みかんの個数

処理:りんごとみかんの個数から合計金額を計算する

出力:買い物の合計金額

目次(クリックするとジャンプします)

プログラムの超基本部分

早速ですが、以下のようにプログラムの基本部分を作成してみました。
個数や単価を入力して、合計金額を計算して、結果を出力しています。

# りんごとみかんの個数を入力
appleCount = 2
orangeCount = 5

# りんごとみかんの単価を入力
applePrice = 200
orangePrice = 100

# りんごとみかん、それぞれの金額を計算
appleTotalprice = appleCount * applePrice
orangeTotalprice = orangeCount * orangePrice

# りんごとみかんの合計金額を計算
totalprice = appleTotalprice + orangeTotalprice

# 合計金額を出力
print(totalprice)

上のコードを実行すると、コンソールに「900」が表示されるはずです。
非常に簡単な計算ですが、これで200円のりんご2個と、100円のみかん5個の合計金額を計算するプログラムとなります。

ひとまず作成したプログラムを保存しておきます。

プログラムの保存方法

「File」→「Save as…」をクリックし、名前を付けて保存します。
(私はCalcPrice.pyというファイル名にしました。)

ここから、今回の簡易レジを使いやすくしたり、機能を追加して改良していきたいと思います。
まず、このままでは個数を変更するときに毎回コードを直さないといけません。
さすがに面倒なので改良します。

input関数の活用

# りんごとみかんの個数をinput関数を使って外部(コンソール)から入力できるようにする
appleCount = input("りんごの個数を入力してください: ")
orangeCount = input("みかんの個数を入力してください: ")

applePrice = 200
orangePrice = 100

appleTotalprice = appleCount * applePrice
orangeTotalprice = orangeCount * orangePrice

totalprice = appleTotalprice + orangeTotalprice
print(totalprice)

実行すると、コンソールにinput関数で指定した文字が表示されます。
この末尾にキーボードから文字入力することができます。

実際に個数を入力すると、以下のように大量の数字が並んだ結果が出力されると思います。

このような出力になってしまう原因は・・・
input関数によって入力されたデータの型は「文字列」になるため

データの型とは

データには型というものがあり、文字列や整数、浮動小数点、日付など様々な種類があります。
このデータの型によって、同じ処理を行っても出力結果が変わることがあります。
実際に変数エクスプローラで型を確認すると、appleCountはstr文字列stringの略)、applePriceはint整数integerの略)になっていることがわかります。

今回の場合、文字列×整数となり、出力は文字列が増える形になります。

文字列と整数ではうまく計算ができないので、文字列を整数に変換します。

appleCount = input("りんごの個数を入力してください: ")
orangeCount = input("みかんの個数を入力してください: ")

applePrice = 200
orangePrice = 100

# int関数でデータの型を整数に変換
appleTotalprice = int(appleCount) * applePrice
orangeTotalprice = int(orangeCount) * orangePrice

totalprice = appleTotalprice + orangeTotalprice

# 出力も日本語を追加してわかりやすくします。
# 文字列を足し算(結合)するときはデータの型を文字列にそろえる必要があります。
# str関数でデータの型を文字列に変換
print("合計金額は" + str(totalprice) + "円です。")

もう一度実行すると、今度は正しく計算できているはずです。
これで、外部から個数を入力して、金額を計算できるプログラムになりました。

次に、3個で500円のようなセット価格を導入してみます。

appleCount = input("りんごの個数を入力してください: ")
orangeCount = input("みかんの個数を入力してください: ")

# 先ほどは計算するときに型を変換しましたが、以下のように事前に変数自体の型を変換しておくことも可能です。
appleCount = int(appleCount)
orangeCount = int(orangeCount)

applePrice = 200
orangePrice = 100

# セット価格を入力
# 変数は[,]で区切ってまとめて代入することも可能です。次の1、2行目と3行目は同じ意味です。)
appleSetcount = 3
appleSetprice = 500
orangeSetcount, orangeSetprice = 5, 450

# りんごとみかん、それぞれの金額を計算
# セット価格を考慮した計算は、個数をセット個数で割った商×セット価格+余り×単価で計算できます。
# Pythonの場合、商は[//]、余りは[%]で計算できます。
appleTotalprice = appleCount // appleSetcount * appleSetprice + appleCount % appleSetcount * applePrice
orangeTotalprice = orangeCount // orangeSetcount * orangeSetprice + orangeCount % orangeSetcount * orangePrice

totalprice = appleTotalprice + orangeTotalprice
print("合計金額は" + str(totalprice) + "円です。")

まだまだ改良の余地があるので、次回以降さらに改良していきます。

【基礎編③】プログラム作成(自作関数)