Python×Kivy(ライブラリ)でマルチタッチアプリ開発

2021年5月23日、Pythonの基礎の基礎はマスターかもしれないと思って、Kivyの勉強をはじめました。

「Kivyプログラミング Pythonでつくるマルチタッチアプリ」
原口和也先生(著)、久保幹雄先生(監修)
というを、本メインに使っています。

この本の章と対応づけて、補足教材みたいな立ち位置の記事を書きながらアプリ開発を目指して勉強しています。

この本に沿って公式サイトのサンプルを作って紹介しています。
例えば2章まで終わったら、Kivy公式サイトチュートリアルのこのサンプルアプリ、というように自分で実際に作ってみて、そのコードとスクリーンショット画像を下記リンクより掲載しています。

まずは公式サイトの手本通りに作ってみて、そこから少し遊びの要素を取り入れて改変しています。


今年中にアプリ1つApple Storeに公開出来たらなぁ・・・。
可能であればハロウィンまでに!!なので、もう勉強中(=^x^=)mm!にゃ
頑張りますので、応援よろしくお願いします!!

メインメニューに戻る

Homebrewが入らなくて悪戦苦闘!!


■ 2章までの内容

Kivy公式サイトチュートリアル1作ってみた(Hello World)

Kivy公式サイトチュートリアル2作ってみた(Hello World文字装飾)

Kivy公式サイトチュートリアル3作ってみた(前半)(ボタン)

Kivy公式サイトチュートリアル3作ってみた(後半)(電卓)

Kivy公式サイトチュートリアル4作ってみた(電卓表示)



■3章までの内容

Kivy公式サイトcrash course 1作ってみた!(Helloの文字移動)

Kivy公式サイトcrash course 3作ってみた!(好きな文字を移動出来る)



■4章までの内容

Kivy公式サイトcrash course4作ってみた!(好きな文字を移動のKV言語)

Kivy公式サイトcrash course5作ってみた!(色をランダムに変える)

Kivy公式サイトcrash course6作ってみた!(色ランダムで分身の術)



■ 5章までの内容

Kivy公式サイトcrash course7を作ってみた!(長方形、楕円、線)

Kivy公式サイトcrash course8を作ってみた!(文字背景の自動調整と分身の術)



Kivy公式サイトチュートリアル5を作ってみた(長方形描画)

Kivy公式サイトチュートリアル6を作ってみた(お絵かき)



Kivy Gallery Examples 「Canvas stress」を作ってみた!(カラフルな四角)


Kivy Gallery Examples 「Bezier Example」を作ってみた!(ベジェ曲線と多角形とスライダー)


Kivy Gallery Examples 「Lines Extended Demo」を作ってみた!


Gallery of Examples FBO Canvasを作ってみた!(ボタンが動くアニメーション)




メインメニューへ戻る
Python自作サンプル集

Swiftでアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について

Homebrewが入らなくて悪戦苦闘の後、やっと入ってKivyやってます

Kivyというライブラリを使ってPythonでアプリを作って行く
Python自作サンプル集
Swiftでアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について

Pythonでアプリを作りたい!!
それにはKivyというライブラリを使うらしい。

色々調べましたが何から手をつけて良いのかわからないので、こちらの本を中心に勉強しています。

まず、Homebrew(ホームブルー)というものを入れて、それを使ってKivyをインストールするところから始まります。
Homebrew公式

簡単にHomebrewについて書くと、macを本格的に使っていろいろインストールしたいんだけど、簡単に出来るといいなぁ・・・という時に使う、管理するものです。

アイコンがビールなので、色々なビールを入れられるジョッキ見たいなものかなぁ・・・と物凄い単純なイメージを持ちました。

「君みたいに、そんな単純な頭じゃないから、もっと詳しく知りたいよ!」という方はこちらへ。

homebrewとは何者か。仕組みについて調べてみた

【Homebrew】簡単な仕組みや基本操作を解説!使用するメリットも紹介!インストールできない時の確認項目とは?

で、Homebrewがなかなか入らなくてこれじゃぁアプリ開発できないじゃん!
いやだよ、こんなところで諦めたくないよ!!!

