請教,關于python中在編寫函數時,return和print退格位置不同結果不同的狀況
狀況1:
def?last(): ????a=0 ????while?a<100: ????????a=a+1 ????print?a print?last()
輸出結果是:
100?
None
def?last(): ????a=0 ????while?a<100: ????????a=a+1 ????????print?a print?last()
輸出結果是1~~100外加一個None
狀況2:
def?fun(): ????a=0 ????sum=0 ????while?a<10: ????????sum=sum+a*a ????????a=a+1 ????return?sum print?fun()
輸出結果是 285
def?fun(): ????a=0 ????sum=0 ????while?a<10: ????????sum=sum+a*a ????????a=a+1 ????????return?sum print?fun()
輸出結果是:0
我想請教的問題:1、print和return位置不同分別代表什么意思?2、為什么最后結果中都會出現None?3、return狀況下,第二個為什么輸出值會是0
2015-12-14
首先要弄清楚這兩個詞的含義,print是輸出控制臺的意思,就是打印出來給我們看一下;return是返回值,就是把return后面的參數的值賦予函數的返回值;
1、位置看你上面對齊的命令,第一個print對齊的是while循環,說明要等整個循環完再print,而第二個對準的是a=a+1,說明與這個評級,a賦完值后就要print,所以print先打印了1-100,return也是同理啊。
2、因為沒有return,函數沒有返回值;你打印出來也沒有用啊,函數必須要有返回值了才能打印出來,所以都是none。課程上都說了的“如果沒有return語句,函數執行完畢后也會返回結果,只是結果為 None。”
3、還是跟對齊的解釋一樣,你對齊的是sum=sum+a*a和a=a+1。第一個循環就return了,sum上面的結果就是0啊,課程上也說了“函數體內部的語句在執行時,一旦執行到return時,函數就執行完畢,并將結果返回。”
我覺得我解釋的很細了吧,希望你能理解~