from datetime import datetime
# 求多少以內的素數
n =100000
count =
0start = datetime.now(
)for i in
range(2
, n +1)
:for j in
range(2
, i)
:if i % j ==0:
# 是合數
break
else
:# 是素數
count +=
1# print(i, end=" ")
delta =
(datetime.now(
)- start)
.total_seconds(
)print
(count,
"\n用時:{}s"
.format
(delta)
)
求10萬以內的素數,有9592個,用時49.789252s。
素數優化
from datetime import datetime
# 求多少以內的素數
n =100000
count =
1# 2是素數
start = datetime.now(
)for i in
range(3
, n +1,
2):# 大於2的偶數不可能是素數了
for j in
range(3
,int
(i **
0.5)+1
,2):
if i % j ==0:
# 是合數
break
else
:# 是素數
count +=
1# print(i, end=" ")
delta =
(datetime.now(
)- start)
.total_seconds(
)print
(count,
"\n用時:{}s"
.format
(delta)
)
求10萬以內的素數,有9592個,用時0.162093s。
通過對比可看出,通過素數優化,大大提高了演算法的效率。
觀察規律,找對稱性。
n =
int(
input
("列印幾行:"))
e = n //
2for i in
range
(-e, n-e)
:print
(" "
*abs
(i)+
"*"*
(n -2*
abs(i)
))
結果如下:
('列印楊輝三角前幾行:'))
defprint_********
(x):
# 列印幾行
tri =[1
]# 當前行所有元素
pre =[1
]# 上一行所有元素
n =1while n <= x:
yield tri # yield生成器函式 返回
for i in
range(1
,len
(pre)):
# 中間的各個元素值 = 上一行相應位置的值 + 與前一位置元素的值
tri[i]
= pre[i-1]
+ pre[i]1)
# 得到後,傳給上行
pre = tri[:]
n +=
1trianges = print_********(row)
# 傳入引數
for item in trianges:
(item)
執行結果如下:
列印楊輝三角前幾行:5[1
][1,
1][1
,2,1
][1,
3,3,
1][1
,4,6
,4,1
]結果如下:
("輸出前幾項?: "))
if x <=0:
("請輸入輸入正數!"
)else
("斐波那契數列前{}項:"
水仙花數是指乙個 3 位數,它的每個位上的數字的 3次冪之和等於它本身(例如:1^3 + 5^3 + 3^3 = 153)。
print
("水仙花數:"
, end=
" ")
for i in
range
(100
,1000):
# 三位數
if i ==
sum(
[int
(x)**
3for x in
str(i)])
:# 求水仙花數
print
(i, end=
" ")
else
:continue
結果如下:
("請輸入注數:"))
("*"*16
+" 雙色球 {} 注 "
.format
(num)
+"*"*16
)for i in
range
(num)
: flag =
true
red_ball_list =
while flag:
# 紅球 1-33中選
red_ball = random.randint(1,
33)if red_ball not
in red_ball_list:
# 個位數的 前面加個0 變字串
if red_ball <10:
red_ball =
"0{}"
.format
(red_ball)
else
:str
(red_ball)
)# 選出6個不重複的紅球號碼
iflen
(red_ball_list)==6
: flag =
false
# 藍球 1-16中選
blue_ball = random.randint(1,
16)if blue_ball <10:
blue_ball =
"0{}"
.format
(blue_ball)
else
: blue_ball =
str(blue_ball)
("紅球:"
+" "
.join(red_ball_list,)+
" 藍球:"
Python基礎程式設計練習(二)
python基礎程式設計練習 二 輸入a,b的值,用空格隔開 計算結果 n,m map int,input split def getvalue n if n 0 or n 1 return 1else return n getvalue n 1 def value n,m first getval...
Python基礎程式設計練習LeetCode 鍊錶
python基礎程式設計練習leetcode 鍊錶 給出乙個鍊錶 1 2 3 4 5 和 n 2.鍊錶 1 2 3 5.解題思路 本題需要兩個指標,pre和end。一開始初始化時使得pre指標指向煉表頭節點head,end指標指向pre n的節點位置。同時往後移動pre和end指標位置,使得end指...
Python程式設計基礎之小案例練習
re庫 re庫是python的標準庫,主要用於字串匹配。方法解釋說明 re.search 在乙個字串中搜尋匹配正規表示式的第乙個位置,返回match物件 re.match 從乙個字串的開始位置起匹配正規表示式,返回match物件 re.findall 搜尋字串,以列表型別返回全部能匹配的字串 re....