歡迎來到我們的系列博客《Python全景系列》!在這個系列中,我們將帶領你從Python的基礎知識開始,一步步深入到高級話題,幫助你掌握這門強大而靈活的編程語法,無論你是編程新手,還是有一定基礎的開發者,這個系列都將提供你需要的知識和技能,
這是系列第三篇,在這篇文章中我們將全面深入地介紹 Python 的控制流程,包括條件陳述句、回圈結構和例外處理等關鍵部分,尤其會將串列決議、生成器、裝飾器等高級用法一網打盡,此外,我還將分享一些獨特的見解和研究發現,希望能給你帶來新的啟發,文章的結尾,我們將有一個 "One More Thing" 環節,我會分享一個很特別但又很少人知道的有用的 Python 控制流程的技巧,
一、條件陳述句(If-Elif-Else)
Python的條件陳述句是通過一潭訓多條陳述句的執行結果(True或者False)來決定執行的代碼塊,條件陳述句的基本形式包括 if、if-else 和 if-elif-else 三種,
# if 陳述句
x = 10
if x > 0:
print("x is positive")
# if-else 陳述句
if x % 2 == 0:
print("x is even")
else:
print("x is odd")
# if-elif-else 陳述句
if x < 0:
print("x is negative")
elif x == 0:
print("x is zero")
else:
print("x is positive")
注意Python的縮進規則,這是Python語法的一大特色,縮進用于區分代碼塊,比如以上if-elif-else的代碼塊,此外,Python中沒有類似C++、Java的大括號{}來控制陳述句塊,完全依賴于縮進,
二、回圈結構(For和While)
Python中的回圈有兩種,一種是for回圈,一種是while回圈,
1 # for回圈
2 for i in range(5):
3 print(i)
4
5 # while回圈
6 count = 0
7 while count < 5:
8 print(count)
9 count += 1
Python的for回圈更像是一個遍歷回圈,它會遍歷序列中的每一個元素,而在很多其他語言中,for回圈是通過條件判斷來控制回圈的,Python中的range()函式在很多情況下都非常有用,特別是在回圈結構中,
三、例外處理(Try-Except)
在Python中,我們可以使用try-except陳述句來處理可能出現的錯誤或例外,
try:
print(1 / 0)
except ZeroDivisionError:
print("You can't divide by zero!")
Python的例外處理機制是一個很強大的工具,它可以幫助我們在出現錯誤或例外時保持程式的正常運行,不僅如此,Python的例外處理還支持多個except子句,這樣我們可以對不同型別的例外進行不同的處理,此外,我們還可以使用finally子句,無論是否發生例外,finally子句中的代碼總會被執行,常常用于進行清理作業,
四、控制流程的高級用法!
Python 的控制流程不僅僅局限于簡單的條件判斷、回圈和例外處理,Python 還有很多高級的控制流程工具,它們可以幫助我們更高效、更精簡地撰寫代碼,以下是一些常見的高級控制流程工具:
1. 串列決議
串列決議是一種創建串列的簡潔方法,它在一行代碼中就可以完成回圈和條件判斷等操作,以下是一個串列決議的例子:
squares = [x**2 for x in range(10)]
以上代碼會生成一個包含 0 到 9 的平方的串列,這個串列決議的程序可以理解為:對于每個在 `range(10)` 中的 `x`,計算 `x` 的平方,然后將結果添加到串列中,串列決議相比普通的回圈陳述句,不僅代碼更簡潔,而且執行速度更快,這是因為串列決議在內部實作了優化,而普通的回圈陳述句沒有,
2. 生成器運算式
生成器運算式和串列決議類似,但它生成的是一個生成器物件,而不是一個實際的串列,生成器物件是一個可迭代的物件,它在每次迭代時都會生成新的值,而不是一次性生成所有的值,以下是一個生成器運算式的例子:
squares = (x**2 for x in range(10))
以上代碼會創建一個生成器物件,這個物件會在每次迭代時生成一個平方數,你可以通過 `next()` 函式或者 `for` 回圈來迭代這個物件,生成器運算式比串列決議更節省記憶體,因為它不需要一次性生成所有的值,這在處理大規模資料時非常有用,
3. 裝飾器
裝飾器是一個非常強大的工具,它允許我們修改一個函式或者類的行為,而不需要改變它的源代碼,以下是一個簡單的裝飾器例子:
1 def my_decorator(func):
2 def wrapper():
3 print("Something is happening before the function is called.")
4 func()
5 print("Something is happening after the function is called.")
6 return wrapper
7
8 @my_decorator
9 def say_hello():
10 print("Hello!")
11
12 say_hello()
以上代碼定義了一個裝飾器 `my_decorator`,它會在呼叫 `say_hello` 函式前后分別列印一段訊息,`@my_decorator` 就是將 `say_hello` 函式裝飾成 `my_decorator` 的方式,裝飾器可以用來做很多事情,比如日志記錄、性能測驗、事務處理、快取等等,在很多情況下,使用裝飾器可以讓我們的代碼更加干凈,更易于管理和重用,
One More Thing!!
我在閱讀GitHub和各種技術博客中發現了一個很特別但又很少人知道的Python控制流程技巧——使用`else`子句在`for`和`while`回圈中,
許多人可能不知道,`for`回圈和`while`回圈可以有一個可選的`else`子句,它在回圈正常結束時執行,如果回圈被`break`陳述句終止,`else`子句將不會被執行,
1 for i in range(5):
2 print(i)
3 else:
4 print("Loop finished!")
5
6 count = 0
7 while count < 5:
8 print(count)
9 count += 1
10 else:
11 print("Loop finished!")
這個特性在很多情況下都非常有用,比如我們在回圈中搜索一個元素,如果找到了就通過`break`陳述句終止回圈,如果回圈正常結束還沒有找到,就執行`else`子句中的代碼,
希望你在閱讀這篇文章后,能對Python的控制流程有更深入的理解,如果你有任何問題或者有更好的建議,歡迎在下方留言,我們一起探討,一起學習,
【第一時間獲得Python全視角更新資訊,請關注本人微信公眾號: Python全視角】轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/552665.html
標籤:其他
上一篇:實驗一 Java編程環境使用
下一篇:返回列表