というわけで調べました。

まず、準備として押さえておく記事
Mac – Homebrew のダウンロードとインストール

Homebrewが入らないケースその1
【M1のMacBookを使っている】
ターミナルの設定を変えると出来るようです。
【M1】MacにHomebrwがインストールできない「zsh: command not found: brew」

【エラーメッセージが出る】
私の場合、下記のようなエラーメッセージが出たので、エラーメッセージで検索したら解決方法が見つかってインストール出来ました。

curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.haxx.se/docs/sslcerts.html

同じ悩みで解決された方の例
MacにHomebrewをインストールしようしたらエラーが出てできない。

ターミナルで下記のコマンドを打つことで解決出来ました。

/bin/bash -c "$(/usr/bin/curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

【その他のエラーメッセージ】
私以外のケースの方向けにリンクを貼りました。

fatal: cannot copy ‘/Applications/Xcode.app/Contents/Developer/usr/share/git-core/templates/hooks/pre-receive.sample’ to ‘/usr/local/Homebrew/.git/hooks/pre-receive.sample’: Permission denied
Failed during: git init -q

新しいMacでHomebrewをインストールできないです…

Kivyというライブラリを使ってPythonでアプリを作って行く
Python自作サンプル集
Swiftでアプリ開発される方向け
これからプログラミングを始める方へ
プログラミングと資格について

Pythonで半端ならK.O….踊♪

おはこんばんちは!
うにゃうにゃエンジニアの猫です(=^x^=)

Adoさんの歌って、プログラミングの教材になるんですよね。
今回は踊からヒントを得たプログラムを作ってみました。

関連記事:C言語うっせぇわループ

サイトマップはこちらから

Python自作サンプルに戻る
C言語自作サンプルに戻る
メインメニューに戻る
基本情報技術者試験

自己紹介

Pythonの進捗状況(私のロードマップ)

歌詞に「半端ならK.O.」とありますね。
ここから半端、つまり、割り算をして割り切れなかったら負け、割り切れたら勝ちという割り算ゲームを格闘ゲームをイメージして作りました。
余りが0で割り切れたなら勝ち、余りが出たら負けです。

まずは、実行してみます。

ここで被除数(割られる数)を入力します。
「9」

次に除数(割る数)を入力します。
「2」


割り切れませんので、余り、半端なのでK.O.されて負けました。

次は8を2で割ってみます。

割り切れてK.O.,勝ちしました。

それではこのプログラムのポイントとなる箇所をトレースしてみます。

最初の入力画面のコードです。
ここで、標準入力を使って、被除数(割られる数)を入力しています。
>>>のすぐ後に入力出来るようにprint文の中で、

end=””

を使っています。

#dividendは被除数(割られる数)
print("被除数(割られる数)を入力して下さい>>>",end="")
dividend=int(input())

次に、除数(割る数)を標準入力を使って入力しています。

#divisorは除数(割る数)
print("除数(割る数)を入力して下さい>>>",end="")
divisor=int(input())

その後、割り算して余りを求め、結果を返す関数を呼び出しています。

#remainder(余り)を計算する関数を呼び出す
judge=dance_div(dividend,divisor)
print("果たして'YOU'の勝敗結果は・・・・!")

割り算を計算して、余りがあるかどうかによって文字列msgに「YOU WIN」または「YOU LOSE」を戻り値として返すようにしています。

#割り算してあまりを返す関数
def dance_div(dividend,divisor):
    remainder=dividend%divisor
    print("被除数(割られる数)="+str(dividend))
    print("割る数="+str(divisor)+"\n")
    print("余り【"+str(remainder)+"】\n")

    #もしも余りが0だったら勝ち!    
    if remainder==0:
        msg="YOU WIN!!!!!!!!!!!!!!!!!!!"
    else:
        msg="YOU LOSE....." 

    return msg       

最後にこのプログラム全体のコードを掲載します。

