LoginSignup
3
3

More than 5 years have passed since last update.

pythonで簡単におみくじを作ってみよう!【入門者向け】

Posted at

身近にpythonを始めたけどよくわからない!!という人がいたので簡単なおみくじコードを書かせた時の話。
pythonはいろんな書き方ができるので、書き方に宗教チックな物を感じますね。そこでとりあえず理解しやすそうな3種類のコードを紹介します!

分岐構文の場合

まずは、入門中の入門から!分岐構文です!

import random

num = random.randint(0,60)

if num < 2:
    print("大吉")
elif 2 <= num < 10:
    print("中吉")
elif 10 <= num < 20:
    print("小吉")
elif 20 <= num < 40:
    print("吉")
elif 40 <= num < 50:
    print("末吉")
elif 50 <= num < 55:
    print("凶")
elif 55 <= num < 58:
    print("中凶")
else:
    print("大凶")

まずnum = random.randint(0,60)で乱数を生成し、変数numに格納します。その数値がマッチする条件式のif文の中身が実行されることで、おみくじを成立させています。
それぞれの結果の確率を変えたい場合は、条件式の値を変更するだけで大丈夫です!

配列(リスト)を用いた場合

内包表記を存分に使用していますが、条件式や出力したい値を綺麗に並べて書くことができるので、できればチャレンジしてみるといいです!

import random

omikuzi = [
            "大吉"   if i < 2 else
            "中吉"   if 2 <= i < 10 else
            "小吉"   if 10 <= i < 20 else
            "吉"     if 20 <= i < 40 else
            "末吉"   if 40 <= i < 50 else
            "凶"     if 50 <= i < 55 else
            "中凶"   if 55 <= i < 59 else
            "大凶"   for i in range(61)]

print(omikuzi[random.randrange(len(omikuzi))])

乱数生成の一手間を省きたい時

pythonには生成した配列(リスト)の中から1つをランダムに取り出す関数が用意されているようです!用意されているなら使うしかないですね!

import random

omikuzi = [
            "大吉"   if i < 2 else
            "中吉"   if 2 <= i < 10 else
            "小吉"   if 10 <= i < 20 else
            "吉"     if 20 <= i < 40 else
            "末吉"   if 40 <= i < 50 else
            "凶"     if 50 <= i < 55 else
            "中凶"   if 55 <= i < 59 else
            "大凶"   for i in range(61)]

print(random.choice(omikuzi))

さらに簡単に書くことができました!

ちょっとした雑談

今回はpythonの入門としておみくじを行うコードを紹介してみました。特に内包表記や乱数などは、コーディングを続けて行くなら必須な知識なので、ぜひ押さえておきましょう!

参考にした記事

pythonの内包表記を少し詳しく

3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3