python中def和return是必须使用吗-闲话Python之def中傻傻分不清的print和return

Python也是提供了接口让开发者运用Python语言去自行开发函数的,而这个接口的载体就是def,接下来就让我们通过几个例子看下这个def的一些常用的用法。

请看下面这段代码:

def add(num1,num2):

result=num1+num2

return(result)

add(1,2)

###系统返回的结果:

3

在上面的代码中我们通过def定义了一个add函数,让它成为将传入它的两个参数相加的函数,当然了不仅支持加法,其他算数运算也是都支持的,比如下面这段代码:

def add1(num1,num2,num3):

equal=(num1+num2)*num3

print("("+str(num1)+"+"+str(num2)+")"+"*"+str(num3)+"="+str(equal))

add1(1,2,3)

###系统返回的结果:

(1+2)*3=9

也可以直接调用参数且顺序可以打乱:

def printinfo(name,age):

print ("名字: ",name)

print ("年龄: ",age)

printinfo("Lihua",22)

###系统返回的结果:

名字: Lihua

年龄: 22

细心地同学可能一经发现到了,以上def语句最后显示函数计算结果的语句有用print的,也有用return的,那么在def中这两者到底有什么不同呢,下面就让我根据我自己试验的一些结果来为大家揭晓答案,噔噔噔噔噔~

我们先看下这段代码:

def add(num1,num2):

result=num1+num2

return(result)

add(1,2)

def add1(num1,num2):

result=num1+num2

print(result)

add1(1,2)

###系统返回的答案:

3

3

没毛病,都是给到一个2+1的值,我们再来看看这个:

def add(num1,num2):

result=num1+num2

return(result)

print(result)

add(1,2)

###系统返回的答案:

3

诶,这就奇怪了,只返回一个,明明def里有一个return和一个print,那么这个3,是哪个返回的呢?我们接着看以下这段代码:

def printinfo(name,age):

return ("名字: ",name)

print ("年龄: ",age)

printinfo("Lihua",22)

###系统返回的结果:

("名字: ", "Lihua")

函数只返回了return的结果而后面的print语句就直接被忽略了,由此我们可以得出结论def函数其实运行完return之后其实就结束了,上个def的3其实也是return(1+2)的返回,后面的print(1+2)并未被执行,return就是def的终点,其实按照字面意思来理解,return翻译过来就是返回的意思,而print仅仅是打印的意思,一个函数的作用按道理来讲当然是应该要返回一个值,而不是打印一个值,是吧?

那如何将print也执行呢,这还不简单么,既然return是def的终点,那直接将print指令放在return指令的前面不就结了

def printinfo(name,age):

print ("名字: ",name)

return ("年龄: ",age)

printinfo("Lihua",22)

###系统返回的结果:

名字: Lihua

("年龄: ", 22)

从二者返回的值也可以看出来,return返回的值是处于一种待引用的状态,而print返回的值就是直接呈现的结果,不信咱们再举一个例子:

def add(num1,num2):

result=num1+num2

return(result)

c=add(1,2)

print(c)

###系统返回的结果:

3

add函数return了1+2的值,然后赋值给c,所以print(c)的结果就是3

def add(num1,num2):

result=num1+num2

print(result)

c=add(1,2)

>>>3

print(c)

>>>None

而在这个def中,因为用的是print,所以c=add(1,2)按下回车后就直接会打印一个3,并不会返回一个可以饮用的值,所以后面print(c)就是一个None,表示c并没有被赋予什么值。怎么样,是不是也挺简单的,下次再使用def的时候记得分清这两者用法的区别,别犯错哦~

  • 17
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值