Python的語法實質上是由語句和表達式組成的。表達式處理對象並嵌套在語句中。語句編碼實現程序操作中更大的邏輯關係,用來處理Python中的各個對象。
Python語句:
語句 | 作用 | 例子 | 備註 |
---|---|---|---|
賦值 | 創建引用值 | a=3 | 創建數字對象3,並用變量a引用該變量 |
調用 | 執行函數 | len(a) | 執行函數len |
打印調用 | 打印對象 | print(“Hello world”) | 打印出字符串 |
if/elif/else | 條件判斷 | if “Python” in text: print(text) | 邏輯判斷 |
for/else | 序列迭代 | for i in mylist:print(i) | 序列中元素迭代操作 |
while/else | 一般循環 | while X>Y:print(True) | 循環語句 |
pass | 空佔位符 | while True: pass | 佔用一條語句的位置 |
break | 退出循環 | while True:if exittest():break | 滿足某個條件後,退出外層嵌套的循環 |
continue | 繼續循環 | while True:if skiptest():continue | 繼續下一次迭代循環 |
def | 創建函數或方法 | def myfunction(): | 定義一個函數或者一個對象的方法 |
return | 返回函數值 | def myfunction(): return “Hello” | 退出方法或者函數的執行,並且返回結果 |
yield | 生成器函數 | def gen(n):for i in n:yield i*2 | python中生成器是迭代器的一種,使用yield返回函數值。每次調用yield會暫停,並等待返回值。yield實際上是一個表達式 |
global | 命名空間 | x=1;def myfunction():global x;x=3 | 聲明變量爲全局變量 |
nonlocal | 命名空間(Python 3.0)使用 | def outer(): x=’older’;def inner():nonlocal x;x=’new’ | 聲明變量爲外層函數的變量 |
import | 模塊導入 | import tensorflow | 導入相關的Python模塊 |
from | 訪問屬性 | from sys import stdin | 從相關模塊中,導入某個方法或屬性 |
class | 創建對象 | class person(superclass):….. | 創建新的對象 |
try/except/finally | 捕捉異常 | try: action except: action error | 捕捉try語句下的代碼塊中的異常 |
raise | 觸發異常 | raise EndSearch(location) | 拋出相關的異常錯誤 |
assert | 斷言,調試檢查 | assert X>Y,’X is smaller than y’ | 斷言條件必須成立,否則直接退出程序執行 |
with/as | 環境上下文管理器 | with open(‘myfile.txt’) as file: | 語句執行完成後,自動關閉相關對象(如文件) |
del | 刪除引用 | del a | 刪除對象a的引用 |
Python複合語句
if x>y:
x=2
y=1
if (x>y):
x=2
y=1
- 所有的Python複合語句都是在首行以冒號結尾
- 括號是可選的,從技術上講,Python中每個表達式都可以用括號括起來,在這裏用括號也沒什麼問題,不會影響表達式返回的結果。
- 終止行就是終止語句,可以不再用分號結尾。當然可以加上分號,Python允許這麼做。
- 縮進的結束就是代碼塊的結束,不會再用{}花括號來表示代碼塊,只是適用縮進的方法來表示代碼塊。Python的語法規則是給定一個單獨的嵌套塊中所有語句的縮進距離都必須相同。統一的縮進迫使Python程序由更高的可讀性。在同一個代碼塊中,不要混用製表符和空格,要麼只用製表符,要麼只用空格,混用帶來的是降低了程序的可維護性。
總結
Python語句中,最具特色的就是縮進這種在其他語言看來只是格式問題,Python將其變化爲了語法,提高了Python的可讀性,所見即所得。在一般情況下,每一行就編寫一條語句,而嵌套語句都具有相同的縮進距離,嵌套的越深的代碼塊從視覺上,就會越靠右,嵌套越淺的代碼就會越靠左。爲了提高可讀性,一條長語句也可以放在一個括號內,讓他跨越多行。一行內有多條語句時,也可以用分號間隔開來。