python之print和return的区别

文章目录

  • 一、Python print() 函数
    • 1.1 print 介绍
    • 1.2 print() 语法
  • 二、Python return 函数
    • 2.1 return 介绍与用法
    • 2.2 return意义

一、Python print() 函数

1.1 print 介绍

  如果你的函数只需打印语句,不需要传递值的时候可以使用print代替return
但绝大多数应用中仍需使用return打印值。

  print() 方法用于打印输出,最常见的一个函数。print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个函数,只是一个关键字。


print('*objects','sep','\n','file','flush')

'''运行结果
*objects sep 
 file flush
'''

1.2 print() 语法

语法

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)

参数

  • objects(value, …) – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
  • sep – 用来间隔多个对象,默认值是一个空格。
  • end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
  • file – 要写入的文件对象。
  • flush – flush值为True或者False,默认为Flase,表示是否立刻将输出语句输入到参数file指向的对象中(默认是sys.stdout)

注:
  print() 函数会把内容放到内存中, 内存中的内容并不一定能够及时刷新显示到屏幕中(应该是要满足某个条件,这个条件现在还不清楚)。 使用flush=True之后,会在print结束之后,不管你有没有达到条件,立即将内存中的东西显示到屏幕上,清空缓存。


f = open('flush_Fales.txt', 'w')
print('flush = False', file = f)
'''
运行后打开flush_Fales.txt文件,发现“flush = False”未被写入,文件内容为空。只有f.close()后才将内容写进文件中。

flush参数主要是刷新, 默认flush = False,不刷新,如上面例子,print到f中的内容先存到内存中,
当文件对象关闭时才把内容输出到 flush_Fales.txt 中;而当flush = True时它会立即把内容刷新存到 flush_Fales.txt 中。

如果加入flush = True,即上面代码改为:
'''

f = open('flush_True.txt', 'w')
print('flush = True',file = f, flush = True) #不用f.close()即可将内容写进文件中

举个例子:
  在线web聊天,页面会实时显示聊天的内容, 其实后台是一直在向服务器请求数据的, 正常情况下是请求完毕之后才会输出相应内容, 但是即时聊天,需要一有响应就得立即返回, flush也就起作用了。

flush使用场景:

  • 尤其是在while循环中,要想每进行一次while循环体,在屏幕上更新打印的内容就得使用flush = True的参数。
  • 打 开一个文件, 向其写入字符串, 在关闭文件f.close()之前, 打开文件是看不到写入的字符的。 要想在关闭之前实时的看到写入的字符串,应该用flush = True.

二、Python return 函数

2.1 return 介绍与用法

  通过return语句返回函数的返回值;默认情况下,遇见 return 函数就会返回给调用者,但是 try,finally情况除外;函数体内的语句执行到return时,函数就执行完毕,并将结果返回;

def mul(a, b):
    try:
        print(a * b)
        return 'ok'  # 函数得到了一个返回值
    
    finally:  # finally语句块中的语句依然会执行
        print(a + b)

print(mul(2, 3))


'''运行结果
6
5
ok
'''

  如果函数体内没有return语句,函数执行完毕后返回None;也可以直接写return None,该语句可简写为return

def add(x, y):
    if x == y:
        print(x,y)


print('add(2, 3)返回:',add(2, 3))
print('add(3, 3)返回:',add(3, 3))

'''运行结果
add(2, 3)返回: None
3 3
add(3, 3)返回: None

'''

  return 语句就是讲结果返回到调用的地方,并把程序的控制权一起返回,
程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return。

def add(x, y):
    if x == y:
        return x + y 
        return x #不会返回值

print('add(2, 3)返回:',add(2, 3))
print('add(3, 3)返回:',add(3, 3))

'''运行结果
add(2, 3)返回: None
add(3, 3)返回: 6
'''

  要返回两个数值,写成一行即可:


def add(x, y):
    if x == y:
        return x + y, x


print('add(2, 3)返回:',add(2, 3))
print('add(3, 3)返回:',add(3, 3))

'''运行结果
add(2, 3)返回: None
add(3, 3)返回: (6, 3)
'''

  但是也并不意味着一个函数体中只能有一个return 语句。


def test_return2(x):
    if x > 0:
        return x
    else:
        return 0

print(test_return2(6))

'''运行结果
6
'''

2.2 return意义

  其实说白了,函数就是个你招来的工人。你给他一些材料,告诉他怎么用这些材料拼装,然后他负责把拼装好的成品交给你。材料就是函数的参数,成品是函数的输出,而怎么拼装就是你写的函数体代码了。
  

你可能感兴趣的:(python基础)