发布于2020-02-25 16:48 阅读(1072) 评论(0) 点赞(24) 收藏(1)
调用一个有返回值的函数会生成一个返回值;通常将这个返回值赋值给变量或者作为表达式的一部分;
def area(radius):
a = math.pi * radius**2
return a
return
语句意味着:立即从该函数返回,并且使用接下来的表达式作为返回值;返回值可以是任意复杂的;
- 随着函数越来越复杂,调试的时间会越来越多;为了应对负载的程序,可以尝试增量式开发;
- 增量式开发的目标,是通过每次只增加和测试少量代码,来避免长时间的调试;
pass
或者其他的return
语句进行代替;当这个函数头可以运行的时候,再往函数体中增加代码;
- 我们可以从一个函数的内部调用另一个函数;
- 一些临时变量对于开发很有用,但是一旦程序正确运行了,我们可以通过合并函数调用,使得程序更加简洁;
- 这种类型的函数可以返回布尔类型(booleans),通常对于隐藏函数内部的复杂测试代码非常有用;
- 布尔函数通常用于条件语句中;
def is_divisible(x, y):
if x%y == 0:
return true;
else:
return false;
==
的返回值是Boolean类型,可以直接使用这个来简化上面的代码:
def is_divisible(x, y):
return x % y == 0
到目前为止,虽然学到的知识Python中很小的一个子集,但是实际上,这已经是一个完备的编程语言,这意味着任何能够被计算的东西都可以用这个语言表达;
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
- 跟随程序的执行流程读代码,是一种方法,但是可能很快就会变得错综复杂;
- 另一种方法:当遇到一个函数的时候,不去跟踪函数的执行流程,而是假设这个函数正确运行并且返回了正确的结果;
- 事实上,使用内建函数的时候已经使用的了这种方法,我们总是假设,这个内建函数的执行是正确的;
- 使用递归函数也是一样的,我们不再顺着执行流程,而是假设每次递归都能正确执行;
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacii(n-1)+fibonacci(n-2)
- 上面的函数中,当输入的参数是一个非整数的时候,这时候,递归将无限进行下去,因为没有边界;
- 我们需要检查传入的参数是不是我们所希望的类型;
isinstance
来验证实参的类型:def factorial(n):
if not isinstance(n, int):
print('Factorial is only defined for integers.')
return None
elif n<0:
print('Factorial is not defined for negative integers.')
return None
elif n == 0:
return 1
else:
return factorial(n-1)*n
将一个大程序分解为若干较小的函数,为程序的调试生成的自然的检查点;当一个程序不能如预期运行的时候,需要考虑的情况:
为排除这种可能性,可以在函数的开始增加一条
如果函数的形参没有问题,则在函数的
return
之前,打印结果、返回值;考虑用一些简单的值调用这个函数;
要确保返回值被正确地使用;
作者:进击的巨人
链接:https://www.pythonheidong.com/blog/article/233567/00bf7cf8b63d769db719/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!