簡體   English   中英

為什么 output 最后一直返回“無”值?

[英]Why does the output keep returning a 'None' value at the last?

def range_test(start, end):
    while start <= end:
        print(start)
        start+=1

print(range_test(1,5))

Output:

1
2
3
4
5
None

Process finished with exit code 0

您是說要打印 range_test 的range_test ,但您沒有返回任何值。

要解決此問題,只需刪除打印並運行range_test(1, 5)

最后的Nonerange_test返回的None 將其更改為:

def range_test(start, end):
    while start <= end:
        print(start)
        start+=1

range_test(1,5)  # this function already prints, no need to print its return

或者,如果您希望range_test返回可以打印的內容(而不是打印本身並且什么都不返回),請執行以下操作:

def range_test(start, end):
    to_print = ""
    while start <= end:
        to_print += f"{start}\n"
        start+=1
    return to_print

print(range_test(1,5))

您沒有在代碼中定義return值,因此默認情況下它返回 None。 調用print(func)打印返回的值。 如果您執行以下任一操作,它將正常顯示:

def range_test(start, end):
    while start <= end:
        print(start)
        start+=1

range_test(1,5)

def range_test(start, end):
    range_list = []
    while start <= end:
        range_list.append(start)
        start+=1
    return "\n".join(range_list)
range_test(1,5)

暫無
暫無

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

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