Python函数式编程简单示例
来源:互联网 发布:云计算需要考什么证书 编辑:程序博客网 时间:2024/05/21 16:59
斐波那契数列
思路:1.将相应位置上的数值先求出来,2.利用map计算出数列
def f(n): if n == 0: return 0 elif n == 1: return 1 else: return f(n-2)+f(n-1)if __name__ == "__main__": print map(f, range(1,11))
打印结果
[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
n!+(n-1)! + … + 2!+1!
思路:1. 先写出求阶乘的函数,2.再用reduce求和
先写求阶乘的函数:
# coding:utf-8def factorial(n): return reduce(lambda x,y:x*y, range(1,n+1)) # 返回 n*(n-1)*...*2*1
再用reduce求和
def fact_sum(n): # map 将n,n-1,...,2,1的阶乘算出来放在一个列表内 # reduce 将列表内的所有数进行相加 return reduce(lambda x,y:x+y, map(factorial, range(1,n+1)))
将这两个函数合在一起表示:
#求10!+9!+...+2!+1!print reduce(lambda x,y:x+y, map(lambda n:reduce(lambda x,y:x*y, range(1,n+1)), range(1,10+1)))
用到函数式编程,代码量确实精简了许多。很显然,这一行代码的可读性很差,所以一般情况下,函数式编程需要用得教合理为宜。
计算(a,b)之间的质数
思路:1.先写出算质数的函数,2.用filter方法将符合的质数筛选出来。
求质数:
def prime(n): j = not [n%k for k in range(2,n/2+1) if not n%k] # 列表推导,一个数n对2,3,4...n/2-1,n/2求余,若能整除,则列表中必有一个元素0 # 再将列表用bool表示,能整除时列表为True,不能整除时列表为False, # 取反:not [...] 能整除时列表为False非质数,不能整除时列表为True质数 # 说一下k的范围为什么是(2,n/2+1),k实际取值是 2到n/2. 首先是为了节省计算的时间空间, # n最小能被2整除,所以当k等于n/2时 # n/2+1,n/2+2,...n-1 后面的可以不用再算了,肯定是除不尽的。大家可以用一个奇数一个偶数来试试 # 奇数n=15,k取到n/2=7即可,没错吧? # 偶数n=16,k取到n/2=8即可,也没问题。 return j
使用filter将某个区间符合条件的质数筛选出来
def is_prime(a,b): filter(prime, range(a,b+1)))
一句话表示:
# 求1000-1100之间的质数print(filter(lambda x:not [x%i for i in range(2,x/2+1) if not x%i], range(1000,1100+1)))
阅读全文
0 0
- Python函数式编程简单示例
- Python 简单 Socket 编程示例
- Python函数定义简单示例
- [Python]TCP编程的简单示例
- [Python]UDP编程的简单示例
- python socket编程 tcp 简单示例
- 【Python-matplotlib】subplot2grid()函数的简单示例
- 1.4 函数式编程示例
- python里面的join函数用法及简单示例
- python函数式编程
- Python 函数式编程
- python 函数式编程
- python函数式编程
- Python:函数式编程
- Python函数式编程
- python 函数式编程
- python函数式编程
- python函数式编程
- 如何防范短信接口被恶意调用(被刷),防止短信轰炸
- Hbuilder快捷键教程
- quartz 定时任务 执行两次
- 将 透明照片加到 图片做 签章用
- JAVAEE企业级应用开发浅谈第一辑
- Python函数式编程简单示例
- Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.tran
- VPN登陆配置
- docker 入门教程
- mysql 将一个表的数据复制到另一个表中
- leetcode 218. The Skyline Problem
- 饮料代理怎么选?哪些品类是市场主流
- equals和==的区别
- fastjson的使用详解