日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python输出1000以内回文数_「答案」python每日一题20201108

發布時間:2025/3/15 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python输出1000以内回文数_「答案」python每日一题20201108 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

質數是指在大于1的自然數中,除了1和它本身以外不再有其他因數的自然數。用python輸出1000以內的所有質數。

#####方法一#####def isPrime(n): if n <=1: return False for k in range(2,round(n**0.5)+1): if n%k==0: return False return Truefor i in range(2,1001): if isPrime(i): print(i,end=",")

【評析】

這是常規解法,定義一個質數判斷函數,用每一個待檢測數除以從2到該數的平方根區間內的數,如果發現存在余數為0情況則斷定該數不是質數。

#####方法二#####print([i for i in range(2,1001) if 0 not in [i%n for n in range(2,round(i**0.5)+1)] ])

【評析】

如果看過昨天的題目評析,應該對這個形式并不陌生。這就是用for生成一個數列并自動賦值,當然這個還帶了一個if的異形表達。

在這里我放上第二解法的目的倒不是為了顯得很酷,實際是我要指出在python中直接生成列表,然后一起打印輸出,比判斷一個輸出一個效率要高很多(執行了很多次print)。因為涉及外設的輸入和輸出都是有開銷的,能合并進行的就要合并進行,這個在實際應用時還是要注意。

下面是我對這兩個例子做了修改,以便于打印輸出不同方法執行的時間。

#####方法一#####from datetime import datetimett=datetime.now()#=================def isPrime(n): if n <=1: return False for k in range(2,round(n**0.5)+1): if n%k==0: return False return Truefor i in range(2,1001): if isPrime(i): print(i,end=",")#=================print()print (datetime.now()-tt)#####方法二#####tt=datetime.now()#=================print([i for i in range(2,1001) if 0 not in [i%n for n in range(2,round(i**0.5)+1)] ])#=================print()print (datetime.now()-tt)

結果如下:

沒有對比就沒有傷害,效率相差實在巨大。

進而如果我們對方法一進行修改,把所有判斷出的質數加入列表,最后一次性輸出,情況會有改觀嗎?

#####方法一修改#####from datetime import datetimett=datetime.now()#=================pp=[]def isPrime(n): if n <=1: return False for x in range(2,round(n**0.5)+1): if n%x==0: return False pp.append(n)#添加到列表中 return Truefor i in range(2,1001): isPrime(i)print(pp)#只輸出一次#=================print()print (datetime.now()-tt)

運行結果:

可見,這個效率提升是顯而易見的。

總結

以上是生活随笔為你收集整理的python输出1000以内回文数_「答案」python每日一题20201108的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。