It's My Life!!~人生楽しむっ!~

人生いろいろありつつも、楽しみながら生きる雑記ブログ。エンタメ・プログラミング・転職活動…さまざまな情報を主観的にお届けして、人生楽しみたい人とつながりたい!

【Python】占いプログラム作ったよ!~楽しさと苦労を味わいながら~


こんにちは。IT業界への就職を目指して日夜Pythonと戯れている織田龍馬(@ mousou_univ)です。
今日もPythonで簡単なプログラムを作ってみました。

・現役エンジニアさん
・IT初心者
Pythonプログラム初心者

の方に読んでもらえると嬉しいです。
それでは、よろしくお願いします!

Pythonで作る、簡単な「占い」プログラム!

今日作ってみたのは、「1日1回占い」です。
ポイントはこちら。
①自分の名前を入力する
⓶「(名前)さん、よ>><<うこそ!今日の(日付)の運勢を占います!」と表示する ※日付は入力した日のものに設定する
③1秒ごとに「見えてきました…」「むむむっ…」などの言葉を表示する
④3秒後、「大吉」「吉」「凶」「地獄」の中から1つを選び、今日の運勢として占い、運勢に適した言葉を表示する

という簡単なプログラムです。

ソースコード公開

import datetime
import random
import time
fortunes=["大吉","吉","凶","地獄"]
fortune=random.choice(fortunes)#4つの運勢からランダムに選ぶ

name=str(input("あなたの名前を入力してください: "))

dt=datetime.datetime.today()#今日の日付を取り出す
day=dt.date()#今日の日付の中から日付のみを取り出す

print(f"{name}さん、ようこそ!今からあなたの{day}の運勢を占います💖”")

time.sleep(3)#3秒ストップ
print(f"では、占いましょう!")
time.sleep(1)

for i in range(3):
    if i==0:
        print("見えてきました…")
    elif i==1:
        print("むむむっ…")
    else:
        print("あなたの今日の運勢は…")
    time.sleep(1)#1秒おきに繰り返す 
print(f"{fortune}です!!!")

time.sleep(1)

if fortune=="大吉":
    print(f"{day}は最高の1日になりますよ!")
elif fortune=="吉":
    print(f"{day}はいい日になりそうですね!")
elif fortune=="凶":
    print(f"{day}はいやなことが起こりそうな予感…備えあれば憂いなし!")
else:
    print(f"{day}はどうあがいてもだめな日…いいことがありますように!")

以上がソースコードです。

苦労したところ

・ランダム選択
「大吉」~「地獄」までのリスト(fortunes)から1つを選ぶrandom関数を使いますが、実は、正解にたどりつくまで、以下のような間違いをしていました。

fortunes=["大吉","吉","凶","地獄"]
fortune=random.choices(fortunes)
<||

上のプログラムのまま、動かしてみると、「凶」が出ているのにも関わらず、「どうあがいてもだめな日…いいことがありますように!」という言葉が出てきてしまうのでした…
※本来なら「凶」と出たら「いやなことが起こりそうな予感…備えあれば憂いなし!」と表示させたかった…

何が違うのか…ちなみに正解は下のコードです。

>|python|
fortunes=["大吉","吉","凶","地獄"]
fortune=random.choice(fortunes)
<||

どこが違うかわかりますか…?

そう!

>|python|
<span style="font-size: 200%">×</span>random.choice<span style="font-size: 200%"><strong><span style="color: #ff0000">s</span></strong></span>(fortunes)
<span style="font-size: 200%"><span style="color: #ff0000">〇</span></span>random.choice(fortunes)

たった「s」1文字でまったく違う結果になってしまったのです!!

プログラミングの面白さ

たった1文字の入力でエラーが出たり、予想と違う動きをしてしまう…
だからこそ、正確に、ていねいに、何が違うのかを論理的に突き詰めながらプログラムを書く…
苦労する反面、解決できたときの気持ちよさ…

これだからプログラミングは面白いですね。

てなわけで、今日もつたないプログラムを読んでくれてありがとうございました。