BLOG
- 2018.08.06Python
- ・卵
- ・良い卵
- ・悪い卵
- ・サラダ油
- ・ボウル
- ・フライパン
Pythonで卵焼き作ってみた【Python】【入門】
はじめに
こんにちわ。すぎちゃんです。
主に研究開発や受託案件などの業務を担当しています。
現在Fotomeでは、「FotomeのFはPythonのP」なんて名言が生まれたくらい、Pythonという言語に力を入れています。
そんな背景もございまして、せっかくなら何かPythonにまつわる記事を書きたいな〜と漠然と考えていたのですが、家のトイレのドアノブに手を掛けた瞬間に閃きました。
「Pythonで卵焼き作れたら面白いんじゃね?」
その日から僕のこの記事を書くための辛く険しい修行が始まったのです…。
さて、本題に入りましょう。
1.材料
class Tamago(object):
"""
卵class
"""
inside = ['白身', '黄身']
mixed_count = 0
is_divided = False
is_mixed = False
is_scrambled = False
umami_level = 50
def dividing(self):
# 卵を割るメソッド
self.is_divided = True
return self.inside
class GoodTamago(Tamago):
"""
良い卵class
"""
umami_level = 100
class BadTamago(Tamago):
"""
良い卵class
"""
umami_level = 0
class Oil(object):
"""
油class
"""
TYPES = {
'salad': 0,
'olive': 1,
'goma' : 2
}
def __init__(self, type=None):
self.type = type
2.道具
class Bowl(object):
"""
ボウルclass
"""
def mix(self, tamago, count=100):
if not tamago.is_divided:
raise ValueError("割らなきゃ混ぜれない!")
print('{count}回混ぜましょう。'.format(count=count))
for i in range(count):
tamago.mixed_count = tamago.mixed_count + 1
print('{}回目'.format(tamago.mixed_count))
tamago.is_mixed = True
return tamago
class Pan(object):
"""
フライパンclass
"""
oil = None
def __init__(self, oil):
if oil.type is not Oil.TYPES['salad']:
raise ValueError("サラダ油じゃなきゃダメ!")
self.oil = oil
def scramble(self, tamago):
if not tamago.is_mixed:
raise ValueError("卵を溶いてからじゃなきゃダメ!")
tamago.is_scrambled = True
return mixed_tamago
3.手順
① 卵とボウルを用意します。
tamago = Tamago()
bowl = Bowl()
② 卵を割ってボウルに入れ、10回混ぜます。
inside = tamago.dividing()
mixed_tamago = bowl.mix(tamago, count=10)
③ フライパンにサラダ油を敷きます。
oil = Oil(type=Oil.TYPES['salad'])
pan = Pan(oil)
④ フライパンに卵を入れてい炒ります。
scrambled_tamago = pan.scramble(tamago)
4.味見してみましょう
def tasting(dish):
"""
味見メソッド
"""
if 80 < dish.umami_level:
print('美味い!')
elif 40 < dish.umami_level and dish.umami_level <= 80:
print('普通。')
else:
print('まずい…')
5.最後に
という訳で、見事にPythonで卵焼きを作りました! (爆
多少強引ではありますが、Pythonの基本的な文法や記法をなるべく盛り込み、かつオブジェクト指向的なエッセンスも取り入れているので「これぐらい余裕だぜ」ってことであれば脱Python初心者だと思います!
プログラミングという行為は普段の生活には現れないので、なるべく具体的でイメージしやすいお題があると勉強するにも教えるにもハードルが下がるかなと思って今回の記事を書いてみました。
少しでも多くの方がPythonの魅力を感じていただければ嬉しいです!!
次回は「Pythonで目玉焼きつくってみた」でお会いしましょう。
最後までお読みいただき、ありがとうございました!
おまけ
これまでに出てきたソースコードをまとめたものです。
いろいろ試しながら遊んでみて下さい!
class Tamago(object):
"""
卵class
"""
inside = ['白身', '黄身']
mixed_count = 0
is_divided = False
is_mixed = False
is_scrambled = False
umami_level = 50
def dividing(self):
self.is_divided = True
return self.inside
class GoodTamago(Tamago):
"""
良い卵class
"""
umami_level = 100
class BadTamago(Tamago):
"""
悪い卵class
"""
umami_level = 0
class Oil(object):
"""
油class
"""
TYPES = {
'salad': 0,
'olive': 1,
'goma' : 2
}
def __init__(self, type=None):
self.type = type
class Bowl(object):
"""
ボウルclass
"""
def mix(self, tamago, count=100):
if not tamago.is_divided:
raise ValueError("割らなきゃ混ぜれない!")
print('{count}回混ぜましょう。'.format(count=count))
for i in range(count):
tamago.mixed_count = tamago.mixed_count + 1
print('{}回目'.format(tamago.mixed_count))
tamago.is_mixed = True
return tamago
class Pan(object):
"""
フライパンclass
"""
oil = None
def __init__(self, oil):
if oil.type is not Oil.TYPES['salad']:
raise ValueError("サラダ油じゃなきゃダメ!")
self.oil = oil
def scramble(self, tamago):
if not tamago.is_mixed:
raise ValueError("卵を溶いてからじゃなきゃダメ!")
tamago.is_scrambled = True
return mixed_tamago
def tasting(dish):
"""
味見メソッド
"""
if 80 < dish.umami_level:
print('美味い!')
elif 40 < dish.umami_level and dish.umami_level <= 80:
print('普通。')
else:
print('まずい…')
if __name__ == '__main__':
try:
print('卵を用意します。')
tamago = Tamago()
print('ボウルを用意します。')
bowl = Bowl()
print('卵を割ります。')
inside = tamago.dividing()
print('{inside}が出て来ました。'.format(inside=inside))
print('ボウルに卵を入れて混ぜます。')
mixed_tamago = bowl.mix(tamago, count=10)
print('フライパンに油を敷きます。')
oil = Oil(type=Oil.TYPES['salad'])
pan = Pan(oil)
print('フライパンに卵を入れて炒ります。')
scrambled_tamago = pan.scramble(tamago)
if not scrambled_tamago.is_scrambled:
raise ValueError("卵に火が通ってなきゃダメ!")
tasting(scrambled_tamago)
except ValueError as e:
print(e)
print('失敗!')
人気記事
-
【AfterEffects】初心者でも30分で作れる手書き風アニメーションタイトルの作り方【入門】
動画編集2018年8月31日< -
【ブロックチェーン】ERC20で独自トークンを発行しよう!【Ethereum】
ブロックチェーン2019年2月22日< -
Pythonで卵焼き作ってみた【Python】【入門】
Python2018年8月6日< -
はじめてのスクラム開発
スクラム2018年8月17日<
人気カテゴリ
ABテスト
AI
Angular
AWS
BI
DX
Fabeee
iOS
Java
JavaScript
Laravel
Looker
PHP
Python
Selenium
SNS
SQL
tableau
Twitter
TypeScript
Unity
WEB
アジャイル
ウォーターフォール
グロースハック
ゲーム
ゴッチのIT雑記
スクラム
データ分析
ディープラーニング
デザイン
テレビ
フォトメ
プロジェクト管理
プロジェクト開発
ブロックチェーン
動画編集
受託開発
営業
形態素解析
書籍
業界用語
機械学習
自動化