简介Python版本选择

本文对Python的版本选择,IDE选择及编码的解决方案进行了一番详细的描述,实为Python初学者必读的Python学习经验心得,一种方式是主程序使用一门高级语言,比如C++进行编写,然后对其嵌入一个脚本解释器,在运行时动态执行一些脚本函数;

创新互联公司服务项目包括闽清网站建设、闽清网站制作、闽清网页制作以及闽清网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,闽清网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到闽清省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

但正如我们可以使用数字 23 而无需将它与任何名称绑定一样(换句话说,象函数自变量一样),我们可以使用用 lambda 创建的函数对象而不用将它与任何名称绑定。一个函数只是我们在 Python 中对其执行某些操作的另一个值。

我们对第一类对象所执行的主要操作是将它们传递给 FP 内置函数 map()、reduce() 和 filter()。这些函数中的每一个都接受函数对象作为其第一个自变量。 map() 对指定列表中每个对应的项执行传递的函数,并返回结果列表。

 reduce() 对每个后续项执行传递的函数,返回的是最终结果的内部累加;例如 reduce(lambda n,m:n*m, range(1,10)) 意味着“10 的阶乘”(换句话说,用每一项乘上前一次相乘的乘积)。 #t#

filter() 使用传递的函数对列表中的每一项“求值”,然后返回经过甄别的,通过了传递函数测试的项的列表。 我们还经常将函数对象传递给自己的定制函数,但它们通常等同于上述内置函数的组合。

通过将这三种 FP 内置函数进行组合,可以执行惊人的一系列“流”操作(都不使用语句,而只使用表达式)。 Python 中的函数循环 替换循环与替换条件块一样简单。

for 可以直接转换成 map()。对于我们的条件执行,我们需要将语句块简化成单一函数调用(我们正逐步接近通常的做法):while 的转换仍需要 while_block() 函数,它本身包含语句而不仅仅是表达式。但我们需要对该函数做进一步的消除(例如对模板中的 if/else 进行短路)。

另外,因为循环主体(按设计)无法更改任何变量值,所以 很难用在一般的测试中,例如 while myvar==7(那么,将在 while_block() 中修改全部内容)。添加更有用条件的一个方法是让 while_block() 返回一个更有趣的值,然后将这个返回值与终止条件进行比较。有必要看一下这些消除语句的具体示例:

 
 
 
  1. # imperative version of "echo()" 
  2. def echo_IMP(): 
  3. while 1: 
  4. x = raw_input("IMP -- ") 
  5. if x == 'quit': 
  6. break 
  7. else 
  8. print x 
  9. echo_IMP() 
  10. # utility function for "identity with side-effect" 
  11. def monadic_print(x): 
  12. print x 
  13. return x 
  14. # FP version of "echo()" 
  15. echo_FP = lambda: monadic_print(raw_input("FP -- "))=='quit' or echo_FP() 
  16. echo_FP() 

我们所完成的是设法将涉及 I/O、循环和条件语句的小程序表示成一个带有递归的纯表达式(实际上,如果需要,可以表示成能传递到任何其它地方的函数对象)。我们的确仍然利用了实用程序函数 monadic_print(),但这个函数是完全一般性的,可以在我们以后创建的每个函数程序表达式中重用(它是一次性成本)。

请注意,任何包含 monadic_print(x) 的表达式所求值的结果都是相同的,就象它只包含 x 一样。FP(特别是 Haskell)对于“不执行任何操作,在进程中有副作用”的函数具有“单一体”意思。

网页标题:简介Python版本选择
网站地址:http://www.shufengxianlan.com/qtweb/news33/280383.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联