這里只給出其它文章里不適合出現部分語法風格。
python有幾種類型的復合語句:if、for、while、def、class、try/except、with/as等。這些復合類型的語句在編寫時,要遵循python的語法風格:
- 冒號結尾復合語句的聲明,如
if expr:
、def f():
- 通過縮進數量決定代碼塊層次,同級別的代碼塊縮進數量相同
- 也就是通過縮進來取代其它語言中的
{}
表示的代碼塊層次
- 也就是通過縮進來取代其它語言中的
- 代碼體部分縮進,縮進數量隨意,但同一層次的代碼塊縮進數量必須相同
- 如果代碼體部分只有一個語句,可以直接放在聲明行冒號的后面,如
if expr: print("a")
- 可以使用空格或制表符進行縮進,但縮進同一層次時,不要混用空格或制表符
- 允許這些復合語句的聲明行部分的表達式不使用括號包圍,但使用括號也不會錯,使用括號是為了確保表達式的優先級
- python中的括號類型(如小括號、中括號、大括號)都可以讓代碼換行書寫,也就是續行。雖然
\
也有效,但不建議。
例如:
if a > 3:
print("hello world1")
print("hello world2")
else:
print("hello world else")
上面if和else位於同一層次的全局(文件)代碼塊,if的主分支兩個語句位於同一層次的代碼塊(縮進相同)。在其他語言中,對等的寫法大概如下:
if (a > 3) {
print("hello world1")
print("hello world2")
} else {
print("hello world else")
}
python中,條件表達式部分加上括號也沒問題:
if (a>3):
...
如果代碼體只有單個語句,代碼體可以直接放在冒號后面。例如:
if a > 3:print("a")
def f():print("a")
class F:pass
括號類型包圍的內容,包括列表的中括號[]
、集合或字典的大括號{}
、元組或表達式或包圍函數參數的小括號()
,它們可以隨意換行。
例如:
a = "aaa" + "bbb"
a = ("aaa" +
"bbb")
L = [11,22,33,44]
L = [11,22,
33,44]
D = {"k1":"v1", "k2":"v2", "k3":"v3"}
D = {"k1":"v1",
"k2":"v2",
"k3":"v3"}
if a > 3: print(a)
if (a >
3):print(a)