Python练习笔记——采用生成器函数实现两数之间的素数计算
题目:编写一个生成器函数myprimes(start, end),实现[start, end)范围内的所有素数计算2 3 5 7. ...
第一 常规函数方法
方法1
def myprime(num):
if num == 1:
return False
elif num == 2:
return 2
for i in range(2, num):
if num % i == 0:
return False
return num
def myprimes(start,end):
for i in range(start,end):
if myprime(i):
print(i)
myprimes(1,20)
输出结果:
2 3 5 7 11 13 17 19
方法2
def myprime(num):
if num == 1:
return False
k = int(num/2 +1)
for i in range(2,k):
if num % i == 0:
return False
return num
def myprimes(start,end):
for i in range(start,end):
if myprime(i):
print(i)
myprimes(1,20)
运行结果
2 3 5 7 11 13 17 19
方法3
def myprime(x):
"""判断一个数x是否为素数,如果为素数,
返回True,否则返回False
"""
if x <= 1:
return False
for i in range(2, x):
if x % i == 0:
return False
return True
def myprimes(start, end):
for i in range(start,end):
if myprime(i):
print(i)
myprimes(1,20)
运行结果
2 3 5 7 11 13 17 19
方法4(该方法不用函数)
for i in range(2,20):
fg = 0
for j in range(2,int(i/2)):
if (i % j ==0):
fg=1
if (fg == 0):
print(i)
运行结果
2 3 5 7 11 13 17 19
第二 生成器函数
def myprime(x):
"""判断一个数x是否为素数,如果为素数,
返回True,否则返回False
"""
if x <= 1:
return False
for i in range(2, x):
if x % i == 0:
return False
return True
def myprimes(start, end):
for i in range(start,end):
if myprime(i):
yield i
print([x for x in myprimes(1, 10)])
for x in myprimes(1,10):
print(x)
运行结果
[2, 3, 5, 7] 2 3 5 7
Python练习笔记——采用生成器函数实现两数之间的素数计算的更多相关文章
- Python练习笔记——采用生成器函数实现两数之间的偶数计算
题目:编写一个生成器函数myeven(start, end),采用迭代器逐次实现[start, end)范围内的偶数计算2 4 6 8. ... def myeven(start, end): whi ...
- ES6学习笔记<三> 生成器函数与yield
为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...
- Python学习笔记之常用函数及说明
Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...
- Python学习笔记014——生成器Generator
1 生成器定义 在Python中,一边循环一边计算的机制,称之为生成器(generator). 生成器是一个迭代器. 含有yield语句的函数是生成器函数,该函数被调用时返回一个生成器对象(yield ...
- Python学习笔记之生成器、迭代器和装饰器
这篇文章主要介绍 Python 中几个常用的高级特性,用好这几个特性可以让自己的代码更加 Pythonnic 哦 1.生成器 什么是生成器呢?简单来说,在 Python 中一边循环一边计算的机制称为 ...
- Python学习笔记总结(二)函数和模块
一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句 例子 Calls myfunc(‘diege', ...
- Python学习笔记(Ⅱ)——循环/选择/函数
一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...
- python学习日记(生成器函数进阶)
迭代器和生成器的概念 迭代器 对于list.string.tuple.dict等这些容器对象,使用for循环遍历是很方便的.在后台for语句对容器对象调用iter()函数.iter()是python内 ...
- python学习笔记——高阶函数map()
满足以下两点中任意一点,即为高阶函数: 1.函数接收一个或多个函数作为参数 2.函数返回一个函数 1 描述 用函数和可迭代对象中每一个元素作为参数,计算出新的迭代对象 map() 会根据提供的函数对指 ...
随机推荐
- 第十二章 springboot + mongodb(复杂查询)
简单查询:使用自定义的XxxRepository接口即可.(见 第十一章 springboot + mongodb(简单查询)) 复杂查询:使用MongoTemplate以及一些查询条件构建类(Bas ...
- SQL Server中数据的修改是如何落盘的?
SQL Server 维护着一个叫做buffer cache的东西, 在buffer cache中SQL Server 读取必须被取回的data pages. 数据在修改时并不是直接写到磁盘上的, 而 ...
- 基于Sql Server 2008的分布式数据库的实践(终结)
学习.操作心得 以前在做网站程序的时候一直用的是MYSQL,但是网上搜到MYSQL不支持分布式操作,然后便开始查询MSSQL的分布式数据库的设计与操作,后来在网上找到了<基于SQL SERVER ...
- GridControl 分组排序
方法一:纯代码 this.list.gridControl.ItemsSource = lsItem; this.list.gridControl.GroupBy("GroupTitle&q ...
- 给 TextBlock 加 ToolTip
<TextBlock ToolTip="{Binding RelativeSource={RelativeSource Self},Path=Text}" Text=&quo ...
- Linux上磁盘挂载
Linux磁盘挂载 一. 磁盘分区 在终端输入fdisk –l 命令查看整个系统的分区情况. 能够看到另一个32G的/dev/vdb磁盘没有挂载使用 watermark/2/text/aHR0c ...
- Java高并发syncronized深入理解
1.Synchronized的作用: 能够保证在同一时刻最多只有一个线程执行该段代码,以达到保证并发安全的效果. 2.地位: 1)Synchronized是java的关键字,并java的怨言原生支持: ...
- Activex打包于发布完整版---ActiveX打包
前面介绍了数字证书的原理与制作:http://blog.csdn.net/jiangtongcn/article/details/13508365,下面来看一下ActiveX组件的打包. 我现在有一个 ...
- GLSL语言内置的变量详解
GLSL语言内置的变量,包括内置的顶点属性(attribute).一致变量(uniform).易变变量(varying)以及常量(const),一方面加深印象,另一方面今天的文章可以为以后的编程做查询 ...
- vim中的高亮全部同样单词的方法
用vim时,想高亮显示一个单词并查找的方发.将光标移动到所找单词. 1: shift + "*" 向下查找并高亮显示 2: shift + "#" 向上查找 ...