#割り算してあまりを返す関数
def dance_div(dividend,divisor):
    remainder=dividend%divisor
    print("被除数(割られる数)="+str(dividend))
    print("割る数="+str(divisor)+"\n")
    print("余り【"+str(remainder)+"】\n")

    #もしも余りが0だったら勝ち!    
    if remainder==0:
        msg="YOU WIN!!!!!!!!!!!!!!!!!!!"
    else:
        msg="YOU LOSE....." 

    return msg       

print("\n ♪ 半端ならK .O ..... ♪ \n")        
#dividendは被除数(割られる数)
print("被除数(割られる数)を入力して下さい>>>",end="")
dividend=int(input())

#divisorは除数(割る数)
print("除数(割る数)を入力して下さい>>>",end="")
divisor=int(input())
print()

#remainder(余り)を計算する関数を呼び出す
judge=dance_div(dividend,divisor)
print("果たして'YOU'の勝敗結果は・・・・!")

#結果を出力
print(judge+"\n")

宜しかったら、コードをコピペしてアレンジして見てください。

最後までお読み頂きありがとにゃん(=^x^=)

■参考文献■
じっくり丁寧にPythonを学びたい方向け。
まずはpaizaラーニングなどの学習コンテンツで学んで、基礎をマスターしたら、この本でじっくりと初級から中級レベルを目指せます。

関連記事:C言語うっせぇわループ

サイトマップはこちらから

Python自作サンプルに戻る
C言語自作サンプルに戻る
メインメニューに戻る
基本情報技術者試験

自己紹介

Pythonの進捗状況(私のロードマップ)

Pythonの進捗状況(私のロードマップ)

この記事ではPythonに絞って、ゲーム感覚でプログラミングを楽しめて、尚且つ、出来るだけコストを書けず挫折しにくい学習方法を紹介しています。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

paizaラーニング さんという学習コンテンツで、1レッスンに8個程度のチャプターがあります。入門講座の他に完全無料の「体験版」があるので、自分との相性の合う言語を手軽に探せます。

2021年2月21日からPythonの学習を本格的に始めました。
それまでは幾つかの言語を自分探し的にやっていました。
2021年5月5日(GW最終日)に体験版及び入門講座を終えました。

体験版と入門講座のLesson6までをまず行いました。
ここまでで変数、条件分岐、ループ、リスト(他の言語でいう配列)が学べます。

その後、Lesson7の関数に進む前にレベルアップメニューの問題集のリンクがあるので、そちらで条件分岐、配列、配列活用メニュー、二重ループメニューを終わらせ、最後にCランクレベルアップメニューをクリアしました。

レベルアップ問題集は、順番に解いていくと最後の問題が解けるようにテーマごとに構成されていて、まずは自力で解いて、それから正解した場合でも必ず模範解答を確認して、もっと良いやり方があったらそのやり方でも問題を解いてみました。

Cランクアップメニューをクリアした後、Lesson7の関数に進み、最後の動画レッスン(2021年5月5日現在)のLesson10までで関数に加えてクラス、例外処理を学びました。

動画レッスンには内包表記はありませんが、レベルアップ問題集の模範解答などを見て、内包表記が少し分かる程度の知識があれば、この本、「独習Python」を読めると思います。

paizaにはスキルチェックというものがあり、ランクがDランク、Cランク、Bランク、Aランク、1番上がSランクになります。

私は2021年12月現在Cランクですが、Cランクの問題は解ける問題もありばそうでない問題もあり、安定して解けるのはDランクの問題なので、実質的な実力はDランクだと思っています。

そこで、実質的にCランクの問題を安定して解ける力をつけ、さらに上を目指すのに、「レベルアップ問題集」のPythonのコードと仕事で必要になるGASのコード(スプレッドシートを使用)をブログで公開しています。

関連記事:paizaレベルアップ問題集をPythonとGASの両方で解いてみた集
これは、DランクからCランクにレベルアップするための、Cランク獲得ストーリーを参考にしています。



■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

出来れば基本情報技術者試験合格レベルの知識もあった方がより分かりやすいかも知れませんが、ITパスポートのみという方でも、論理演算とか知っていれば学習可能かも知れません。

