[英]How to make random.randint() more random
所以我正在寫我的第一個程序,它最初只是一個滾動隨機骰子值的東西,但是我擴展了它並獲得了更多的樂趣。我遇到的問題是有時這個函數
def mathproblem(stuff):
if stuff == '1':
probuno=int(raw_input("can you solve: sqrt(169)+4"))
if probuno==17:
print('correct you may proceed')
rollify=True
else:
rollify=False
elif stuff=='2':
probdos=int(raw_input("can you solve: 47.9+36-14.8"))
if probdos==69.1:
print('YEEEET')
rollify=True
else:
print('you filthy wanker')
rollify=False
elif stuff == '3':
probtres=int(raw_input("can you solve: 32^2 -sqrt(625)"))
if probtres==399:
print('WOOOO')
rollify=True
else:
print('Wow... that was awful')
rollify=False
elif stuff=='4':
probquatro=int(raw_input("can you solve: ln(1)-e^0"))
if probquatro==-1:
print('MISSION ACCOMPLISHED')
rollify=True
else:
print('your parents probably hate you')
rollify=False
elif stuff=='5':
probcinco=(raw_input("can you solve: sqrt(-1)"))
if probcinco=='i':
print('wow you must be a genius')
rollify=True
else:
print('L')
rollify=False
在這里使用
elif guess>rand:
print('HALT! YOU MAY PROCEED ONLY IF YOU...')
mathproblem(oof)
和oof=random.randint(min,max)
所以每隔一遍又一遍地發送相同的問題,有什么辦法可以使它更加隨機嗎? 編輯:對少年的遺憾;)
“更多隨機”絕對不是您要的。
但是我相信您想要的行為是這樣的:
def not_really_random(r_min, r_max):
seq = range(r_min, r_max+1)
while True:
random.shuffle(seq)
for n in seq:
yield n
for oof in not_really_random(a, b):
mathproblem(oof)
基本上,它將以隨機順序循環遍歷所有不同的問題(在解決所有問題之后,有少許機會在您看到的最后一個問題上重新開始)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.