python语句和语法
python語句和語法
python程序結構:
1.程序由模塊構成。
2.模塊包含語句。
3.語句包含表達式。
4.表達式建立并處理對象。
python的語法實質上是有語句和表達式組成的。表達式處理對象并嵌套在語句中。語句還是對象生成的地方(例如,賦值語句中的表達式),有些語句會完全生成新的對象類型(函數、類等)。語句總是存在于模塊中,而模塊本身則又是由語句來管理的。
python語句:
| 語句 | 角色 | 例子 |
| 賦值 | 創建引用值 | a,b,c = ‘good’,’bad’,’ugly’ |
| 調用 | 執行函數 | log.write(‘hello,world’) |
| 打印調用 | 打印對象 | print(“hello world”) |
| if/elif/else | 選擇動作 | if ‘print’ in text: print(text) |
| for/else | 序列迭代 | for x in mylist: print(x) |
| while/else | 一般循環 | while x>y: print(“hello”) |
| pass | 空占位符 | while True: pass |
| break | 循環退出 | while True: if exittest(): break |
| continue | 繼續下一次循環 | while True: if skiptest(): continue |
| def | 函數和方法 | def f(a,b,c=1,*d): print(a+b+c+d[0]) |
| return | 函數返回結果 | def f(a,b,c=1,*d): return a+b+c+d[0] |
| yield | 生成器表達式 | def gen(n): for i in n:yield i * 2 |
| global | 命名空間,全局變量 | x = ‘old’ def function(x): global x,y,;x = ‘new’ |
| nonlocal | 局部變量(python3.0+) | def outer(): x = ‘old’ def function(): nonlocalx;n=’new’ |
| import | 模塊訪問,導入 | import sys |
| from | 模塊屬性訪問 | from sys import stdin |
| class | 創建對象 | class Subclass(Superclass): staticData = [] def method(self): pass |
| try/except/finally | 捕捉異常 | try: action() except: print(‘action error’) |
| raise | 觸發異常 | raise EbdSearch(location) |
| assert | 調試檢查 | assert x>y,’x too small’ |
| with/as | 環境管理器 | with open(‘data’) as myfile: process(myfile) |
| del | 刪除引用 | del data[k] del data[i:j] del obj.attr del variable |
終止行就是終止語句
x = 1;
在python中,一般原則是,一行的結束會自動終止出現該行的語句.也就是可以省略分號.
x = 1
一行的結束就是終止該行語句(沒有分號).
嵌套語句是代碼塊并且與實際的縮進相關(沒有大括號).
雖然語句一般都是一行一個,但在python中也有可能出現某一行擠進多個語句情況,這時他們由分號隔開:
>>> a = 1;b = 2;print(a + b) 3
這時python中唯一需要分號的地方——作為語句界定符。
語句的另一個特殊規則基本可以讓一個語句的范圍橫跨多行。為了能實現這一操作,只需要一對括號把語句括起來就可以了:括號(),方括號[],或者字典的大括號{}。任何括在這些符號里的程序代碼都可橫跨好幾行。語句將一直運行,直到遇到包含閉合括號的哪一行。
>>> mylist = [111, ... 222, ... 333, ... 444] >>> mylist [111, 222, 333, 444]
括號可以包含一切的——因為任何表達式都可以包含在內。
x = (a + b +
c + d)
if(A == 1 and
b == 2 and
c == 3):
print('hello world')
還有一條老的規則也允許我們跨越數行——當上一行以反斜線結束時,可以在下一行繼續:
X = A + B +
C + D
縮進
python復合語句采用縮進代碼風格。一般為4個空格。
while (x > 0):
---1----
---2----
....
賦值語句表達式和打印
賦值語句建立對象引用值。賦值語句總是建立對象的引用值,而不是復制對象。因此,python變量更像指針,而不是數據存儲區域。
變量名在首次賦值時會被創建。python會在首次將值(即對象引用值)賦值給變量時創建其變量名,有些數據結構也會在賦值時創建(例如,字典中的元素,一些對象屬性)。一旦賦值了,每當這個變量名出現在表達式時,就會被其所引用的值取代。
變量名在引用前必須先賦值。使用尚未賦值的變量名將會引發異常。
執行隱式賦值的一些操作。賦值語句會在許多情況下使用,模塊導入、函數和類的定義、for循環變量以及函數參數全都是隱式賦值運算。
賦值語句的形式:
| 運算 | 解釋 |
| s = ‘hello’ | 基本形式 |
| s,h = ‘hello’,’world’ | 元組賦值運算 |
| [s,h] = [‘hello’,’world’] | 列表賦值運算 |
| a,b,c,d,e = ‘hello’ | 序列賦值運算 |
| a,*b = ‘hello’ | 擴展的序列解包 |
| a = b = ‘hello’ | 多目標賦值運算 |
| a += 42 | 增強賦值運算(相當于a = a + 42) |
| a,b,c = range(3) | 生成器賦值運算 |
不允許出現過個帶*好的變量賦值:
>>> a,*b,c,*d = 'helloworld' File "<stdin>", line 1 SyntaxError: two starred expressions in assignment
增強賦值語句:
x += y x &= y x -= y x |= y x *= y x ^= y x /= y x >>= y x %= y x <<= y x **= y x //= y
程序輸入減少
左側只需計算一次.在x += y中,x可以是復雜的對象表達式。在增強形式中,則只需計算一次。然而,在完整形式 x = x + y中,x出現兩次,必須執行兩次。因此增強賦值語句通常執行得更快。
優化技術會自動選擇。對于支持原處修改的對象而言,增強形式會自動執行原處的修改運算,而不是相比更慢速度的復制。
>>> L = [1,2,3,4] >>> L += [5,6] #列表使用增強型賦值時,python會自動調用較快的extend方法,而不是使用較慢的“+”合并運算 >>> L [1, 2, 3, 4, 5, 6]
變量命名規則
python中,當為變量名賦值時,變量名就會存在。但是,要遵循如下規則:
語法:(下劃線或字母)+(任意數目的字母、數字或下劃線)
區分大小寫
禁止使用保留字:
python3.0+保留字
False class finally is return None continue for lambda try True def from nonlocal while and del global not with as elif if or yield assert else import pass break except in raise
總結
以上是生活随笔為你收集整理的python语句和语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中国人口百大姓氏排名正确排列是?
- 下一篇: 不是国家要用此地,而是拆房后空在那里?