所以我正在编写我的第一个程序,它开始只是一个滚动随机骰子值的东西,但我把它扩展到它更有趣。我遇到的问题是有时候这个函数
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)
所以每隔几次就会一遍又一遍地发出同样的问题,有什么方法可以让它更随意吗?
编辑:抱歉少年的边缘;)
答案 0 :(得分:1)
"更随机"绝对不是你要求的。
但我相信你想要的行为是这样的:
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)
这将基本上循环通过随机顺序中的所有不同问题(在经历所有问题之后,它会在你看到的最后一个问题上再次开始)