[英]Return list from while loop in a function?
我試圖返回一個列表my_list
函數內創建make_list
在功能使用print_elems
。
我不斷收到錯誤
my_list未定義
當我要求打印它時,請調用“ make_list”。
在嘗試返回“ my_list”時我做錯了什么?
def make_list():
my_list = []
print("Enter \"-999\" to return list.")
x = int(input("Enter a number: "))
while x != -999:
my_list.append(x)
x = int(input("Enter a number: "))
return my_list
def print_elems(user_list):
print(user_list, sep=' ')
make_list()
print(my_list)
print_elems(my_list)
您正在嘗試訪問局部變量my_list
。 您必須通過將返回值分配給變量來使用它:
some_name = make_list() # assign function result to variable
print(some_name)
print_elems(some_name)
附帶一提,您可能需要略微修改print_elems
:
def print_elems(user_list):
print(*user_list, sep=' ')
*
將列表解壓縮 ,並將其元素傳遞給print
功能。 否則,當將單個位置參數傳遞給print
,將永遠不會使用sep
參數。
您需要將函數的返回值分配給變量:
tata = make_list()
print(tata)
當離開定義它的函數的作用域時,變量my_list
被破壞。 這就是為什么您退還它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.