2021年5月23日からKivyを初め、今現在はPython×kivyで2021年内にアプリを開発出来るよう、仕事と並行して勉強しています。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Swiftについて

この記事ではSwift学習時に使用していた本3冊の中から最も初心者向けかつ内容が充実している本を1冊紹介します。

これからプログラミングを始める方へ
プログラミング学習で関わってはいけない人と避けるべき環境
風呂グラミング(入浴剤紹介)
(保護者の方へ)こどもプログラミング

iPhoneでアプリの開発というと、まず思い浮かぶのがSwiftだと思います。
基本情報技術者試験の受験が終わった2021年1月前半からSwiftをやっていました。

ドットインストールさんでSwiftの3分動画講義があり、演算やループ、配列、タプルといった基本が学べます。
また、この記事後半で紹介する本では基礎を中心により深く学べます。

SwiftはMacのX-Codeで動くので、Windowsでは使用できないんです。
では、macに買い換えるまで、Windowsでどうやって勉強をしていたのかと言うと、
paizaのエディタを使って、そこにコードを書いていました。

関連記事:Mac買い換え備忘録

Swiftは本も日本語の情報も沢山あり、アプリ開発で何か特別な理由が無い限りは一番お勧めな言語です。

Swiftで開発を考えていた頃に3冊ほど本を買いましたがその中で最も内容が充実していて、プログラミング全くの初めてでも小学生程度の算数が出来れば読み進められる本を1冊紹介します。

先ほど、何か特別な理由が無い限りSwiftがお勧めと書きましたが、私は例外的な例に当てはまってしまったので、別の方法でアプリ開発を目指すことにしました。

関連記事:Python×kivy

これからプログラミングを始める方へ
プログラミング学習で関わってはいけない人と避けるべき環境
風呂グラミング(入浴剤紹介)
(保護者の方へ)こどもプログラミング

【Pythonクラス爆速理解!!】「月曜日はウンジャラゲ♪」で、「昭和のギャグ」からクラスが学べちゃうんですョ!!

この記事を読むことで、Pythonのクラスが「脳にダイレクトに衝撃を与えながら記憶に残って定着して使いこなせる」様になります。
と、申すのも、Pythonでのクラス学習に教材として、故・志村けんさんが歌う「ウンジャラゲ」を使って学んでいくからです。

この記事ではPythonを学んでクラスまで辿り着いた昭和生まれのミドル世代中高年の方々に、どこまでも優しい記事を心がけて書いておりますが、Pythonのクラスを勉強中の平成・令和生まれの方も宜しかったらお立ち寄り下さい。内包表記も使っているので、ループの学習中の方もどうぞご覧下さい。

プログラミング初心者で、子どもの頃にTV で「志村けんさん」のギャグを見て笑っていた昭和の方々を対象にしていますが、若い方でも志村けんさんをご存知の方は大勢いらっしゃると思います。

プログラミングを学んでいる私のような年配の方で、若い方から学ぶのはチョット・・・とためらいのある方は、こちらの記事と併せて、クラスよりももっと前の基礎文法も扱っている当ブログのPython自作サンプル集もご覧下さいませ。

関連記事(ループで「僕は死にましぇ〜〜ん」・「同情すんなら金をくれ!!」):Pythonでループの基礎と2つずつ増加、ドラマの名台詞を表示、「同情すんなら金をくれ!!!!」

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

クラス=設計図
インスタンス=クラスという設計図から作られた「具体的な」製品
というと、なんだか小難しい感じがするので、

クラス=志村けんさんの「ウンジャラゲ」を例にして、「何」曜日は「ナニナニナニ♪」といったフォーマット
インスタンス=そのフォーマットから作った、「月曜日はウンジャラゲ」、「火曜日はハンジャラゲ」・・・「日曜日はランラランらランランっ!」と言った「具体的な」各曜日ごとの踊り

という認識でコードを書いています。

下記の動画は、今回学ぶ「Pythonのクラスの基礎の基礎」の教材として使っているので、お忙しい方も出来れば「最初の1分程度まで(日曜日まで)」を先に見ておいて頂けると、楽しみながらPythonのクラスの理解が深まると思います。
動画右下の歯車マークから再生スピードを2倍速にすると、余計に笑えるかも知れませんヨ!)

