資料分析 | Python新手村03_迴圈

閱讀時間約 6 分鐘
上一篇介紹了 Python 中的條件判斷,方法是透過了自動程式條件式判斷,以不同劇本的方式來執行動作。然而實際情況下,我們還常會遇到一種問題,就是必須重複執行某些相同的步驟,而迴圈(loop)的設計就是為了解決此「重複執行」的一種控制結構,讓我們可以在條件符合的情況下利用迴圈執行資料的輸入、處理與輸出。

單層for-loop

第一類介紹的是單層for-loop,通常應用於我們有預想重複幾次,來限制迴圈總數,最普遍的方式就是搭配range()函數。
range(start, stop[, step])

start:計數從start開始。默認是從0開始,例如:range(5)就等於range(0, 5)
stop:計數到stop結束,但不包括stop,例如:range(0,5)就是[0, 1, 2, 3, 4],但沒有包括5
step:步長,默認為1
第一種示範:
for i in range(5):
print(i)
打印結果為:
0
1
2
3
4
第二種示範:
for i in range(10, 20):
print(i)
打印結果為:
10
11
12
13
14
15
16
17
18
19
第三種示範:
for i in range(100, 90, -1):
print(i)
打印結果為:
100
99
98
97
96
95
94
93
92
91
另外,for迴圈還可以使用字串「string」上:
for word in "Hello! World!":
print(word)
此方式就是將這個字串「string」當作一個list,打印結果就為此string字元數的拆解:
H 
e 
l 
l 
o 
! 
 
W 
o 
r 
l 
d 
!
再來我們嘗試個複雜點的範例,假如我們要計算1~10的數字加總,該怎麼做呢?
sum = 0
for i in range(1,11):
sum += i
print(f"1~10:{sum}")
打印結果就為:
1~10:55
稍微改裝一下,不要侷限只能加總1~10,假如我想1加到100,或是1加到50,有沒有更靈活的方式呢?
n = int(input("請輸入1~值:"))
sum = 0
for i in range(1,n+1):
sum += i
print(f"1~{n}:{sum}")
輸入n=50,得出的打印結果為:
1~50:1275

巢狀for-loop

「巢狀for-loop」的特點就是在主要迴圈中又包覆著其他的迴圈。當內層迴圈將我們定義的重複次數完成後,才會跳回到外層迴圈執行動作。
「九九乘法表」由於具備了九列九行的計算資料,所以就為一個使用兩層巢狀迴圈結構的極佳範例。
for i in range(1,10):
for j in range(1,10):
print(f"{i}{j}={i*j}",end="\t") #換行
print()
執行的打印結果為:
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

while-loop

另一種就是迴圈結構就式「while-loop」,for-loop的處理問題主要是放在解決「已知的重複迴圈數」,而while-loop則適用解決「無法預知的重複迴圈數」
while-loop在執行內部敘述動作前,需事先檢查條件判斷式,如果判斷值為真(True),就重複迴圈loop,只有當達到指定的特殊狀況時(False),才結束跳出迴圈。
舉個工作儲蓄的小例子,假設我們定義的儲蓄目標為10萬元,而每個月扣掉支出後能存下來的金額,並無法預先知道,所以只要累積加總達到10萬元時,停止結束執行動作,此時while-loop就相當適合解決此類的問題。
total = 0
n = 0
while total < 100000:
n += 1
temp = int(input(f"請輸入第{n}月儲存的金額:"))
total += temp

print(f"已經存了{n}個月,存款共為{total}")
所以我們假設前四次的儲存金額各為5萬元、3萬元、1萬元、3萬元,此時判斷式total < 100000為False,跳出迴圈並執行打印的結果:
已經存了4個月,存款共為120000
最後,我們還可以加上break指令,並搭配先前所學過的if換另一個敘述來做呈現:
break:中斷迴圈的執行並跳脫迴圈結構,繼續執行迴圈外的敘述。
#使用break,跳出迴圈
total = 0
n = 0
while True:
    n += 1
    temp = int(input(f"請輸入第{n}月儲存的金額:"))
    total += temp
    if total >= 100000:
        break
