Python 当我试图使它成为一个函数时,它不起作用

Python 当我试图使它成为一个函数时,它不起作用,python,Python,所以我在编程过程中做了一个简单的程序,它显示了间隔-5和5之间的100个随机数,没有连续的重复。我第一次没有函数,但是当我试图定义它时,代码停止了工作。由于某种原因,x不在范围内,我无法找出什么是错误的 感谢您的帮助 import random def rand(): lst = [] y = 10 for i in range(0, 100): x = random.randint(-5, 6) while x == y:

所以我在编程过程中做了一个简单的程序,它显示了间隔-5和5之间的100个随机数,没有连续的重复。我第一次没有函数,但是当我试图定义它时,代码停止了工作。由于某种原因,x不在范围内,我无法找出什么是错误的

感谢您的帮助

import random


def rand():
    lst = []
    y = 10

    for i in range(0, 100):
        x = random.randint(-5, 6)
        while x == y:
            x = random.randint(-5, 6)
        lst.append(x)
        x = y
    return rand


print(rand())

这里的问题是:您正在返回一个函数本身。在Python中,这是可能的,实际上,您会惊讶于有多少事情是可能的

我猜您想要做的是返回在for循环中创建的列表,所以正如@Carcigenicate所指出的,这可能是一个输入错误

import random


def rand():
    lst = []
    y = 10

    for i in range(0, 100):
        x = random.randint(-5, 6)
        while x == y:
            x = random.randint(-5, 6)
        lst.append(x)
        x = y
    return lst


print(rand())

你的意思是返回lst吗?我没有得到任何关于x的错误;我刚把兰德公司的参考资料打印出来,因为这是我们要退回的。如果将return rand替换为return lst,则此操作非常有效。投票结束是一个输入错误。这与问题没有直接关系,但是在for循环的底部x=y的目的是什么?x在循环的顶部被重新赋值,因此x=y的效果立即消失。而且,y始终是10,x是介于-5和6之间的随机数,因此x==y永远不会为真。@JohnGordon我想他们的意思是y=x。这就解释了这两个问题。这就是我所想的,但我得到了另一个错误:NameError:name'lst'没有定义是的,谢谢。y=x还解决了另一个问题: