苏州加基森网站建设,成都游戏网站建设,wordpress创建栏目,网站首页制作采用1. 懒惰是种美德
前面编写的程序都很小#xff0c;但如果要编写大型程序#xff0c;你很快会遇到麻烦。想想看#xff0c;如果你在一个地方编写了一些代码#xff0c;但需要在另一个地方再次使用#xff0c;该如何办?例如#xff0c;假设你编写了一段代码#xff0c;他…1. 懒惰是种美德
前面编写的程序都很小但如果要编写大型程序你很快会遇到麻烦。想想看如果你在一个地方编写了一些代码但需要在另一个地方再次使用该如何办?例如假设你编写了一段代码他计算一些斐波那契数(一种数列其中每个数都是前俩个数的和)。
fib[0,1]
for i in range(8):fib.append(fib[-2]fib[-1])
运行上述代码后fib将包含前十个斐波那契数 fib
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55]如果要使用这些数字做其他的事情该如何办呢?当然你可以在需要时再次编写这个循环但如果已编写好的代码更复杂呢?在这种情况下你还愿意多次编写这些代码吗(每当需要就编写一次) 不真正的程序员是不会这样做的真正的程序员很懒。这里说的懒不是贬义词而是说不做无谓的工作。 那么真正的程序员会如何做呢?让程序更抽象。要让前面的程序更抽象。例如下面
numinput(how many numbers do you want)
print(fib(num))
在这里只具体地编写了这个程序独特的部分读取数字并打印结果。实际上斐波那契数的计算是以抽象的方式完成的你只是让计算机这样做没有具体告诉它如何做。你创建了一个名为fibs的函数并在需要计算斐波那契时调用它。如果需要多个地方计算斐波那契数这样做可省很多精力。
2. 自定义函数
函数执行特定的操作并返回一个值你可以调用它.一般而言要判断某个对象是否可调用可用内置函数callable. import mathx1ymath.sqrtcallable(x)
Falsecallable(y)
True函数是结构化编程的核心。那么如何定义函数呢? 使用def(表示定义函数) def hello(name):
... return 1name2运行这些代码后将有一个hello的新函数。它返回一个字符串。 那我们编写一个返回斐波那契数列的列表函数。
def fib(num):s[0,1]for i in range(2,num1):s.append(s[-1]s[-2])return swhile True:numint(input())print(fib(num))
执行这些代码后解释器就知道如何计算斐波那契数了现在你不用再关心这些细节了而只需调用fib. 在这个示例中num和result也可用其他名字但return语句非常重要。return语句用于从函数返回值(在前面的hello函数中return语句的作用也是一样的)。
1. 给函数编写文档
要给函数编写文档以确保其他人能够理解可添加注释以#打头的内容还有另一种编写注释的方式就是添加独立的字符串。在有些地方如def语句后面添加这样的字符串很有用。放在函数开头的字符串称为文档字符串将作为函数的一部分存储起来。
def square(x):一个平方函数return x*xprint(square.__doc__)一个平方函数
doc(注意是俩个连着的下划线)是函数的一个属性。
特殊内置函数helo也很有用。在交互式解释器中可使用它获取有关函数的信息其中包含函数的文档字符串。 help(square)
Help on function square in module __main__:square(x)一个平方函数