基本上,我正在尝试创建一个上下楼层的函数,因为它从 1 - 6 中选择一个随机数。但是,它返回一堆 0 而不是随机数列表。一直持续到第100层。
我已经尝试将 'f' 变量的定义移动到不同的位置,看看它是否有效,我尝试改变它计算是向上还是向下移动的方式。
def roll():
f=0
arry = []
count = 0
while count is not 100:
numb = randint(1,6)
if numb is 1 or 2:
f-1
elif numb is 3 or 4 or 5:
f+1
else:
f + randint(1,6)
count=count+1
arry.append(f)
return arry
实际结果应该是一系列随机数,但我得到的是一堆 0。
对于为什么会得到零数组的简短回答是,每次通过循环时,您都会附加 的值f
,该值在代码中永远不会改变。它很早就被初始化为 0,但从未改变。你会想写
f -= 1
和
f += 1
和
f += randint(1,6)
但是,还有一些错误需要纠正,这对于初学者来说很常见。例如,你写道:
if numb is 1 or 2:
这将始终是True
因为在 Python 中这与以下内容相同:
if (numb is 1) or 2:
你应该写:
if numb == 1 or numb == 2:
甚至:
if numb in (1, 2):
对下一个条件做同样的事情,例如:
if numb in (3, 4, 5):
另外,is not
在处理数字时避免使用,!=
而是使用。
这应该让你真正接近你正在寻找的东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句