プログラミング 添削 おみくじ関数
プログラミング初心者です!今大学生で、新卒でエンジニアになりたいと考えているものです!
おみくじをする関数をPythonで作ったのでフィードバックをいただきたいです!
もっとこうしたらいいとか、こういう部分わかってないでしょとかきつくていいので評価してほしいです!ネストのスペースの数とか{}とか命名の部分とかよくわかっていないのでスタンダードを教えてくれる嬉しいです!
要件は
・100回繰り返した後ENDと記入したら終了すること
・最後に結果(大吉 20など)を出力すること
・重みつけを行っておみくじの確率が全部同じようにならないようにすること
です!
よろしくお願いします!!!
以下こーど
import random
def main():
list = ["大吉","中吉","吉","末吉","小吉","凶","大凶"]
#おみくじの中身
weights_list=[2,4,5,6,7,3,1]
#おみくじの重みつけ
k = ("END")
count_daikiti = 0
count_chukiti = 0
count_kiti = 0
count_suekiti = 0
count_syokiti = 0
count_kyo = 0
count_daikyo = 0
#終わりを宣言するキーワード
while True:
#永遠ループ
result = random.choices(list,weights=weights_list)[0]
#ランダム関数を利用
print(result)
if result == ("大吉"):
count_daikiti+=1
if result == ("中吉"):
count_chukiti+=1
if result == ("吉"):
count_kiti+=1
if result == ("末吉"):
count_suekiti+=1
if result == ("小吉"):
count_syokiti+=1
if result == ("凶"):
count_kyo+=1
if result == ("大凶"):
count_daikyo+=1
#結果を集計
if (
count_daikiti +
count_chukiti +
count_kiti +
count_suekiti +
count_syokiti +
count_kyo +
count_daikyo
)>=100:
#100回以上になったらENDできるようにする
if k == input("終了したい場合ENDと入力してください"):
print("大吉",count_daikiti , "中吉" , count_chukiti , "吉" , count_kiti , "末吉" , count_suekiti , "小吉" , count_syokiti , "凶" , count_kyo , "大凶" , count_daikyo)
break
if __name__ == '__main__':
main()
もしかしたらネストとか、OKウェーブの仕様上壊れてしまうかもしれません。。。よろしくお願いします
お礼
>吉・・・普通の日、ある呪文を唱えると良い日になるかも。 どれも秀作だと感心しましたが、謎多くもったいぶった感じのこれが私は一番好きです!! ひいた人に、「えええ!いったい何の呪文よ?」と、是非うろたえてもらいたいです こんなにたくさん考えていただいて本当に助かります。 早速全部使わせていただきますね。 おかげさまでこれでますます盛り上がりそうです♪ スバラシイお答えありがとうございました!!!