では、いよいよプログラムを詳しく見ていきます。
最初に志村けんさんのセリフとBGMを出力するコードです。
これはシンプルなprint文です。

#志村けんさんのコールと「ウンジャラゲのBGM」
print('-------------------------------------------')
print('志村けん:「さぁ、みんな揃って【ぶわぁぁぁぁぁぁぁっと】参りましょうか!!」')
print('・・・BGM・・・\n')

ポイントと言っても、4行目のprint文で改行の「バックスラッシュn」を使っている所ぐらいでしょうか。「バックスラッシュ」はMacをお使いの方は【option】+【¥】で表示されます。Windowsの方はこちらをご参照ください。

では、クラスJarageを作って行きます。
まずは、インスタンス化する時に自動的に最初に呼ばれるコンストラクタの部分です。
簡単に書くと、初期化するメソッド(関数)です。
初期化 → 月曜日 → 初期化 → 火曜日 → 初期化 → 水曜日・・・
という具合に呼び出されるので、必ず初期化が必要です。

#クラスJarage
class Jarage:

    #コンストラクタで初期化している。
    def __init__(self,week,spell):
        self.week=week
        self.spell=spell

selfというのは、呼ばれた月曜日、火曜日・・・の各曜日自体のことです。
weekに曜日を、spellに「ウンジャラゲ」、「ハンジャラゲ」といった呪文(!?)を引数にしています。
クラスで使うメソッド(関数)には「self」が必要です!!

次は、「何曜日」が「ナンジャラゲ」になるのか出力するsongメソッドです。

#何曜日は何ジャラゲかを出力するsongメソッド   
    def song(self):
        print(self.week+'曜日は、'+self.spell)

一旦ここまでのクラスJarageのコードをまとめます。

#クラスJarage
class Jarage:

    #コンストラクタで初期化している。
    def __init__(self,week,spell):
        self.week=week
        self.spell=spell

    #何曜日は何ジャラゲかを出力するsongメソッド   
    def song(self):
        print(self.week+'曜日は、'+self.spell)

クラスの中にあるsongメソッドを使うのに、

mon=Jarage(‘月’,’ウンジャラゲ’)

とすると、月曜日はウンジャラゲ、と入るようにします。
変数self.weekに「月(曜日)」、変数self.spellに「ウンジャラゲ(呪文)」が入り、これをリストを使って、各曜日用意します。

次に、月曜日から日曜日までインスタンス化する処理です。

#曜日とその呪文のインスタンスを生成
mon=Jarage('月','ウンジャラゲ♪')
tue=Jarage('火','ハンジャラゲ♪')
wed=Jarage('水','スイスイスイ♪')
thu=Jarage('木','モーリモリ♪')
fri=Jarage('金','キンキラキン♪')
sta=Jarage('土','ギンギラギンのギンギラギンのギンギラギンのギン♪')
sun=Jarage('日','ランラランらランランっ!')

この後、各曜日を格納するリストeverydayを、各曜日の英語略で作ります。

everyday=[mon,tue,wed,thu,fri,sta,sun]

このリストeverydayをループを使って順々にインスタンス化していくコードです。

#ループを使って各曜日のインスタンス化を行う
for day in everyday:
    day.song()

このループの部分を内包表記で書くと、ループのコードが1行にシンプルに記述出来ました。

#内包表記で各曜日のインスタンス化のループを作る
[day.song() for day in everyday] 

内包表記の公式
[結果 for〜(いつものFor文)]

では、クラスJarageの中のsongメソッドをループで呼び出して各曜日表示します。
これまでのコードに出力文「だいじょぶだぁ」などを加えたコードと、実行結果です。

#志村けんさんのコールと「ウンジャラゲのBGM」
print('-------------------------------------------')
print('志村けん:「さぁ、みんな揃って【ぶわぁぁぁぁぁぁぁっと】参りましょうか!!」')
print('・・・BGM・・・\n')

