很多 Python 的初学者都会遇到这个问题,return
和 print
函数的区别是什么?区别就在于 return
是返回值,而 print
函数是打印值。
def break_words(stuff): words = stuff.split(' ') print(words) sentence = "All good things come to those who wait." break_words(sentence) ['All', 'good', 'things', 'come', 'to', 'those', 'who', 'wait.']
return
def break_words(stuff): words = stuff.split(' ') return words sentence = "All good things come to those who wait." break_words(sentence) # 无内容输出
使用 print
函数打印返回值
- 有
return
def break_words(stuff): words = stuff.split(' ') return words sentence = "All good things come to those who wait." s = break_words(sentence) print(s) ['All', 'good', 'things', 'come', 'to', 'those', 'who', 'wait.']
- 无
return
def break_words(stuff): words = stuff.split(' ') sentence = "All good things come to those who wait." s = break_words(sentence) print(s) None
没有 return
语句,所以没能给函数 break_words()
赋值,打印出来也就是空值 None
,即函数若无返回值,则默认返回 None
。
def foo(): print("In the foo...") def bar(): print("In the bar...") return foo func = bar() print(func()) In the bar... In the foo... None
return 和 print 的区别
-
在执行函数的时候
return
无法打印出值,return
返回的结果只能用于给变量赋值。而pirnt
则可以直接打印。 -
在函数中,凡是遇到
return
,这个函数就会结束,这里要特别注意。针对无限循环的函数,可以使用return
来终止循环。
# 退出循环 def func1(): for i in range(1, 5): print(i) def func2(): for i in range(1, 5): return i func1() print('-----------------') print(func2()) 1 2 3 4 ----------------- 1
程序读到 return
语句,其后面的语句不会再被执行,所以 print(func2())
,只输出 "1" 这个结果就退出了;
而 print()
语句则不同,其后面的语句依然会被执行,所以调用 func1()
时,值 "1"、"2"、"3"、"4" 都输出了。
- 在交互模式下,
return
的结果会自动打印出来,而作为脚本单独运行时则需要print
函数才能显示。
# 交互模式下 >>> x = 1 >>> y = 2 >>> def add(): ... return x + y ... >>> add() 3
return 和 print 的结合
def f_hello(): x = "HELLO" print(x) def f_return(): x = "RETURN" return x def main(): Hello = f_hello() Return = f_return() print("this is %s " % Hello) print("that is %s " % Return) if __name__ == "__main__": main() HELLO this is None that is RETURN
f_hello()
函数无返回值, 所以打印 None
。
参考文章
https://www.cnblogs.com/xxtalhr/p/10742671.html
https://www.cnblogs.com/huskiesir/p/10376393.html
原创文章,转载请注明出处:http://www.opcoder.cn/article/32/