プログラミング 添削 おみくじ関数
プログラミング初心者です!今大学生で、新卒でエンジニアになりたいと考えているものです!
おみくじをする関数を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ウェーブの仕様上壊れてしまうかもしれません。。。よろしくお願いします
お礼
そんなに細かくなっているんですね・・・ありがとうございました!