【入門】Pythonで簡単な星座占いプログラム作ってみた【初心者】

Jupiter Jupyter Notebook

こんにちは、Rumadraです。

 

・プログラミングできる環境は整ったけど、何から始めればいいかわからない…
・Pythonで簡単なプログラムを動かしてみたい!
・気軽に動かしながら文法を覚えたい

 

プログラミングを始めたばかりって何からやっていいのかわからないですよね。

 

これは私の経験則ですが、悩んで止まってしまうなら完成度がひどくてもとりあえず作ってみるっていうスタンスがとても重要だと思います。

 

そこで今回は、Jupyter Notebookの使い方を交えて簡単なPythonのプログラムを作っていきたいと思います!

開発環境

 

開発環境は以下のようになりますが、ここは人によって変わってくると思うので参考程度にみてください。

  • Windows 10 Pro 1809
  • WSL Ubuntu (Jupyter Notebookをインストールしているため)
  • Python 3.6.7
  • Jupyter Notebook 4.4.0

 

 

Jupyter Notebookの使い方

前回の記事でも紹介しましたが、Jupyter Notebookローカル(自分のPC)でブラウザ上でプログラムを作れるツールです。

また、作成したプログラムをそのまま実行できる環境も備わっているため、すぐに実行して確認することもできます。

起動してみる

著者の環境では、Ubuntuにインストールしているので、コマンドで実行します。

jupyter notebook

起動されるとURLがでてくるので、ブラウザでそのアドレスにアクセスします。

 

このような画面が表示されます。

 

Jupyter Notebookにはいくつか面白い特徴があるので見てみましょう。

Jupyter Notebook の特徴その1

一つ目の特徴は、ノートブック(Notebook) 」という単位で管理します。

作成したプログラムはこれで記録されていきます。

では、さっそく新しいノートブックを作ってみましょう。

 

新しいタブでノートブックができました!

 

「In [ ]:」とある欄がセルと呼ばれる単位でコードの実行単位になっています。

Jupyter Notebook の特徴その2

先ほど作成したノートブック、何が面白いかというと、、、

 

 

実行結果がそのまま記録として残せるんです!

書いたソースの実行は、実行したいセルを選択した状態で Shift + Enter か、「Run」を押して実行できます。

ということで2つ目の特徴は、自分の書いたコードがまさにノートに書いているような感覚で書けちゃうわけです。

 

Jupyter Notebook の特徴その3

まずは私が作成したプログラムがこちらになります!

 

こちらのソースコードは自由に改変・配布していただいて構いません。
import random

import ipywidgets as widgets

# ボタンが押されたときの処理
def on_button_clicked(b):
    birthvalue = birthdate.value
    constella = calc_constellation(birthvalue)
    print('今日の' + constella + 'の運勢は' + fortune_result())

# 入力された日付の星座を判定する
def calc_constellation(x):
    constellation = {1 : 'やぎ座', 2 : 'みずがめ座', 3 : 'うお座', 4 : 'おひつじ座',
                     5 : 'おうし座', 6 : 'ふたご座', 7 : 'かに座', 8 : 'しし座',
                     9 : 'おとめ座', 10 : 'てんびん座', 11 : 'さそり座', 12 : 'いて座'}
    if x.day > 22:
        if x.month == 12:
            return constellation[1]
        else:
            return constellation[x.month + 1]
    else:
        return constellation[x.month]
    
# 運勢結果を出す
def fortune_result():
    num = random.randint(1, 12)
    if num < 5:
        return '最悪です…。外食は控えた方が吉。'
    elif num < 9:
        return '可もなく不可もなし。たくさん運動しよう!'
    else:
        return '最高です!いいことがあるかも!'
        
# 誕生日
birthdate = widgets.DatePicker(
    disabled=False
)

# 占うボタン
button = widgets.Button(description="占う") 
# ボタンが押されたときの処理
button.on_click(on_button_clicked)

print('誕生日を入力してください。')
display(birthdate)
display(button)

 

プログラミングが初めての人にとっては圧倒される量かもしれないですね。笑

ソースコードを見てなんとなーくどんなプログラムかわかりますか?

 

今回のプログラムを実行するために、あらかじめJupyter Notebookで使用するライブラリを追加&設定を変更してあります。

$ pip install ipywidgets 
$ jupyter nbextension enable --py widgetsnbextension

こちらは、Jupyter Notebookを起動する前に実行しておいてください。

 

そして動かしてみたのが、コチラ:

python_program

 

こんな感じで簡単なUIの部品(日付ボタン)を配置して星座占いっぽいものが作れちゃいます!

 

まとめ

今回は、気軽にPythonのプログラミングが実践できる方法を紹介しました!

 

今回作った星座占いも40分ほどで作ったものなので、結構雑です。笑

 

ですが、この動いた時の達成感はやはりりあえず作ってみて初めてわかるのかなと思います。

 

プログラミングの書き方とかは今の時代いくらでも情報がありふれてますが、やはり自分でコードを書くということを習慣化したいですよね。

 

今回紹介したJupyter Notebookは、とりあえずPythonの勉強がしたいという方には特におすすめです。

より本格的なPythonアプリを作りたいという方はぜひ他の開発環境で試してみてはいかかでしょうか。

 

次回は本格的なGUIアプリなどが作れるおすすめの開発環境について紹介したいと思います!

 

以上、Rumadraでした。

 

・Jupyter Notebookはその場で結果を確認して記録として残せる
テキストボックスカレンダーボタンなどの簡単なUIを使ったプログラムが作れる
・まずはソースコードを書いてみよう

 

コメント

タイトルとURLをコピーしました