癡月熊學Python
文章目錄
- 癡月熊學Python
- 往期文章
- 前言
- 一、why 回圈
- 二、for回圈的基本使用
- 2.1、語法格式
- 2.2、使用for回圈遍歷串列
- 2.3、使用range函式創建串列
- 三、for回圈的嵌套
- 3.1、for回圈嵌套if陳述句,
- 3.2、for回圈使用else陳述句
- 3.3、for嵌套for
- 四、while回圈
- 4.1、while的語法格式
- 4.2、while應用于計算
- 4.3、猜數字小游戲
- 五、控制回圈
- 5.1、break終止回圈
- 5.2、continue
- 總結
- 傳送門
往期文章
第一章:Python-新人報道
第二章:小學生都會的數學計算,癡月熊學Python
第三章:變數-從此你就叫張三了!,癡月熊學python
第四章:神奇的變身器-轉義字符(改),癡月熊學python
第五章:稍息!立正!——print格式化輸出,癡月熊學python
第六章:小學生不一定會的運算,癡月熊學python
第七章:考了多少分啊孩子,癡月熊學python
第八章:資料結構四兄弟——串列(上),癡月熊學python
第九章:資料結構四兄弟——串列(下),癡月熊學python
前言
hello,今天又和大家見面了,哇閱讀量越來越少了,就離譜!上一章的串列也講完了,那今天這章必須得講回圈了,不過閱讀量越來越少了,就離譜!上一章的串列也講完了,那今天這章必須得講回圈了,不過閱讀量越來越少了,就離譜!上一章的串列也講完了,那今天這章必須得講回圈了,不過閱讀量越來越少了,就離譜!上一章的串列也講完了,那今天這章必須得講回圈了,不過閱讀量越來越少了,就離譜!上一章的串列也講完了,那今天這章必須得講回圈了,不過… …
提示:以下是本篇文章正文內容,下面案例可供參考
一、why 回圈
剛剛不小心陷入回圈了,還好我給癡月熊的文章三連了,不然差點出不來,回圈就是不停的去執行同一個操作,所以所為啥要去回圈呢,python的回圈陳述句分為兩種:for陳述句和while陳述句,for回圈和while回圈的區別說白了,就是for你讓它回圈幾次就回圈幾次,while則是一直回圈,while陳述句你寫一個讓它一直回圈,只要條件一直是真的,終有一天你的電腦會嗝屁的,所以為啥要去回圈呢,肯定是有些東西一個一個寫出來比較麻煩啊,所以說人類為了偷懶還是會進步的,剛好上一章學會了串列,for回圈經常用作遍歷某個容器,就比如串列,while看要一直回圈的環境需求,不過也是會停止的,只要條件為假,或者你手動停了,
二、for回圈的基本使用
2.1、語法格式
for i in (可迭代物件)
回圈體
這就是for回圈的陳述句格式了,你可以把這堆東西這么理解:for回圈可迭代物件,把每次從可迭代物件里回圈出來的值賦給i,然后再執行回圈體,
2.2、使用for回圈遍歷串列
那我們上面提到了for回圈可以用來遍歷串列,那我們具體如何遍歷呢,看下面代碼:
list = ["a","b","c","d"]
for i in list:
print(i)
RUN:
a
b
c
d
代碼執行程序:
定義一個串列list
把list的第一個元素賦給 " i "(i = a),然后列印 " i "
再次回圈回list,把list第二個元素賦給 " i "(i = b) ,然后列印 " i "
再次回圈回list,把list第三個元素賦給 " i " (i = c),然后列印 " i "
再次回圈回list,把list第四個元素賦給 " i "(i = d) ,然后列印 " i "
再次回圈回list,發現list里面沒有更多的元素了,回圈結束,
2.3、使用range函式創建串列
range函式的作用是生成一個等差序列,等差序列都知道是啥吧,不知道的這里我提一下,一個序列從第二項起,每一項與它的前一項的差等于同一個常數,這就叫等差序列,range函式的使用方式默認是從0開始,比如你寫一個range(5),那它就會從0開始一直到(5-1),range(5):0,1,2,3,4 ## range(1,5):1,2,3,4 ## range(3,7):3,4,5,6. 現在我們結合for使用下range:
for i in range(6)
print(i)
RUN:
0
1
2
3
4
5
我還可以把range列印出來的數字放在一個串列里,我們可以先定義一個空串列,然后將回圈列印的數值追加到原串列中,
list = []
for i in range(3,7):
list.append(i)
print(list)
RUN:
[3,4,5,6]
三、for回圈的嵌套
3.1、for回圈嵌套if陳述句,
for i in range(0,4):
if i < 2:
print(f"元素{i}小于2")
elif i > 2:
print(f"元素{i}大于2")
else:
print(f"元素{i}")
RUN:
元素0小于2
元素1小于2
元素2
元素3大于2
3.2、for回圈使用else陳述句
沒想到吧,for回圈竟然還可以使用else,else的作用可以當做整個代碼塊的最后一次回圈,上面不管回圈了多少次,只要上面不回圈了,就去執行else,這里也很簡單,看一下代碼就理解了:
for i in range(0,4):
if i < 2:
print(f"元素{i}小于2")
elif i > 2:
print(f"元素{i}大于2")
else:
print(f"元素{i}")
else:
print("回圈結束")
RUN:
元素0小于2
元素1小于2
元素2
元素3大于2
回圈結束
這里一定要看好嵌套的語法縮進,雖然有兩個else,不過第一個只屬于小回圈,第二個則是回圈后,
3.3、for嵌套for
for回圈可以嵌套if陳述句,當然也可以嵌套for陳述句,這里就使用for套for寫一個99乘法表:
for i in range(1,10):
for j in range(1,10):
print("%d * %d = %3d "%(i,j,i*j),end=" ")
if j == 9 :
print("\n")
RUN:
1 * 1 = 1 1 * 2 = 2 1 * 3 = 3 1 * 4 = 4 1 * 5 = 5 1 * 6 = 6 1 * 7 = 7 1 * 8 = 8 1 * 9 = 9
2 * 1 = 2 2 * 2 = 4 2 * 3 = 6 2 * 4 = 8 2 * 5 = 10 2 * 6 = 12 2 * 7 = 14 2 * 8 = 16 2 * 9 = 18
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 3 * 4 = 12 3 * 5 = 15 3 * 6 = 18 3 * 7 = 21 3 * 8 = 24 3 * 9 = 27
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 4 * 5 = 20 4 * 6 = 24 4 * 7 = 28 4 * 8 = 32 4 * 9 = 36
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 5 * 6 = 30 5 * 7 = 35 5 * 8 = 40 5 * 9 = 45
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 6 * 7 = 42 6 * 8 = 48 6 * 9 = 54
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 7 * 8 = 56 7 * 9 = 63
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 8 * 9 = 72
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
i = 1的時候,j =1,列印 1 * 1 = 1 (末尾空格)加上一個空格之后,j的回圈會繼續列印在同一行,等j回圈到9的時候,觸發if條件,j = 9,整體換行,然后繼續從i = 2開始,j回圈1到9,換行,i = 3…
四、while回圈
4.1、while的語法格式
while 條件:
回圈體
while的格式就更簡單了,你只需要給個條件,然后執行下面的代碼就可以了,這里寫個可以永久回圈的代碼,
a = 1
b = 2
while a != b:
print("a居然不等于b")
RUN:
a居然不等于b
a居然不等于b
a居然不等于b
a居然不等于b
a居然不等于b
....
首先定義了兩個變數,a等于1,b等于2,然后寫入一個回圈條件a不等于b,那1本來也不等于2,所以它永遠是真的,哪怕世界毀滅地球爆炸它也是真的,那它就會一直執行,直到電腦嗝屁了,
4.2、while應用于計算
while用來運算元字非常不錯,比如求1 到 100 之間的和:
i = 1
a = 0
while i <=100:
a += i
i +=1
print(f"1到100的總和為:{a}")
RUN:
1到100的總和為:5050
i = 1:設定一個起始值
a = 0:這里我第一次想的時候沒有寫,但是他會報錯找不到a變數,因為a += i 等于a = a + i,a也要一個起始值,a第一次等于i開始就對了,所以第一次寫成了:
while i <=100:
a = i
a += i
i +=1
print(f"1到100的總和為:{a}")
嗯,很明顯有問題,每次回圈都等于i,到最后就變成100 + 100了,所以一定要給a賦一個起始值0,
while i <=100:這里就是確保i的數值不超過100,因為起始值是1所以不會是負數啦,
a += i :a = a + i,相當于把每次i回圈的值保留下來,新的i和舊的a相加成為新的a,
i += 1:新i = 舊i + 1這里則是一個自增長,每次回圈結束數值都加1,你可以試試不加這個,我相信你會哭的,
4.3、猜數字小游戲
這里可以做一個猜數字的小游戲,大家可以自己去試試幾次猜對吧,
import random #匯入random模塊
a = random.randint(1,100) #從1到100之間隨機生成一個亂數賦值給a
guess = 0 #寫一個1-100以外的數字,使回圈條件滿足
while guess != a: #0不在1-100之間所以條件滿足,可以回圈
guess = int(input("請輸入一個 1~100 之間的數字:")) #從新定義guess,使guess等于輸入的數值
if guess > a: #給用戶提示差距
print("好大!")
elif guess < a:
print("真小~")
else:
print(f"針補戳,猜對啦,答案是{a} ")
五、控制回圈
5.1、break終止回圈
一只回圈的話,是有一點苦惱的,我想回圈但又不想完全回圈,要是在回圈程序中能踩剎車就好了,今天它來了,有請我們帥氣的break登場,break的作用就是跳出回圈體,不需要等到回圈條件為Flase的時候才結束,那具體什么場合會用到呢,比如在串列里我們查到自己想要的值得時候就可以停止了,不需要繼續往后回圈了,下面我寫一個場景給大家展示一下break的作用:
print("麋鹿老師:索引位置在2和2之前的同學有哪些?")
list = ["智慧兔","迷彩羊","憨憨熊","大鴿","癡月熊"]
for i in list:
print(f"{i}: 到!")
if i == "憨憨熊":
print("麋鹿老師:索引2和2之前的同學就這些")
RUN:
麋鹿老師:索引位置在2和2之前的同學有哪些?
智慧兔: 到!
迷彩羊: 到!
憨憨熊: 到!
麋鹿老師:索引2和2之前的同學就這些
大鴿: 到!
癡月熊: 到!
首先我們先不加break看了下效果,我們的需求是到索引2的時候就可以停了,但是現在已經過了憨憨熊那里,還是有同學在點到,下面再看一下加了braek:
print("麋鹿老師:索引位置在2和2之前的同學有哪些?")
list = ["智慧兔","迷彩羊","憨憨熊","大鴿","癡月熊"]
for i in list:
print(f"{i}: 到!")
if i == "憨憨熊":
print("麋鹿老師:索引2和2之前的同學就這些")
break
RUN:
麋鹿老師:索引位置在2和2之前的同學有哪些?
智慧兔: 到!
迷彩羊: 到!
憨憨熊: 到!
麋鹿老師:索引2和2之前的同學就這些
這回可以看到,一直到憨憨熊之后,就沒有繼續往下回圈了,這樣大概就能看清楚break的作用了吧,
5.2、continue
print("麋鹿老師:今天來的同學達個到")
list = ["智慧兔", "迷彩羊", "憨憨熊", "大鴿", "癡月熊"]
for i in list:
if i == "大鴿":
continue
print(f"{i}: 到!")
print("麋鹿老師:今天大鴿同學沒來啊")
RUN:
麋鹿老師:今天來的同學達個到
智慧兔: 到!
迷彩羊: 到!
憨憨熊: 到!
癡月熊: 到!
麋鹿老師:今天大鴿同學沒來啊
同學們要自己照著敲一遍,可看仔細了這回的if和上面的if可不在一個位置,這下大家應該可以看出來continue的作用了,break是跳出整個回圈,continue則是停止當前的回圈,本次回圈后面的東西就不輸出了,之后繼續執行后面的回圈,
總結
我一而再三的思索,我決定還是寫成一章好了,還有上面放那么多往期文章的鏈接,看起來很雜,于是我單獨弄出一個地方專門用來看往期文章的,還有算上這章剛好10章,我就把這些東西歸類到s1了,誒嘿嘿針不戳,以后大家想看往期文章直接去傳送門,這次我就放在下面,以后我都會放在頂部,找文章看著也比較清晰,這章的閱讀量一定要起來好不好,謝謝大家啦,制作不易不許白嫖,哼!
傳送門
癡月熊學python往期文章傳送門

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/278573.html
標籤:python
