Python程式設計 基礎練習 一

2021-10-05 10:39:22 字數 4683 閱讀 2109

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:

print

(item)

執行結果如下:

列印楊輝三角前幾行:5[1

][1,

1][1

,2,1

][1,

3,3,

1][1

,4,6

,4,1

]結果如下:

("輸出前幾項?: "))

if x <=0:

print

("請輸入輸入正數!"

)else

:print

("斐波那契數列前{}項:"

水仙花數是指乙個 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

結果如下:

("請輸入注數:"))

print

("*"*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)

print

("紅球:"

+" "

.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....