什麼是流程控制
流程控制,就是控制事物的流程。簡單來說,在日常生活中,我們總是會重複做某件事,比如每天早上起來我們都會刷牙洗臉,但是,有時候因為有急事,比如突然出啥事了,或者起晚了,你就不會在早上刷牙洗臉了。而洗臉的流程也是我們控制的,比如有時候你想先洗臉後刷牙,有時候你想先刷牙後洗臉。
執行流程的分類
1. 順序結構
順序結構是從上而下依次執行的,例如我們之前的學習總結中使用的**就是順序結構。
2. 分支結構
分支結構就是根據條件的不同,做出不同的選擇。生活中的例子就是,比如我週末想出去玩,這時候你兄弟叫你上號,你可以選擇上號,那就待在家裡打遊戲,而你也可以選擇出去玩。根據你選擇的不同,你接下來要做的事情也不同。**也可以實現,根據條件的不同,執行不同的**。
3. 迴圈結構
迴圈結構,就是根據條件的判斷來重複執行某件相同的事。當不滿足這個條件的時候,就會結束迴圈。生活上的例子,就是流水線工作,上班的時候,就一直做你的工作內容,下班你就不會重複做工作內容了,你就會玩,或者休息去了。
今日必知必會內容、
1. 在python中,用縮進來表示**的從屬關係。我們通常將縮排的**稱為某某**的子**,比如:
# 這就是 if 判斷語句,是否執行,由 if 判斷
if a > b:
print('a確實大於b') # 這就是if判斷語句的子**
2. 並不是所有**都有子**,目前即將學習的if,else, while都有子**、
3.如果多行**屬於同乙個父** 那麼這多行**需要保證相同的縮排。在python中推薦使用四個空格來表示縮排(四個好看一些)
4. 具有相同縮排量的**彼此之間按照順序結構執行 沒有從屬關係 平起平坐
5. 如果一行**的結尾是冒號結束 那麼緊挨著的下一行必縮排,冒號的含義相當於是要擁有子**。
單if分支
示例**:
a = 1
b = 2
if a < b:
print('特定**')
# 後續**
當滿足條件語句(a
if else雙選擇分支
示例**:
a = 1
b = 2
if a < b:
print('特定**1')
else
print('特定**2')
# 後續**
當滿足條件語句(a
if與elif與else分支
示例**:
a = 1
b = 2
if a < b:
print('特定**1')
elif a = b:
print('特定**2')
else:
print('特定**3')
# 後續**
# 中間elif可以有很多個,根據你自己的條件需求來設定
當滿足條件語句(a
if的巢狀
示例**:
a = 1
b = 2
c = 3
if a < b:
print('**1')
if a > c:
print('**2')
else:
print(''**3)
else:
print('**4')
當滿足(ac)是否成立,如果成立,則執行**2
反之執行**3.如果不滿足(a
當滿足條件表示式時,執行特定邏輯**。若條件表示式一直被滿足,則迴圈不會停止。特定邏輯**中需要有讓條件表示式失效的處理。**示例:
while true:
# 1.獲取使用者的使用者名稱和密碼
username = input('username>>>:')
password = input('password>>>:')
# 2.校驗/判斷使用者名稱和密碼是否正確
if username == 'jason' and password == '123':
print('登入成功')
else:
print('使用者名稱或密碼錯誤')
流程圖:
在這個示例**中,因為true一直被滿足,所以這個程式不會結束,無論登入成功還是登入失敗,他只會提示你輸入是否正確,然後重複讓你輸入。而失效處理的方式就是 break
break是用於結束本層迴圈,只能結束所在的那一層迴圈(因為迴圈也是巢狀的),**示例:
while true:
# 1.獲取使用者的使用者名稱和密碼
username = input('username>>>:')
password = input('password>>>:')
# 2.校驗/判斷使用者名稱和密碼是否正確
if username == 'jason' and password == '123':
print('登入成功')
break # 結束本層迴圈
else:
print('使用者名稱或密碼錯誤')
流程圖:
在示例**中,只要你輸入的使用者名稱和密碼正確,就會結束程式,反之虎一直執行,直到輸入正確為止。這個是無限輸入的。還有一種結束本次迴圈的方法,但是又有點不一樣,那就是continu,continu是用於結束本次迴圈 直接開始下一次迴圈的,**示例:
count = 1
while count < 11:
if count == 4:
count += 1
continue # 結束本次迴圈 開始下一次迴圈
'''直接跳到條件判斷的地方重新執行'''
print(count)
count += 1
流程圖:
# 1. 使用者登入
username = input('使用者名稱: ') # 請輸入你的使用者名稱
password = input('密碼: ') # 請輸入你的密碼
if username == 'jason' and password == '123': # 假如你的使用者名稱等於jason並且密碼等於123
print('登入成功') # 登入成功
else: # 否則
print('使用者名稱或密碼錯誤') # 使用者名稱或密碼錯誤
#2. 成績評定
cj = input('成績: ') # 請輸入你的成績
cj = int(cj) # 將輸入的成績強制轉換成整型
if cj > 90: # 假如成績大於90
print('優秀') # 列印優秀
elif cj > 80: # 假如成績大於80
print('良好') # 列印良好
elif cj > 70: # 假如成績大於70
print('一般') # 列印一般
elif cj > 60: # 假如成績大於60
print('及格') # 大於及格
else: # 否則
print('掛科') # 掛科
# 3.今日練習
i = 0 # 設定變數i = 0
age = 24 # 年齡 = 24
while i < 4: # 當i < 4時
a = input("請猜測一位'女士'的年齡:") # 請猜測年齡
a = int(a) # 將年齡轉換為整型
if a == age: # 假如猜測的年齡與真是年齡相等
print('回答成功') # 回答成功
break # 結束本層迴圈
else: # 否則
print('回答錯誤') # 回答錯誤
i += 1 # i += 1
if i == 3: # 假如 i = 3
str = input('是否繼續猜測:') # 請輸入是否繼續猜測
if str == 'y': # 假如輸入y
i = 0 # i= 0
else: # 否則
break # 結束這次迴圈
今日學習彙總
學習方法 英語的學習 在it行業,英語的作用是毋庸置疑的,而對於我這種英語基礎非常低的,最有效的提公升方式,還是背單詞。背單詞是乙個長期累積的過程,而我們至少需要在以後能讀懂專案要求。因為是乙個長期累積的過程,所以使用百詞斬,每天記五個,沒周複習所學就行。主要核心還是放在技術學習上 理財的學習 這既...
今日學習(五)
昨天 西湖論劍被打爆了,逆向做了flow,感覺像srop,就乙個xor tea沒了,第乙個迷宮不會爆破,太菜了。loder後面沒時間看了,tcl 今天看了c 反彙編 pwn做了兩個簽到題 入口函式是maincrtstartup 初始化堆,環境變數什麼的,感覺不重要 堆變數申請堆空間時呼叫 heap ...
今日學習日誌
總結 疑問和faq 1 關於巨集定義的 段也叫巨集函式 應當採用 define foo dowhile 0 這個方式定義的巨集可以很好的被保護起來 不會發生 段預處理時產生的歧義 2 register關鍵字定義的變數儲存在cpu的快取記憶體cache區 並非普通的暫存器 可以使用的cache區大小由...