摘要:返回索引頁控制流分支結構循環結構和總結練習參考控制流上一張我們了解了的基本語法和數據結構。和后必須加判斷表達式,一般表達式返回值為布爾型,當非布爾型時,表示該值是否存在。語句以英文冒號結尾邏輯代碼塊以個空格或分隔。
< 返回索引頁
控制流
分支結構
if/elif/else
循環結構
for
while
break 和 continue
pass
總結
練習
參考
控制流上一張我們了解了Python的基本語法和數據結構。到目前位置,我們編寫的代碼都是一行一行的由上往下一次執行的。我們叫這種形式的代碼為順序結構。但是在真正的編碼環境中,這種順序結構實現的場景有限。下面我們來看下Python編程中的一些其他復雜控制結構。
分支結構試想,一個簡單的計算器的計算過程,當我們按下加號鍵的時候,它會執行相加操作;當我們按下減號的時候,它則會執行減法操作。這并產生了2個分支,它根據我們的輸入這個未知的條件來決定該走那個分支。像這種根據某條件來判斷走那個分支的結構叫做分支結構。
if/elif/elsePython 中使用關鍵字if、 else 和 elif 來實現分支結構。下面我們來看下它們的語法:
# -*- coding:utf-8 -*- # calculator.py a, b = 2, 3 sign = input("請輸入運算符:") if sign == "+": # 判斷條件 print(a+b) # 邏輯代碼塊 elif sign == "-": print(a-b) else: print("暫不支持該符號!")
語法說明:
Python 中分支結構中判斷條件以英文冒號 : 結尾;
分支結構中的邏輯代碼塊,以相對于條件語句向右4個空格或1個tab為分隔符,建議使用4個空格,tab在不同系統表現不一致可能引起混了,影響代碼的跨平臺性。
if 和 elif 后必須加判斷表達式,一般表達式返回值為布爾型,當非布爾型時,表示該值是否存在。
我們在輸入運算符時,需要使用引號引起來,因為多帶帶的一個運算符是會報錯的。
if 可多帶帶使用,也可多帶帶和elif 或 else 配合使用。
# if 多帶帶使用 if "1": print("這是真的") # if 和 else 配合使用 if False: print("這是假的") else: print("這是真的") # if 和 elif 配合使用 if False: print("這是假的") elif True: print("這是真的")
條件語句可嵌套使用。
# -*- coding:utf-8 -*- # nesting_if.py a = int(input("請輸入:")) if a > 4: if a < 10: print("大于4,小于10") else: print("大于10") else: print("小于4")
條件語句有一種簡便的寫法,被稱為三元操作符。
a = "上午好" if now_time < 12 else "下午好"循環結構
上一章我們還學習了列表,那當我們要想依次去除列表中的元素時,便需要來循環依次取出,這種循環操作的結構叫做循環結構。
forPython 中使用關鍵字 for 來實現已知長度的循環。用法如下:
l = [1,2,3,4,5] sum = 0 for i in l : sum += i print(sum)
語法說明:
for 使用關鍵字in 來遍歷序列,獲取其元素,有變量i 來表示,以便在之下的邏輯代碼塊中使用。
for 語句以英文冒號結尾
邏輯代碼塊以4個空格或tab分隔。
for 循環也是可以嵌套使用的。
for 還可遍歷成組元素的序列,如下:
l = [(1,2),(1,3),(1,4)] for i, j in l: print(i) print(j)
在Python中提供了一個內置函數 range(start,length,step)來專門生成用來遍歷的整數序列,其返回值為迭代器(可理解為列表對象,后邊會講解)。start為開始整數,可省略,省略時默認為0;length為結束整數,但不包含自己;step 為步長,及2個整數之間的間隔,可省略,省略時默認為1。使用range函數來改寫上邊的代碼為:
sum = 0 for i in range(1,6): sum += i print(sum)while
Python 中還提供了另一種循環語句關鍵字 while 用來實現滿足條件下的一個循環操作。
# loop_while.py i = 0 sum = 0 while i <= 5: sum += i i += 1 print(sum)break 和 continue
我們試想,當while的條件永遠為真時,會發生什么?while下的邏輯塊會被一直執行下去,如果該邏輯段耗費計算機資源的話。計算機資源會被他很快的消耗殆盡。這種情況,我們把它叫做死循環或無限循環。這種循環,大多數情況下都是不對的,除非你明確的知道,你就是要使用一個這樣的無限循環。Python 中提供了2個關鍵字break和continue,讓我們的操作可以跳出無限循環。
break 用法
# while 中使用 sum = 0 while True: if sum > 10: print("sum已大于10") break sum += 1 print(sum) # for 中使用 sum = 0 for i in range(100): if sum > 10: print("sum已大于10") break; sum += 1 print(sum)
語法說明:
break 語句執行后,直接退出循環,不再循環
continue用法
sum = 0 for i in range(100): if sum > 10: print("sum已大于10") continue; sum += 1 print(sum)
語法說明:
continue 語句執行后,當前循環語句之后的語句不再執行,直接跳入下一次的循環繼續執行。
pass有時候,我們的代碼塊想直接跳過,可使用關鍵字 pass。它常被用來占位使用。
for i in range(5): pass # 占位總結
本章我們學習了Python的代碼邏輯控制流,我們來總結下:
Python代碼結構有順序結構、分支結構和循環結構;
分支結構可使用if/elif/else 實現;
循環結構可使用for/while 實現;
可使用break和continue來截斷循環結構;
練習1、 輸出乘法口訣表(九九表)
for i in range(1, 10): for j in range(1, i + 1): print("%d*%d=%d" % (i, j, i * j), end=" ") print()
2、實現一個簡易計算器, 支持 +、-、*、/的運算。
first = int(input("請輸入一個數值:")) sign = input("請輸入運算符:") second = int(input("請輸入一個數值:")) if sign == "+": print("%s+%s=%s" % (first, second, first+second)) elif sign == "-": print("%s-%s=%s" % (first, second, first-second)) elif sign == "*": print("%s*%s=%s" % (first, second, first*second)) elif sign == "/": print("%s/%s=%s" % (first, second, first/second)) else: print("不支持該運算符")
3、 打印如下三角形圖案。
""" * ** *** **** ***** * ** *** **** ***** * *** ***** ******* ********* """
row = int(input("請輸入行數: ")) for i in range(row): for _ in range(i + 1): print("*", end="") print() for i in range(row): for j in range(row): if j < row - i - 1: print(" ", end="") else: print("*", end="") print() for i in range(row): for _ in range(row - i - 1): print(" ", end="") for _ in range(2 * i + 1): print("*", end="") print()
4、實現猜數字游戲, 要求:
計算機出一個1~100之間的隨機數由人來猜
計算機根據人猜的數字分別給出提示大一點/小一點/猜對了
import random answer = random.randint(1, 100) counter = 0 while True: counter += 1 number = int(input("請輸入: ")) if number < answer: print("大一點") elif number > answer: print("小一點") else: print("恭喜你猜對了!") break print("你總共猜了%d次" % counter) if counter > 7: print("你的智商余額明顯不足")參考
https://docs.python.org/3.6/tutorial/index.html
https://github.com/jackfrued/Python-100-Days/blob/master/Day01-15/Day02/%E8%AF%AD%E8%A8%80%E5%85%83%E7%B4%A0.md
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41959.html
摘要:例如,控制臺使用調用類型,因此當您使用控制臺調用函數時,控制臺將顯示返回的值。如果別名用于調用函數,將為別名指向的版本。 場景:現在需要開發一個前后端分離的應用,后端采用 RESTful API 最為方便,但是如果這個后端服務會在一天中的某些時候有高并發的情況,使用什么樣的架構最為簡單呢? 剛思考這個問題的時候我想到的解決方案可能有以下幾種: 使用CDN內容分發網絡,減少主服務器的...
摘要:過去都講究木桶原理,那塊木板短,就去補那塊。現在變了,有了新的木桶原理,讓那塊長木板更長,而短板呢,則交給我們的團隊其他小伙伴。 大家好,我是 DeanWu,我是一個不太會交際的人,比起交際,我更喜歡一個人默默的去鉆研技術。 最近幾年,隨著年齡的增大,我決定改變,人類始終是群居生物,個體的力量始終是渺小的,逐漸認識到了團隊的重要性。過去都講究木桶原理,那塊木板短,就去補那塊。現在變了,...
摘要:在日常的網站使用中,經常會碰到頁面的訪問量或者訪問者人數統計。運行項目,在瀏覽器中輸入顯示的頁面如下剛載入頁面時,顯示頁面被訪問次。當我們將這個這也載入次后,顯示如下這樣我們就用實現了頁面訪問量的統計功能。 ??在日常的網站使用中,經常會碰到頁面的訪問量(或者訪問者人數)統計。那么,在Spring Boot中該如何實現這個功能呢???我們的想法是比較簡單的,那就是將訪問量儲存在某個地方...
摘要:將程序包裝在界面里,可以將輸入通過多種途徑如文本框彈出路徑選擇等輸入到程序里。將輸出通過文本框顯示出來將執行信息如如報錯信息運行進度通過文本框或進度條顯示出來文章安排先介紹安裝和配合的使用。 作為一個程序的開發者,我們僅僅需要在相應路徑通過命令行就可執行那個程序。但是,不懂行的人不理解這個黑框框的東西,陌生領域任何人都沒有安全感,所以他們是拒絕接受一個項目僅僅只是通過一個黑框框來執行的...
摘要:消息格式有三個字段,在消息中承載的數據分別對應于每一個字段。所以應該為那些頻繁出現的消息元素保留之內的標識號。示例編譯這里我們用編譯一下,看得到什么文件名使用以下命令編譯生成了兩個文件此文件包含生成的和類。 gRPC 一開始由 google 開發,是一款語言中立、平臺中立、開源的遠程過程調用(RPC)系統。 本文通過一個簡單的 Hello World 例子來向您介紹 gRPC 。 gR...
閱讀 3751·2021-09-22 15:49
閱讀 3310·2021-09-08 09:35
閱讀 1426·2019-08-30 15:55
閱讀 2326·2019-08-30 15:44
閱讀 719·2019-08-29 16:59
閱讀 1605·2019-08-29 16:16
閱讀 485·2019-08-28 18:06
閱讀 897·2019-08-27 10:55