#クラスJarage
class Jarage:

    #コンストラクタで初期化している。
    def __init__(self,week,spell):
        self.week=week
        self.spell=spell

    #何曜日は何ジャラゲかを出力するsongメソッド   
    def song(self):
        print(self.week+'曜日は、'+self.spell)


#曜日とその呪文のインスタンスを生成
mon=Jarage('月','ウンジャラゲ♪')
tue=Jarage('火','ハンジャラゲ♪')
wed=Jarage('水','スイスイスイ♪')
thu=Jarage('木','モーリモリ♪')
fri=Jarage('金','キンキラキン♪')
sta=Jarage('土','ギンギラギンのギンギラギンのギンギラギンのギン♪')
sun=Jarage('日','ランラランのランっ!')


#曜日のリスト
everyday=[mon,tue,wed,thu,fri,sta,sun]

#内包表記で各曜日のインスタンス化のループを作る
[day.song() for day in everyday] 

print('\n志村けん:「だいじょぶだぁ!!」') 
print('-------------------------------------------\n') 

わざわざクラスなんて「しちめんどくさい」ことしないで、そのままコピペの方が良くね?と思われるかもしれませんし、私もそんなこと考えなくもないですが。

いかんいかん、プログラミングを勉強する者としては!!

そこで、最後に「猫曜日はうんにゃにゃんにゃんにゃん(=^x^=)っm」を加えることにします。

これはリストeverydayに「cat」を追加して、「猫(猫曜日の猫)」、「うんにゃにゃんにゃんにゃん(=^x^=)っm」と引数を2つ指定したオブジェクトを作れば良いだけなので、簡単に改造できそうですね。

追加したコードです。

#猫曜日を追加
cat=Jarage('猫','んにゃにゃにゃにゃんにゃん(=^x^=)mm!')

#曜日リストの末尾に「cat」を追加
everyday=[mon,tue,wed,thu,fri,sta,sun,cat]

追加の実行結果です。

はい、これで無事に「猫曜日」が追加されました!!

・・・いったい自分は何をしているんだろう…。という気にもなりましたが、昭和のギャグも令和でのプログラミングの勉強に繋がっていたってことで。

それではこの追加のコードを含めて、ここまでの全コードを掲載します。

#志村けんさんのコールと「ウンジャラゲのBGM」
print('-------------------------------------------')
print('志村けん:「さぁ、みんな揃って【ぶわぁぁぁぁぁぁぁっと】参りましょうか!!」')
print('・・・BGM・・・\n')

#クラスJarage
class Jarage:

    #コンストラクタで初期化している。
    def __init__(self,week,spell):
        self.week=week
        self.spell=spell

    #何曜日は何ジャラゲかを出力するsongメソッド   
    def song(self):
        print(self.week+'曜日は、'+self.spell)


#曜日とその呪文のインスタンスを生成
mon=Jarage('月','ウンジャラゲ♪')
tue=Jarage('火','ハンジャラゲ♪')
wed=Jarage('水','スイスイスイ♪')
thu=Jarage('木','モーリモリ♪')
fri=Jarage('金','キンキラキン♪')
sta=Jarage('土','ギンギラギンのギンギラギンのギンギラギンのギン♪')
sun=Jarage('日','ランラランらランランっ!')
#猫曜日を追加
cat=Jarage('猫','んにゃにゃにゃにゃんにゃん(=^x^=)mm!')

#曜日リストの末尾に「cat」を追加
everyday=[mon,tue,wed,thu,fri,sta,sun,cat]

#内包表記で各曜日のインスタンス化のループを作る
[day.song() for day in everyday] 

print('\n志村けん:「だいじょぶだぁ!!」') 
print('-------------------------------------------\n') 

今回教材に使った曲は、「植木等 ハナ肇とクレイジー・キャッツの曲」だそうです。
実は、ハナ肇さんは大学の先輩なんです。

