ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Python函数return后的代码_写了也是白写

Python函数return后的代码_写了也是白写 之前的那一篇相关文章阐述了None这种情况, 提及函数要是不进行返回值的设置那么就会默认返回None。如此一来问题便产生了, 具体是怎样去设置返回值呢? 而答案仅仅就是一个词汇。不能丢。但存在着这么一种情况, 有着一个“暴脾气”, 只要它一出现, 函数就会马上终止结束, 后续的代码哪怕一行都不会去执行, 即便写了那也是等于白写, 毫无意义。一、什么是返回值在函数执行结束之后, 将执行期间所产生的结果交付给调用该函数的一方, 而这个被交付的结果便是返回值, 先来看一下定义。其实你早就用过返回值了只是没注意res1 type(hello) # 返回值是 str res2 int(15.6) # 返回值是 15 res3 ord(a) # 返回值是 97 res4 chr(65) # 返回值是 a res5 bool(300) # 返回值是 True这儿的这些内置函数, 全部都是有着返回值的, 你只要使用变量去接住, 如此这般就能够拿到结果了。那么, 针对于自定义函数来讲?二、自定义函数不写 → 返回None来看一个自定义函数计算两个数的和def add(n1, n2): print(f收到{n1}和{n2}相加结果是{n1 n2}) result add(100, 200) print(result) # 运行结果 # 收到100和200相加结果是300 # None ← result 接收到的是 None那个函数明明已经打印出了300, 然而呈现出来的结果却是None, 这是为何呢? 原因在于print就只是把对应的信息展示在屏幕之上, 它和返回值之间不存在任何关联。函数要是没有进行明确的编写, 那就没办法知晓究竟该返回什么内容, 如此一来就只能默认返回None。生活类比跑腿小哥你雇了个跑腿小哥函数让他去买菜。一位小哥, 在店门口, 扯着嗓子喊了一句, “东西买到了”, 你听见了, 然而手上并没有拿着东西。• 小哥把东西亲手交到你手上你真正拿到了结果• 没写 小哥跑完腿空着手回来了Noneprint是喊一嗓子才是交到你手上。两码事。三、关键字一句话干两件事想给函数设置返回值就得用 关键字。它干两件事给add函数加上def add(n1, n2): answer n1 n2 return answer # 结束函数把answer的值返回给调用者 result add(100, 200) print(result) # 运行结果300这回就是300了不再是None。后面不一定要写变量后面可以写变量、写值也可以直接写运算表达式# 写法一先算好再返回变量 answer n1 n2 return answer # 写法二直接返回运算结果更简洁 return n1 n2先将运算算出来, 之后把算出来的结果作为返回值交出去, 两种写法的效果是一样的, 要留意和后面的值之间得有一个空格。四、后的代码写了也是白写这属于本文最为关键重要的知识点范畴, 当一旦执行, 函数便马上“下班”, 后续的所有代码都将全然不再执行。def add(n1, n2): return n1 n2 print(add函数执行完毕了) # ← 这行永远不会执行 result add(100, 200) # 运行结果300 # add函数执行完毕了 根本没打印倘若在这一行出现飘红警告, 其内容为: 此代码不可达到, 这所表达的意思是, 这一行代码永远都无法运行到。️ 铁律紧接着的下一行不要再去写代码了, 即便去写了那也是白白地写。函数只要执行到那个位置就如同到点“打卡下班”了, 在这之后的事情它是全然不会去管的。假如, 你真的, 确实, 是想要, 在于函数结束的时候, 去打印出一句话, 那该怎么办呢, 很简单, 把print写在上面即可:def add(n1, n2): print(add函数执行完毕了) # ← 先打印 return n1 n2 # ← 再返回并结束 result add(100, 200) # 运行结果 # add函数执行完毕了 # 300五、的四种写法返回None的是第三种以及第四种情况。由于返回None跟不写所呈现的效果并无差异, 于是就出现了这样一种情况, 那便是写了None的话, 反倒比不上直接不写, 这无疑是做了多余的事。一个说法澄清由于None意味着“空”以及“无意义”, 于是在一个函数返回None之际, 众人习惯于讲“这个函数没有返回值”。然而严格来讲, 它返回了None, 只是None太过“空”了, 差不多等同于没有。六、print函数有没有返回值能考倒一片新手的乃是这个问题, print可将内容打印至屏幕之上, 它存有返回值吗。res print(hello) print(res) # 运行结果 # hello ← print打印的内容 # None ← print的返回值是Noneprint具备打印东西的功能, 然而它不会返回任何具有意义的值, 它所返回的值是None。这便证实了先前讲的, print是“喊一嗓子”, 与返回值不存在关联。一个函数可不可以予以打印内容, 跟它有没有返回值, 是两件彼此独立的事情。七、print和该用哪个这取决于你的设计场景做法只想在屏幕上看结果只写print不写想把结果交给调用者处理只写不写print既要显示又要返回print和都写众多新手觉得print完就等同于返回了, 然而调用者获取到的始终是None, 进而使得代码到处出问题报错。要记住: print是用来给屏幕展示的, 是面向调用者的。八、总结五条铁律规则一句话不写函数默认返回None干两件事结束函数 返回值后的代码不执行写了也是白写None等于不写多此一举print ≠print给屏幕看给调用者宛若跑腿小哥把某样物品递送到你手中, 递完便离去, 后续之事不再理会。倘若你琢磨着让其在离开之前再帮你去做一件事情, 那么就在“递送物品”之前将此事布置妥当。上一篇学过了None, 这一篇又学了, 如今你终于弄明白函数为何返回None了, 并非是bug, 而是你忘记写了。
返回列表