博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的练习题:1-100奇数求和(涉及匿名函数filter lambda 的使用)
阅读量:5212 次
发布时间:2019-06-14

本文共 1756 字,大约阅读时间需要 5 分钟。

题目一: #首先 代码实现1-100奇数求和 #其次 用一行代码实现
total=0 for i in range(1,101):     if i%2==1:         total=total+i print('total:',total) 上面的基础写法,ok. 注意点:奇数的判断条件是:i%2==1
# 姿势一:filter+lambda print(sum(list(filter(lambda x: x%2==1, range(1, 101)))))
#姿势二:if print(sum([x for x in range(1, 101) if x%2==1])) print(x for x in range(1,101) if x%2==1)  #打印出来其实是一个内存地址 # 姿势三:so easy print(sum(range(1, 101, 2))) print(range(1,101,2))# d打印结果就是:print(range(1,101,2))
print(list(range(1,101,2)))#打印结果[1,3,5.7.9,……]

============================================================

延伸阅读:lambda的介绍、filter的介绍

语法格式

lambda argument1,argument2,...argumentN :expression using arguments

1、lambda是一个表达式,而不是一个语句。

因为这一点,lambda可以出现在python语法不允许def出现的地方---例如,在一个列表常量中或者函数调用的参数中,此外,作为一个表达式,lambda返回一个值一个值(一个新的函数),可以选择性地值给一个变量名。相反,def语句总是得在头部将一个新的函数赋值给一个变量名,而不是将这个函数作为结果返回。

2、lambda 的主体是一个单个的表达式,而不是一个代码块。

lambda是一个为编写简单的函数设计的,而def用来处理更大的任务。

Example:

>>>f=lambda x,y,z: x+y+z

>>>f(2,3,4)

参照:https://www.cnblogs.com/MrFiona/p/5958916.html

>>> add = lambda x,y : x+y

>>> add(5,6)
>>> (lambda x,y:x+y)(5,6)

 filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)返回:

filter(lambda x: x%2==1, range(1, 101)) 按照lambda表达式的奇数判断条件,返回所有奇数,but直接print(filter(……))的一个内存地址,需要转换为list(),才能print 所有的奇数

参照:https://www.cnblogs.com/longdouhzt/archive/2012/05/19/2508844.html  

  • range(101)可以产生一个0到100的整数序列。
  • range(1, 100)可以产生一个1到99的整数序列。
  • range(1, 100, 2)可以产生一个1到99的奇数序列,其中的2是步长 
  • 如果明确的知道循环执行的次数或者要对一个容器进行迭代(后面会讲到),那么我们推荐使用for-in循环
  • 如果不知道具体循环次数的,推荐使用while循环。while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True循环继续,表达式的值为False循环结束。

参考答案: https://gitee.com/UncleYong/exercise/blob/master/sumOfOddNumber.py                 

转载于:https://www.cnblogs.com/ww-xiaowei/p/11224302.html

你可能感兴趣的文章
Linux_ 4、Linux下的C编程
查看>>
leetcode——Maximum Gap
查看>>
各种排序算法的代码
查看>>
JDBC常见面试题集锦(二)
查看>>
Cisco AP-Flexconnect配置结果
查看>>
mDNS故障排查(译)
查看>>
list通过比较器进行排序
查看>>
使用SQL行转列函数pivot遇到的问题
查看>>
SpringMVC深度探险(四) —— SpringMVC核心配置文件详解
查看>>
XML 创建
查看>>
http-https php文件下载
查看>>
html--onreadystatechange属性
查看>>
BZOJ 2553 禁忌
查看>>
6.15 考试修改+总结
查看>>
综合布线系统---常见机柜尺寸
查看>>
数字货币钱包安全白皮书
查看>>
python第十天
查看>>
python第十九天——感冒中
查看>>
51nod1962区间计数
查看>>
.Net之美读书笔记8
查看>>