簡體   English   中英

從while循環返回函數列表?

[英]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被破壞。 這就是為什么您退還它。


請參閱范圍規則的簡短說明? PyTut:作用域和名稱空間

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM