为什么这个函数返回 0 而不是随机数

塔伦·穆鲁甘

基本上,我正在尝试创建一个上下楼层的函数,因为它从 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么这个函数总是返回 0

为什么这个`ctypes` 包装函数的返回值是`c_long(0)` 而不是`c_long(3)`?

CUDA随机数并不总是返回0和1

用于生成随机数的函数,而不是随机的

为什么这个总工资函数返回 0?

为什么此刻diff函数返回0而不是1

为什么此函数返回0而不是double?

使用可用的binaryrandom(返回0或1)函数生成整数随机数

为什么javaScript中的这个循环函数不是每次都返回0?我将如何在 python 中做类似的事情?

对象返回随机数,而不是perl中的值

为什么大多数情况下0到4的随机数是1?

为什么这个函数在前端返回数据而不是后端?

返回随机数

随机排序-Fisher Yates,为什么我找不到0到N-1之间的随机数?

为什么[0]是不同的函数,但0不是?

为什么这个数组只选择随机数?

为什么这个方法返回0?

为什么这个递归返回0?

给定范围时,随机数生成器始终返回0

为什么我的函数总是返回 0 而不是返回总和结果?

什么是最佳的方式,从0-9拿到四个独特的随机数?

有什么办法可以让我从0到10亿个随机数获得?

为什么这段代码写/打印所有0.0,而不是不同的随机数?

随机数范围,排除0

如何给全局随机数排除0

随机数始终为0

为什么函数在递归随机数中返回None?

生成随机数并返回

C++ 程序返回“0 0”而不是返回素数。为什么它没有从“prime”函数中得到正确的输出?