首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python基础教程6.1 懒惰是一种美德

本章介绍如何将语句组合成函数,这让你能够告诉计算机如何完成任务,且只需说一次,无需反复向计算机传达详细指令。本章详细介绍参数和作用域,还将讨论递归是什么及其在程序中的用途。

6.1 懒惰是一种美德

前面编写的程序都很小,但如果要编写大型程序,你很快就会遇到麻烦。想想看,如果你在一个地方编写了一些代码,但需要在另一个地方再次使用,该如何办呢?例如,假设你编写了一段代码,它计算一些斐波那契数(一种数列,其中每个数都是前两个数的和)。

fibs = [0, 1]

for i in range(8):

fibs.append(fibs[-2] + fibs[-1])

运行上述代码后, fibs将包含前10个斐波那契数。

>>> fibs

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

如果你想一次计算前10个斐波那契数,上述代码刚好能满足需求。你甚至可以修改前述for循环,使其处理动态的范围,即让用户指定最终要得到的序列的长度。

fibs = [0, 1]

num = int(input('How many Fibonacci numbers do you want? '))

for i in range(num-2):

fibs.append(fibs[-2] + fibs[-1])

print(fibs)

如果要使用这些数字做其他事情,该如何办呢?当然,你可以在需要时再次编写这个循环,但如果已编写好的代码更复杂呢(如下载一组网页并计算所有单词的使用频率)?在这种情况下,你还愿意多次编写这些代码吗(每当需要时就编写一次)?不,真正的程序员是不会这样做的。

真正的程序员很懒。这里说的懒不是贬义词,而是说不做无谓的工作。

那么真正的程序员会如何做呢?让程序更抽象。要让前面的程序更抽象,可以像下面这样做:

num = input('How many numbers do you want? ')

print(fibs(num))

在这里,只具体地编写了这个程序独特的部分(读取数字并打印结果)。实际上,斐波那契数的计算是以抽象的方式完成的:你只是让计算机这样做,而没有具体地告诉它如何做。你创建了一个名为fibs的函数,并在需要计算斐波那契数时调用它。如果需要在多个地方计算斐波那契数,这样做可节省很多精力。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180927G0RN8B00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券