最後まで読んでくださって、ありがとうございます。
あなたを愛しています(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

Python クラスを使ってアロマオイルの値段を計算する

この記事を読むことで、クラスを使った演算を学べます。
具体例として、アロマオイルの単価と数量と税率から合計金額を演算します。
クラスは「設計図」というイメージで説明されることが多いです。

「Aroma」というクラス(設計図)に「money」というメソッド(クラス内で使う関数)を持たせて、アロマという抽象的なものから、「ハッカ油」、「レモン精油」という具体的なもの(インスタンス)を作って計算結果を求めています。

おすすめのハッカ油とレモン精油を購入するイメージでコードを書きました。
ハッカ油5本、レモン精油4本とします。
ハッカは1本1000円、レモンは1210円で計算しました。

今回イメージで購入するハッカ油とレモン精油です。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

では、コードを書いていきます。
まず、クラスは下記のコードで作れます。

class Aroma:

「Aroma」というクラスを作りました。注意点として、クラスの先頭は大文字にします!

クラス内で、消費税率taxを宣言しました。

tax=1.1

消費税率10%ですね。

このクラスの中に、先ほど紹介した「money」という値段を計算するメソッドがあるのですが、「Aroma」というクラス(設計図)を初期化して、「ハッカ油」の値段を計算 → 「ハッカ油」の値段と数量が入っている変数を初期化→「レモン精油」の値段を計算しています。

初期化する為に、「コンストラクタ」という特別なメソッドを使います。
このメソッドがあるから、「ハッカ」→ <初期化> → 「レモン精油」と計算出来るのです。そのため、メソッド「money」の前にコンストラクタを書いています。
コンストラクタはクラスの中で1番先に呼び出されます。

#これは「コンストラクタ」で最初に呼ばれて変数を初期化している
    def __init__(self,price,count):
        self.price=price
        self.count=count

コンストラクタは、「init」を使って書いています。
コンストラクタの書き方をまとめると、上記コードの2行目は、この様な書き方になります。

def (スペース)__(アンダーバー2つ)init__(アンダーバー2つ)

このコンストラクタの中には「self」というものが入っていますが、ここでは簡単に、「ハッカ油自体」、「レモン精油自体」だと思って下さい。

コンストラクタの後に、値段を計算するメソッドmoneyを書きます。

#値段を計算するメソッド
    def money(self):
        return int(self.price*self.count*Aroma.tax)

ハッカ油の値段と数量と消費税率を掛けてintで整数にして計算しています。

ハッカ油やレモン精油をクラスを使って計算するのは、クラスという設計図のような物に「ハッカ油」、「レモン精油」の単価と数量を指定して計算します。
そのインスタンス化と出力のコードです。

#インスタンス化
hakka=Aroma(1000,5)
remon=Aroma(1210,4)

#値段を出力。「str」と「+」を使って計算結果と文字列を出力している。
print('【 ハッカ油】は合計【'+str(hakka.money())+'】円です。')
print('【レモン精油】は合計【'+str(remon.money())+'】円です。')

ここまでのコードのまとめと、出力結果です。

class Aroma:

    #消費税
    tax=1.1

    #これは「コンストラクタ」で最初に呼ばれて変数を初期化している
    def __init__(self,price,count):
        self.price=price
        self.count=count

    #値段を計算するメソッド
    def money(self):
        return int(self.price*self.count*Aroma.tax)

#インスタンス化
hakka=Aroma(1000,5)
remon=Aroma(1210,4)

#出力
print('【 ハッカ油】は合計【'+str(hakka.money())+'】円です。')
print('【レモン精油】は合計【'+str(remon.money())+'】円です。')

アロマなんかにそんなにお金使うのか!!!という声も聞こえてきそうですが、
何にお金を使うのかは人それぞれですよね。
おすすめは 北見ハッカ通商さんのハッカの商品 です。

◆関連記事◆
アロマでゴキブリを追い出せ
ハッカ愛から、ハッカー

ご精読ありがとうございました。
あなたを愛しています(=^x^=)

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

サイトマップはこちらから

Python自作サンプル集へ
これからプログラミングを学ぶ方へ
プログラミングと資格へ
基本情報技術者試験トップへ
自己紹介

Pythonの進捗状況(私のロードマップ)

モバイルバージョンを終了