我已经自学了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)
我尝试过定义变量
除了所有内容之外,如果我这样做,那么在执行函数后值不会发生变化。
我还尝试在getlistlen()下声明list1len和list2len,但函数generatelist()无法检索list1len和list2len的值。
我该如何解决这个问题?
根据我的理解,函数外部的变量只会在函数内部发生变化时发生变化,但是,如果在函数内部重新声明它们,它们就不会改变。
使用Python 2.7.12,IDLE IDE。
谢谢!
答案 0 :(得分:0)
您需要将已定义的变量传递给函数 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(),然后将其用于另一个函数以计算列表。