正在创建函数,名称未定义并由referen传递

2024-05-11 03:25:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在自学python,已经完成了Udacity上的python简介课程,目前正在这个网站上练习python问题Praticepython.org

我现在在Exercise 10并且已经决定开始将东西放入一个函数中,以使东西更整洁,希望更容易理解。你知道吗

然而,我遇到了一个问题。你知道吗

def getlistlen():
    list1len, list2len = raw_input("Please input the lengths of the 2 lists, seperated by a space: ").split()
    list1len = int(list1len)
    list2len = int(list2len)
    print(list1len)
    print(list2len)
    generatelist()


def generatelist():
    print(list1len)
    print(list2len)
    list1 = []
    list2 = []
    for i in range(1, list1len+1):
        list1.append(random.randint(1,100))

    for i in range(1, list2len+1):
        list2.append(random.randint(1,100))
    print(list1)
    print(list2)

我试过定义变量

  • 列表1len
  • 列表2行
  • 列表1
  • 列表2

但如果我这样做,函数执行后值不会改变。你知道吗

我还尝试在getlistlen()下声明list1len和list2len,但函数generatelist()无法检索list1len和list2len的值。你知道吗

我该怎么解决这个问题?你知道吗

据我所知,来自函数外部的变量只有在函数内部发生的事情改变它们时才会改变,然而,如果在函数内部重新声明它们,它们就不会改变。你知道吗

使用python2.7.12,IDLE IDE。你知道吗

谢谢!你知道吗


Tags: the函数in列表forinputdefint
1条回答
网友
1楼 · 发布于 2024-05-11 03:25:07

您需要将定义的变量传递到函数generatelist()中才能使用它们。 请尝试以下代码:

def generatelist(list1len,list2len):
    print(list1len)
    print(list2len)
    list1 = []
    list2 = []
    for i in range(list1len):
        list1.append(random.randint(1,100))

    for i in range(list2len):
        list2.append(random.randint(1,100))
    print(list1)
    print(list2)


def getlistlen():
    list1len, list2len = raw_input("Please input the lengths of the 2 lists, seperated by a space: ").split()
    list1len = int(list1len)
    list2len = int(list2len)
    print(list1len)
    print(list2len)
    generatelist(list1len,list2len)

首先定义generatelist()并将其应用到另一个函数中以计算列表。你知道吗

相关问题 更多 >