Python 入門實戰(二)

2021-10-23 19:05:13 字數 2545 閱讀 6053

牛優果暑期python入門實戰第二彈

實戰時遇到的任何問題都可以在上課的時候向老師提出詢問!

入門實戰第一彈問題回顧:

計算1,3,5…97,99所有數字的總和

解法1:while 迴圈語句

sum = 0

i = 1

while (i <= 100):

sum = sum + i

i = i + 2

print(sum)

詳解:

首先初始化了兩個變數 sum = 0,i = 1

sum 儲存所有 i 的總和,i 表示當次迴圈加入 sum 中的數

while (i <= 100) 表示:該 while 迴圈語句的迴圈條件是 i <=100

sum = sum + i 表示:將當次迴圈中的 i 加入 sum 中

i = i + 2 表示:i 每次遞增2

print(sum) 表示:將最後 sum 的值當作結果輸出

解法2:for 迴圈語句

sum = 0

for i in range(1, 100, 2):

sum = sum + i

print(sum)

詳解:

for i in range(開始/左邊界, 結束/右邊界, 步長)

for 迴圈語句與 while 迴圈語句有異曲同工之處,使用 for 迴圈語句可以使語句更加簡潔明瞭

在 for 迴圈語句中的一行**:

for i in range(1, 100, 2):

可以代替 while 迴圈語句中的三行**:

i = 1

while (i <= 100):

i = i + 2

可別小看了這兩行**的區別,在迴圈次數達到上萬次時,for 迴圈語句通過底層**的優化可以大大減少執行時間

解法3:def 函式遞迴

def getsum (i):

if (i <= 1):

return 1

else:

return i + getsum(i-2)

sum = getsum(99)

print(sum)

詳解:

首先我們定義了乙個遞迴函式 getsum(i) :

def getsum (i):

if (i <= 1):

return 1

else:

return i + getsum(i-2)

我們可以將 getsum(99) 帶入到函式中來理解它的作用:

由**可知,當傳入引數 i > 1 時,返回值為 i + getsum(i-2),將會不斷地呼叫函式自身

第一次呼叫函式:getsum(99)

第二次呼叫函式:99 + getsum(97)

第三次呼叫函式:99 + 97 + getsum(95)

第四次呼叫函式:99 + 97 + 95 + getsum(93)

第五次呼叫函式:99 + 97 + 95 + 93 + getsum(91)

………………

第五十次呼叫函式:99 + 97 + 95 + 93 + …… + getsum(1)

由**可知,當傳入引數 i <= 1 時,返回值為 1,不再繼續呼叫函式

將 getsum(1) 用1代替後,就可以得出最終答案

計算1至100之間所有質數的總和

postscript:質數是指在大於1的自然數中,除了1和它本身以外不再有其他因數的自然數。

拓展:判斷10~20內所有數字是否是質數的方法:

for num in range(10,20):     # 迭代 10 到 20 之間的數字

for i in range(2,num): # 根據因子迭代

if num%i == 0: # 確定第乙個因子

j=num/i # 計算第二個因子

print ("%d 等於 %d * %d" % (num,i,j))

break # 跳出當前迴圈

else: # 迴圈的 else 部分

print (num, "是乙個質數")

執行樣例:

這裡的 else 語句有更高階的用法,想深入了解的同學可以看 這裡

Python入門實戰訓練(二)

1.九宮格 1至9九個數字,橫豎都有3個格,思考怎麼使每行 每列和對角線上的三數之和都等於15 2.尋找班級裡面名字最長的人 我有一串字串人名 names kunpen ji,li xiao,caron li,dongjian shi,ji zhao,fia yuan y,wenxue ding,x...

rocketmq 入門(二)實戰demo

參考文章 rocketmq實戰 啟動rocketmq的namesrv 啟動rocketmq的broker 建立乙個簡單的springboot專案 pom4.0.0 com.squid.rocketmq rocketmq test 1.0 snapshot org.springframework.bo...

Python爬蟲入門實戰一

最近學習了點python爬蟲,現在寫乙個實戰演示記錄一下學習歷程!我開發python用的ide是jetbrains公司的pycharm,該ide非常方便實用。第一步 直接複製想要爬取的網頁的源 下來放到python的工程目錄下的source.ext檔案。第二步 分析所要爬取得內容 由於想要爬取得內容...