精华内容
下载资源
问答
  • isPrime4()函数功能相同效率不同,可以引入time判断使用的时间 #涉及简单计时http://www.cnblogs.com/didiaoxiaoguai/p/6684094.html strPrime = strPrime + str(j) + " " print(strPrime) #以下为另一写法 def ...

    def isPrime1(n):

    for i in range(2,n):#对2到n取余

    if n % i == 0:

    return False

    else:#注意缩进

    return True

    def isPrime2(n):

    for i in range(2,n//2+1):#对2到n/2取余

    if n % i == 0:

    return False

    else:

    return True

    def isPrime3(n):

    for i in range(2,int(n**0.5)):#对2到根号n取余

    if n % i == 0:

    return False

    else:

    return True

    N = 1000#求素数的范围

    strPrime = ""

    for j in range(2,N):

    if isPrime1(j):#使用isPrime1()  isPrime2 isPrime3() isPrime4()函数功能相同效率不同,可以引入time判断使用的时间

    #涉及简单计时http://www.cnblogs.com/didiaoxiaoguai/p/6684094.html

    strPrime = strPrime + str(j) + " "

    print(strPrime)

    #以下为另一写法

    def isPrime4(n):

    for i in range(3,int(n**0.5),2):#将步长设为2

    if n % i == 0:

    return False

    else:

    return True

    N = 1000 #

    strPrime = "2 "

    for j in range(3,N,2):

    if isPrime4(j):

    strPrime = strPrime + str(j) + " "

    print(strPrime)

    展开全文
  • 概述今天主要分享一个判断素数的实例,一起来看看吧~需求用Python判断101-200之间有多少个素数,并输出所有素数。思路判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是...

    概述

    今天主要分享一个判断素数的实例,一起来看看吧~


    需求

    用Python判断101-200之间有多少个素数,并输出所有素数。


    思路

    判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 用else可以进一步简化代码.


    实现方法

    #/usr/bin/python#需求:用Python判断101-200之间有多少个素数,并输出所有素数。#判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 用else可以进一步简化代码.import mathprint('============第一种方法=================')for i in  range(100,200):flag=0for j in range(2,round(math.sqrt(i))+1):if i%j==0:flag=1breakif flag:continueprint(i)print('============第二种方法=================')print('Simplify the code with "else"')for i in range(100,200):for j in range(2,round(math.sqrt(i))+1):if i%j==0:breakelse:print(i)
    b5d7cba3af5bd1d1cada75127422473a.png

    输出:

    5e758f352c1d8a1d66902c45da4044b8.png
    846fdd32e196c7213796934ba846ffc5.png

    后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!

    0495292d5e4531998a645a39e75c3db7.png
    展开全文
  • 文件和异常实际开发中常常会遇到对数据进行持久化操作的...在Python中实现文件的读写操作其实非常简单,通过Python内置的open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可以...

    文件和异常

    实际开发中常常会遇到对数据进行持久化操作的场景,而实现数据持久化最直接简单的方式就是将数据保存到文件中。

    说到“文件”这个词,可能需要先科普一下关于文件系统的知识,但是这里我们并不浪费笔墨介绍这个概念,请大家自行通过维基百科进行了解。

    在Python中实现文件的读写操作其实非常简单,通过Python内置的open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对象,接下来就可以对文件进行读写操作了。

    这里所说的操作模式是指要打开什么样的文件(字符文件还是二进制文件)以及做什么样的操作(读、写还是追加),具体的如下表所示。

    b7d0f2d7f6505b5b4f941873e389ce5e.png

    下面这张图来自于菜鸟教程网站,它展示了如果根据应用程序的需要来设置操作模式。

    64370fa67c98ab24a06a78dd680ce2b4.png

    读写文本文件

    读取文本文件时,需要在使用open函数时指定好带路径的文件名(可以使用相对路径或绝对路径)并将文件模式设置为'r'(如果不指定,默认值也是'r'),然后通过encoding参数指定编码(如果不指定,默认值是None,那么在读取文件时使用的是操作系统默认的编码)

    如果不能保证保存文件时使用的编码方式与encoding参数指定的编码方式是一致的,那么就可能因无法解码字符而导致读取失败。

    下面的例子演示了如何读取一个纯文本文件。

    def main():    f = open('致橡树.txt', 'r', encoding='utf-8')    print(f.read())    f.close()if __name__ == '__main__':    main()

    请注意上面的代码,如果open函数指定的文件并不存在或者无法打开,那么将引发异常状况导致程序崩溃。

    为了让代码有一定的健壮性和容错性,我们可以使用Python的异常机制对可能在运行时发生状况的代码进行适当的处理,如下所示。

    def main():    f = None    try:        f = open('致橡树.txt', 'r', encoding='utf-8')        print(f.read())    except FileNotFoundError:        print('无法打开指定的文件!')    except LookupError:        print('指定了未知的编码!')    except UnicodeDecodeError:        print('读取文件时解码错误!')    finally:        if f:            f.close()if __name__ == '__main__':    main()

    在Python中,我们可以将那些在运行时可能会出现状况的代码放在try代码块中,在try代码块的后面可以跟上一个或多个except来捕获可能出现的异常状况。

    例如在上面读取文件的过程中,文件找不到会引发FileNotFoundError,指定了未知的编码会引发LookupError,而如果读取文件时无法按指定方式解码会引发UnicodeDecodeError,我们在try后面跟上了三个except分别处理这三种不同的异常状况。

    最后我们使用finally代码块来关闭打开的文件,释放掉程序中获取的外部资源,由于finally块的代码不论程序正常还是异常都会执行到(甚至是调用了sys模块的exit函数退出Python环境,finally块都会被执行,因为exit函数实质上是引发了SystemExit异常),因此我们通常把finally块称为“总是执行代码块”,它最适合用来做释放外部资源的操作。

    如果不愿意在finally代码块中关闭文件对象释放资源,也可以使用上下文语法,通过with关键字指定文件对象的上下文环境并在离开上下文环境时自动释放文件资源,代码如下所示。

    def main():    try:        with open('致橡树.txt', 'r', encoding='utf-8') as f:            print(f.read())    except FileNotFoundError:        print('无法打开指定的文件!')    except LookupError:        print('指定了未知的编码!')    except UnicodeDecodeError:        print('读取文件时解码错误!')if __name__ == '__main__':    main()

    除了使用文件对象的read方法读取文件之外,还可以使用for-in循环逐行读取或者用readlines方法将文件按行读取到一个列表容器中,代码如下所示。

    import timedef main():    # 一次性读取整个文件内容    with open('致橡树.txt', 'r', encoding='utf-8') as f:        print(f.read())    # 通过for-in循环逐行读取    with open('致橡树.txt', mode='r') as f:        for line in f:            print(line, end='')            time.sleep(0.5)    print()    # 读取文件按行读取到列表中    with open('致橡树.txt') as f:        lines = f.readlines()    print(lines)    if __name__ == '__main__':    main()

    要将文本信息写入文件文件也非常简单,在使用open函数时指定好文件名并将文件模式设置为'w'即可。注意如果需要对文件内容进行追加式写入,应该将模式设置为'a'。

    如果要写入的文件不存在会自动创建文件而不是引发异常。

    下面的例子演示了如何将1-9999之间的素数分别写入三个文件中(1-99之间的素数保存在a.txt中,100-999之间的素数保存在b.txt中,1000-9999之间的素数保存在c.txt中)。

    from math import sqrtdef is_prime(n):    """判断素数的函数"""    assert n > 0    for factor in range(2, int(sqrt(n)) + 1):        if n % factor == 0:            return False    return True if n != 1 else Falsedef main():    filenames = ('a.txt', 'b.txt', 'c.txt')    fs_list = []    try:        for filename in filenames:            fs_list.append(open(filename, 'w', encoding='utf-8'))        for number in range(1, 10000):            if is_prime(number):                if number < 100:                    fs_list[0].write(str(number) + '')                elif number < 1000:                    fs_list[1].write(str(number) + '')                else:                    fs_list[2].write(str(number) + '')    except IOError as ex:        print(ex)        print('写文件时发生错误!')    finally:        for fs in fs_list:            fs.close()    print('操作完成!')if __name__ == '__main__':    main()

    读写二进制文件

    知道了如何读写文本文件要读写二进制文件也就很简单了,下面的代码实现了复制图片文件的功能。

    def main():    try:        with open('guido.jpg', 'rb') as fs1:            data = fs1.read()            print(type(data))  #         with open('吉多.jpg', 'wb') as fs2:            fs2.write(data)    except FileNotFoundError as e:        print('指定的文件无法打开.')    except IOError as e:        print('读写文件时出现错误.')    print('程序执行结束.')if __name__ == '__main__':    main()

    读写JSON文件

    通过上面的讲解,我们已经知道如何将文本数据和二进制数据保存到文件中,那么这里还有一个问题,如果希望把一个列表或者一个字典中的数据保存到文件中又该怎么做呢?答案是将数据以JSON格式进行保存。

    JSON是“JavaScript Object Notation”的缩写,它本来是JavaScript语言中创建对象的一种字面量语法,现在已经被广泛的应用于跨平台跨语言的数据交换,原因很简单,因为JSON也是纯文本,任何系统任何编程语言处理纯文本都是没有问题的。

    目前JSON基本上已经取代了XML作为异构系统间交换数据的事实标准。关于JSON的知识,更多的可以参考JSON的官方网站,从这个网站也可以了解到每种语言处理JSON数据格式可以使用的工具或三方库,下面是一个JSON的简单例子。

    {    "name": "猿小力",    "age": 38,    "qq": 957658,    "friends": ["王大锤", "白元芳"],    "cars": [        {"brand": "BYD", "max_speed": 180},        {"brand": "Audi", "max_speed": 280},        {"brand": "Benz", "max_speed": 320}    ]}

    可能大家已经注意到了,上面的JSON跟Python中的字典其实是一样一样的,事实上JSON的数据类型和Python的数据类型是很容易找到对应关系的,如下面两张表所示。

    aecb035bde392c24df5dc42ddf2a93ee.png
    fa6ac93b4b0cf76a0f860403fd48c34a.png

    我们使用Python中的json模块就可以将字典或列表以JSON格式保存到文件中,代码如下所示。

    import jsondef main():    mydict = {        'name': '骆昊',        'age': 38,        'qq': 957658,        'friends': ['王大锤', '白元芳'],        'cars': [            {'brand': 'BYD', 'max_speed': 180},            {'brand': 'Audi', 'max_speed': 280},            {'brand': 'Benz', 'max_speed': 320}        ]    }    try:        with open('data.json', 'w', encoding='utf-8') as fs:            json.dump(mydict, fs)    except IOError as e:        print(e)    print('保存数据完成!')if __name__ == '__main__':    main()

    json模块主要有四个比较重要的函数,分别是:

    • dump - 将Python对象按照JSON格式序列化到文件中
    • dumps - 将Python对象处理成JSON格式的字符串
    • load - 将文件中的JSON数据反序列化成对象
    • loads - 将字符串的内容反序列化成Python对象

    这里出现了两个概念,一个叫序列化,一个叫反序列化。

    自由的百科全书维基百科上对这两个概念是这样解释的:“序列化(serialization)在计算机科学的数据处理中,是指将数据结构或对象状态转换为可以存储或传输的形式,这样在需要的时候能够恢复到原先的状态。

    而且通过序列化的数据重新获取字节时,可以利用这些字节来产生原始对象的副本(拷贝)。

    与这个过程相反的动作,即从一系列字节中提取数据结构的操作,就是反序列化(deserialization)”。

    目前绝大多数网络数据服务(或称之为网络API)都是基于HTTP协议提供JSON格式的数据,关于HTTP协议的相关知识,可以看看阮一峰老师的《HTTP协议入门》。

    如果想了解国内的网络数据服务,可以看看聚合数据和阿凡达数据等网站,国外的可以看看{API}Search网站。

    下面的例子演示了如何使用requests模块(封装得足够好的第三方网络访问模块)访问网络API获取国内新闻,如何通过json模块解析JSON数据并显示新闻标题,这个例子使用了天行数据提供的国内新闻数据接口,其中的APIKey需要自己到该网站申请。

    import requestsimport jsondef main():    resp = requests.get('http://api.tianapi.com/guonei/?key=APIKey&num=10')    data_model = json.loads(resp.text)    for news in data_model['newslist']:        print(news['title'])if __name__ == '__main__':    main()

    在Python中要实现序列化和反序列化除了使用json模块之外,还可以使用pickle和shelve模块,但是这两个模块是使用特有的序列化协议来序列化数据,因此序列化后的数据只能被Python识别。

    关于这两个模块的相关知识可以自己看看网络上的资料。

    另外,如果要了解更多的关于Python异常机制的知识,可以看看segmentfault上面的文章《总结:Python中的异常处理》,这篇文章不仅介绍了Python中异常机制的使用,还总结了一系列的最佳实践,很值得一读。

    展开全文
  • 概述今天主要分享一个判断素数的实例,一起来看看吧~需求用Python判断101-200之间有多少个素数,并输出所有素数。思路判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是...

    概述

    今天主要分享一个判断素数的实例,一起来看看吧~


    需求

    用Python判断101-200之间有多少个素数,并输出所有素数。


    思路

    判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 用else可以进一步简化代码.


    实现方法

    #/usr/bin/python#需求:用Python判断101-200之间有多少个素数,并输出所有素数。#判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 用else可以进一步简化代码.import mathprint('============第一种方法=================')for i in  range(100,200):flag=0for j in range(2,round(math.sqrt(i))+1):if i%j==0:flag=1breakif flag:continueprint(i)print('============第二种方法=================')print('Simplify the code with "else"')for i in range(100,200):for j in range(2,round(math.sqrt(i))+1):if i%j==0:breakelse:print(i)
    f4112ce1059d63e0f5bf0f3ba3b6dd78.png

    输出:

    0823a9d033055d1a46592b7ed2b36c48.png
    57bd1adc1466306702205da45b85e7bb.png

    后面会分享更多devops和DBA方面内容,感兴趣的朋友可以关注下!

    4ee95888fbf9bd9ce21102bb86d58a9f.png
    展开全文
  • Python教程学习:文件和异常在实际开发中,常常需要对程序中的数据进行持久...在Python中实现文件的读写操作其实非常简单,通过Python内置的open函数,我们可以指定文件名、操作模式、编码信息等来获得操作文件的对...
  • 常见概念梳理Python中,不仅仅变量的值是可以变化的,类型也是可以随时变化的 Python的变量必须初始化否则提示 is not definedif、while中定义的变量在外面也可以访问,但是在函数中除非定义全局变量否则只能在函数...
  • 转自同名微信公众号 接上题:打印出100~1000里的所有... 判断数字n是否是素数在第7课学过。n = 61199293 for i in range(2,n): if n % i == 0: print(i) print('n is not a prime number') break 循环嵌套在第8...
  • 我们已经学过Python函数的无参数形式和按位传值参数形式,这一课里全面说明Python函数的参数形式。一、带默认值的参数 分数由分子和分母构成,但为什么不输入参数和只输入分子>>>from fractions import ...
  • i=1 while i(i) 【for循环】 在介绍for循环之前,小鱼先补充一个小知识点:range()函数 range()函数在咱们python中是一个数学函数,它包含两个参数,range(x=0,y)中x,y 分别是两个整数,其中x有默认值为0,函数将会...
  • 感谢所有给出意见的大神们,无论什么意见都非常感谢你们花时间看了这个并给出了宝贵的意见。我会根据大家意见不断改进...因为我将对素数的求法的问题转化为了画图的就能解决的问题,这本身就是最重大的突破。并且素...
  • 1 #运用python的数学函数23 importmath45 defisPrime(n):6 if n
  • 来看这一种判断素数(质数)的函数:form math import sartdef is_prime(n):if n==1:return Falsefor i in range(2, int(sqrt(n) + 1)):if n % i == 0:return Falsereturn True看起来,这是一种比较优秀的方法了,...
  • 来看这一种判断素数(质数)的函数:form math import sartdef is_prime(n):if n==1:return Falsefor i in range(2, int(sqrt(n) + 1)):if n % i == 0:return Falsereturn True看起来,这是一种比较优秀的方法了,...
  • 质数又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。素数在数论中有着很重要的地位。比1大但不是素数的数称为合数。1和0既非素数也非合数。质数是与合数相对立的两个概念,...
  • 第一个是判断素数,先上代码吧:1 from math importsqrt2 defis_prime(i):3 if i == 2:4 returnTrue5 elif i<2:6 returnFalse7 elif i%2 ==0:8 returnFalse9 else:10 for n in ...
  • 一个大于1的自然数,除了1和它本身外,不能被其他...首先我们来第一个传统的判断思路:def handlerNum(num):# 质数大于 1if num > 1:# 查看是否有其他因子for i in range(2, num//2+1):if (num % i) == 0:pr...
  • python判断素数的方法

    千次阅读 2019-04-22 22:10:08
    转载:https://www.cnblogs.com/themost/p/6552198.html 1 #运用python的数学函数 2 3 import math 4 5 def isPrime(n): 6 if n <= 1: 7 return False 8 for i in range(2...
  • python判断素数函数

    千次阅读 2017-07-20 11:38:00
    来看这一种判断素数(质数)的函数: form math import sart def is_prime(n): if n==1: return False for i in range(2, int(sqrt(n) + 1)): if n % i == 0: return False return True 看起来,这是一种比较优秀...
  • 在比赛或者工作时,有时候会经常要求我们编程求素数,但是我们自己写出来的时间复杂度太高,...C语言// 对 n 进行素数判断inline static int is_prime(int n){int i;if (n == 2){return 1;}if (n < 2 || n % 2 =...
  • isPrime4()函数功能相同效率不同,可以引入time判断使用的时间 #涉及简单计时http://www.cnblogs.com/didiaoxiaoguai/p/6684094.html strPrime = strPrime + str(j) + " " print(strPrime) #以下为另一写法 def ...
  • 输入一个数,通过函数判断这个数是否为素数,并编写打印函数打印前五十个素数。 def isprime(number): #判断一个数是否为素数# div=2 while div<=number/2: if number%div==0: return False div+=1 return ...
  • 给定一个整数n,判断是否是质数(质数是只能被1和它自身整除的数)第一种:运用数学函数importmathnum=int(input("输入一个数值:"))ifnum>1:sqare_num=math.floor(num**0.5)foriinrange(2,num):if(num%iandnum%(i+1)...
  • 素数是只能被1与自身整除的数,根据定义,我们可以实现第一种算法。算法一:defisprime(n):if n < 2: returnFalsefor i in range(2,int(math.sqrt(n))+1):if n % i ==0:returnFalsereturn True任意一个合数都可...
  • 质数(prime number)又称素数。指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。...总结python脚本判断一个数是否为素数的几种方法:#运用python的数学函数import mathdef isPrime(n):i...
  • Python入门程序 函数应用(判断素数、递归求n的阶乘、x的n次方、最大最小值、插入排序法) 1.判断素数 #编写函数,判断一个数是否是素数。 def isprime(n): if n==1: return False for i in range(2, n): if n ...
  •  if isPrime1(j):#使用isPrime1() isPrime2 isPrime3() isPrime4()函数功能相同效率不同,可以引入time判断使用的时间  #涉及简单计时 http://www.cnblogs.com/didiaoxiaoguai/p/6684094.html    strPrime = ...
  • 1、这段代码的功能一个python的文件有两种使用的方法,第一是直接作为脚本执行,第二是import到其他的python脚本中被调用(模块重用)执行。因此if __name__ == 'main': 的作用就是控制这两种情况执行代码的...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 300
精华内容 120
关键字:

python判断素数函数

python 订阅