题目:编写一个生成器函数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练习笔记——采用生成器函数实现两数之间的素数计算的更多相关文章

  1. Python练习笔记——采用生成器函数实现两数之间的偶数计算

    题目:编写一个生成器函数myeven(start, end),采用迭代器逐次实现[start, end)范围内的偶数计算2 4 6 8. ... def myeven(start, end): whi ...

  2. ES6学习笔记<三> 生成器函数与yield

    为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ...

  3. Python学习笔记之常用函数及说明

    Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ...

  4. Python学习笔记014——生成器Generator

    1 生成器定义 在Python中,一边循环一边计算的机制,称之为生成器(generator). 生成器是一个迭代器. 含有yield语句的函数是生成器函数,该函数被调用时返回一个生成器对象(yield ...

  5. Python学习笔记之生成器、迭代器和装饰器

    这篇文章主要介绍 Python 中几个常用的高级特性,用好这几个特性可以让自己的代码更加 Pythonnic 哦 1.生成器 什么是生成器呢?简单来说,在 Python 中一边循环一边计算的机制称为 ...

  6. Python学习笔记总结(二)函数和模块

    一.函数 函数的作用:可以计算出一个返回值,最大化代码重用,最小化代码冗余,流程的分解. 1.函数相关的语句和表达式 语句        例子 Calls        myfunc(‘diege', ...

  7. Python学习笔记(Ⅱ)——循环/选择/函数

    一.循环结构 python中提供了for循环和while循环两种操作,没有do……while语句. 1.for循环: 与其他语言中for循环的常见的写法如for (int i=0;i<10;i+ ...

  8. python学习日记(生成器函数进阶)

    迭代器和生成器的概念 迭代器 对于list.string.tuple.dict等这些容器对象,使用for循环遍历是很方便的.在后台for语句对容器对象调用iter()函数.iter()是python内 ...

  9. python学习笔记——高阶函数map()

    满足以下两点中任意一点,即为高阶函数: 1.函数接收一个或多个函数作为参数 2.函数返回一个函数 1 描述 用函数和可迭代对象中每一个元素作为参数,计算出新的迭代对象 map() 会根据提供的函数对指 ...

随机推荐

  1. 3D屏保:N皇后

    前几天园子里有人发表关于8皇后的算法.只有代码,没有能运行的DEMO多枯燥.于是我这两天抽时间写了个N皇后的屏保程序.程序启动后会从4皇后到14皇后显示其所有排列,每隔0.5秒自动切换一次.按下空格键 ...

  2. Gson 使用总结 高级用法

    Gson基本用法 参考:http://www.jianshu.com/p/e740196225a4 Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法,前者实现反序列 ...

  3. 深入理解JSON

    一.JS判断字符串是否为JSON的方法: function isJSON(str) { if (typeof str == 'string') { try { JSON.parse(str); ret ...

  4. Cognos定时刷新RS解决方案

    为了了解医院运营情况,在门诊和挂号业务上用户提出了一个接近实时监测的需求,每隔一段时间需要知道当天的挂号量,等待人数,出诊医生等指标来了解医院当天主要科室的就诊情况,以及医疗资源是否分配得当 一:方案 ...

  5. string、wstring、cstring、 char、 tchar、int、dword转换方法(转)

    string.wstring.cstring. char. tchar.int.dword转换方法(转)   最近编程一直头痛这集中类型的转化,明知都可以转却总是记不住,不断的上网查来查去,在这里小结 ...

  6. 从头认识java-特辑-你不知道的main函数

    这一章节我们来讨论一下main函数. 对于这个函数大家都不陌生,并且都习以为常.可是当中有一些东西,还是值得我们去总结的. 1.普通的main package com.ray.test; public ...

  7. 如何使用SubtitleWorkshop制作字幕

    任意打开一段字幕文件 对于初学者而言还是最好打开一个带有中英字幕的视频文件(字幕是嵌入在视频文件里面的)然后一句一句照着写 先打开视频预览模式 再打开一段视频文件,并新建一个字幕文件 牢记几个快捷键 ...

  8. 火狐浏览器Firefox Firefox中的xpi文件是什么

    firefox中的xpi文件是什么? 问一下 最佳答案 XPI是什么? firefox中的xpi实际上类似于IE中的插件或扩展(如Flash插件等). 格式一般为.Zip, 由XUL.Javascri ...

  9. Discuz常见大问题-如何DIY一个独立页面

    首先参考Discuz如何自定义单个页面的文章,确保你已经能做一个"关于我们"这种纯HTML静态页面(只有文字和静态图片描述).其次参考下面的文件修改原来的htm文件 注意我用红色标 ...

  10. nodejs检查已安装模块

    命令行 npm ls --depth 0