print(f"已經存了{n}個月,存款共為{total}")
以上,就為程式語言中使用相當頻繁的迴圈控制(loop),其它更進階的部份,下回再做分享囉,謝謝大家!💪
即將進入廣告,捲動後可繼續閱讀
為什麼會看到廣告
31會員
39Content count
在瞬息萬變的數位宇宙中,不堅持永遠的Yes或No,自許以流量成長的阿甘精神,碰撞激盪出各種有趣的科技行銷手法,涵蓋產品數據、社群互動、廣告技術、內容創造、會員經營...等面向,一點一滴的帶大家進入產品Martech的領域中。
留言0
查看全部
發表第一個留言支持創作者!
我吃故窩宅的沙龍 的其他內容
經歷過第一次的課程內容後,我們已經初步理解到Python的基本運算功能,接下來就要開始進入到高階語言都有的程式控制邏輯,先來個小小開胃菜—條件判斷。 if敘述 直接來帶範例會比較清楚理解: 第一次我們輸入國文分數為50分,由於數值50並沒有大於60,第一個if敘述的condition條件判斷就會是F
前幾年因為工作方面的需求,花了一些時間自學了Python,進行網站爬蟲與資料分析,但近期由於職務的轉換,Python的實作應用機會減少了許多,對於code撰寫的敏感度也因此降低不少,趁著上個月看到勞動力職能發展協會官網有一門新課程「Python大數據資料探勘分析應用班」正在線上招生,想說既然政府與公
近幾年來,市面上總不乏出現各種新名詞,「類火車」、「微解封」、「類普篩」、「元宇宙」、「大數據」...等,這些排山倒海的資訊,讓我們深怕自己一不小心沒跟上,會錯過了世代更迭的腳步,其中,特別是「大數據」這三個字流行最久,也是目前影響企業最深。以台灣市場來說,各類領域的企業,假如發展策略沒有跟大數據扯
市場區隔是什麼? 例如,汽車的TA就可以很清楚的區分為「小資族群」、「親子家庭」、「冒險越野」、「都市貴族」...等,而企業就會因應生產各系列的車款,而這些車款就會呈現出不同的品牌印象、價位區間以及功能訴求。 有效市場區隔的條件 我們都愛用甚麼變數來區隔市場 特徵分群 行為分群 區隔分析範例 小結
如果你正在學習SQL,這邊介紹一個方便簡易的方式,不須透過安裝傳統的MySQL,只要利用Google提供的BigQuery開源示範dataset就可以實作練習,另一方面,如果你想應用自己手邊上的資料,也能簡單的使用匯入功能(如何匯入看這邊)。 輸入名稱「data-to-insights」。
最近在公司跟資料科學家一起討論了產品推薦機制的運作邏輯,才開始理解了甚麼是關聯分析(Associative Analysis),覺得挺有趣的,想說把學習心得記錄下來,藉此機會跟大家分享。 接著下來,我們就以「樂屋網」產品的使用者行為資料庫,做為假設的範例,進行簡單的解釋說明。 條件機率與貝氏定理
經歷過第一次的課程內容後,我們已經初步理解到Python的基本運算功能,接下來就要開始進入到高階語言都有的程式控制邏輯,先來個小小開胃菜—條件判斷。 if敘述 直接來帶範例會比較清楚理解: 第一次我們輸入國文分數為50分,由於數值50並沒有大於60,第一個if敘述的condition條件判斷就會是F
前幾年因為工作方面的需求,花了一些時間自學了Python,進行網站爬蟲與資料分析,但近期由於職務的轉換,Python的實作應用機會減少了許多,對於code撰寫的敏感度也因此降低不少,趁著上個月看到勞動力職能發展協會官網有一門新課程「Python大數據資料探勘分析應用班」正在線上招生,想說既然政府與公
近幾年來,市面上總不乏出現各種新名詞,「類火車」、「微解封」、「類普篩」、「元宇宙」、「大數據」...等,這些排山倒海的資訊,讓我們深怕自己一不小心沒跟上,會錯過了世代更迭的腳步,其中,特別是「大數據」這三個字流行最久,也是目前影響企業最深。以台灣市場來說,各類領域的企業,假如發展策略沒有跟大數據扯
市場區隔是什麼? 例如,汽車的TA就可以很清楚的區分為「小資族群」、「親子家庭」、「冒險越野」、「都市貴族」...等,而企業就會因應生產各系列的車款,而這些車款就會呈現出不同的品牌印象、價位區間以及功能訴求。 有效市場區隔的條件 我們都愛用甚麼變數來區隔市場 特徵分群 行為分群 區隔分析範例 小結
如果你正在學習SQL,這邊介紹一個方便簡易的方式,不須透過安裝傳統的MySQL,只要利用Google提供的BigQuery開源示範dataset就可以實作練習,另一方面,如果你想應用自己手邊上的資料,也能簡單的使用匯入功能(如何匯入看這邊)。 輸入名稱「data-to-insights」。
最近在公司跟資料科學家一起討論了產品推薦機制的運作邏輯,才開始理解了甚麼是關聯分析(Associative Analysis),覺得挺有趣的,想說把學習心得記錄下來,藉此機會跟大家分享。 接著下來,我們就以「樂屋網」產品的使用者行為資料庫,做為假設的範例,進行簡單的解釋說明。 條件機率與貝氏定理
你可能也想看
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
日前在LINE社群,有網友提出一個問題,要把資料進行分析,用日期來計算出將對應的資料。 原始資料,密密麻麻的數據,都看不清楚了 放大一點點 要把這些資料不同『料號』的各種『狀態』依據『日期』進行分析。 有興趣可以下載試著挑戰看看:檔案下載 作法有很多種,當然也可以用函數處
Thumbnail
台灣發生性騷擾的行為樣態有哪些? 在哪裡發生? 被害人與加害人的關係呢? 分別有什麼特徵? 來看台灣性騷擾申訴案件的剖析。
Thumbnail
台灣發生性騷擾的行為樣態有哪些? 在哪裡發生? 被害人與加害人的關係呢? 分別有什麼特徵? 來看台灣性騷擾申訴案件的剖析。
Thumbnail
台灣發生性騷擾的行為樣態有哪些? 在哪裡發生? 被害人與加害人的關係呢? 分別有什麼特徵? 來看台灣性騷擾申訴案件的剖析。
Thumbnail
資料分析就像廚師料理一樣,但你知道可以分成哪9大流程嗎?一起看看資料分析流程和廚師料理有多像!
Thumbnail
美國為主的M2不斷的收縮,但是市場上的資金幾乎源源不絕,這時候大多數人會很納悶,錢從哪邊來? 這篇文章主要是分析這件事情。
Thumbnail
從「類型」作為出發點,輔以加以針對 Netflix 台灣站與韓國站做比較,也確實看出一些不同之處,包含其實 Netflix 韓國站確實有相當多實境與綜藝內容,而韓國群眾也喜歡使用 Netflix 收看,個人就覺得這個相當有趣的。
Thumbnail
紐約時報曾經於2018年12月製作過「How Does Your State Make Electricity?」專題,探討從2001-2017年美國各州電力系統結構變化。本篇目的旨在仿照紐約時報的做法,也製作一個屬於台灣的電力結構轉變資訊圖表。
Thumbnail
史隆運動分析論壇(MIT SSAC),是北美運動數據研究圈中最重要的交流盛會,許多的運動數據分析人才與業界相關公司,都是透過此論壇所發跡。以下為個人對SSAC 22座談會內容的彙整。
Thumbnail
這一次在高雄上課,租用昂貴的電腦教室,只是很可惜,這家巨匠居然沒有安裝office,只有開放原始碼的試算表,有一點卡卡的,影響我的教學。 趁學員陸續到期,趕緊教他們下載資料;下載資料對我來說雖然簡單,但對於這一批學員來說,卻可能是第一次操作;還好很多學員立即學會,也立馬變身為種子教官,教會旁邊的學員
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
日前在LINE社群,有網友提出一個問題,要把資料進行分析,用日期來計算出將對應的資料。 原始資料,密密麻麻的數據,都看不清楚了 放大一點點 要把這些資料不同『料號』的各種『狀態』依據『日期』進行分析。 有興趣可以下載試著挑戰看看:檔案下載 作法有很多種,當然也可以用函數處
Thumbnail
台灣發生性騷擾的行為樣態有哪些? 在哪裡發生? 被害人與加害人的關係呢? 分別有什麼特徵? 來看台灣性騷擾申訴案件的剖析。
Thumbnail
台灣發生性騷擾的行為樣態有哪些? 在哪裡發生? 被害人與加害人的關係呢? 分別有什麼特徵? 來看台灣性騷擾申訴案件的剖析。
Thumbnail
台灣發生性騷擾的行為樣態有哪些? 在哪裡發生? 被害人與加害人的關係呢? 分別有什麼特徵? 來看台灣性騷擾申訴案件的剖析。
Thumbnail
資料分析就像廚師料理一樣,但你知道可以分成哪9大流程嗎?一起看看資料分析流程和廚師料理有多像!
Thumbnail
美國為主的M2不斷的收縮,但是市場上的資金幾乎源源不絕,這時候大多數人會很納悶,錢從哪邊來? 這篇文章主要是分析這件事情。
Thumbnail
從「類型」作為出發點,輔以加以針對 Netflix 台灣站與韓國站做比較,也確實看出一些不同之處,包含其實 Netflix 韓國站確實有相當多實境與綜藝內容,而韓國群眾也喜歡使用 Netflix 收看,個人就覺得這個相當有趣的。
Thumbnail
紐約時報曾經於2018年12月製作過「How Does Your State Make Electricity?」專題,探討從2001-2017年美國各州電力系統結構變化。本篇目的旨在仿照紐約時報的做法,也製作一個屬於台灣的電力結構轉變資訊圖表。
Thumbnail
史隆運動分析論壇(MIT SSAC),是北美運動數據研究圈中最重要的交流盛會,許多的運動數據分析人才與業界相關公司,都是透過此論壇所發跡。以下為個人對SSAC 22座談會內容的彙整。
Thumbnail
這一次在高雄上課,租用昂貴的電腦教室,只是很可惜,這家巨匠居然沒有安裝office,只有開放原始碼的試算表,有一點卡卡的,影響我的教學。 趁學員陸續到期,趕緊教他們下載資料;下載資料對我來說雖然簡單,但對於這一批學員來說,卻可能是第一次操作;還好很多學員立即學會,也立馬變身為種子教官,教會旁邊的學員