Python——控制語句和語法規(guī)則

if語句

Python if語句是選取要執(zhí)行的操作。

通用格式

if <test1>:
  <statements1>
elif <test2>:
  <statements2>
else:
  <statements3>

Python語法規(guī)則

Python語法特性

  • 語句是逐個運行的
  • 塊和語句的邊界會自動檢測。
  • 復(fù)合語句=首行+“:”+縮進語句。Python中所有復(fù)合語句都遵循相同格式:首行會以冒號終止,再接一個或多個嵌套語句。通常都是在首行下縮進的。
  • 空白行、空格以及注釋通常都會忽略。
  • 文檔字符串會被忽略

代碼塊分隔符

Python會自動以行縮進檢測塊的邊界,也就是程序代碼左側(cè)的空白空間??s進至右側(cè)相同距離的所有語句屬于同一塊的代碼。塊內(nèi)的代碼會垂直對齊。更深層的嵌套塊就是比所在塊的語句進一步向右縮進

代碼結(jié)構(gòu)

在Python中盡管可以使用空格或制表符來縮進,在一段代碼塊中混合使用這兩者通常不是好主意。

if/else三元表達式

在Python2.5中引入了新的表達式格式

A= Y of X else Z
只有當(dāng)X為真才會執(zhí)行表達式Y(jié),當(dāng)X為假,才會執(zhí)行表達式Z

循環(huán)計數(shù)器range

range函數(shù)是通用的工具,可用在各種環(huán)境下,range可以產(chǎn)生一個固定順序的索引

>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(2,5))
[2, 3, 4]
>>> list(range(0,10,2))
[0, 2, 4, 6, 8]
  • range中有一個參數(shù)時range會產(chǎn)生從零算起的整數(shù)列表,其中不包括該參數(shù)的值
  • range中有兩個參數(shù)時,第一個參數(shù)將視為下邊界。
  • range中有三個參數(shù)時,Python會對每個連續(xù)整數(shù)加上步進值從而得到結(jié)果
    range()常用來間接的迭代一個序列。與for循環(huán)結(jié)合后的執(zhí)行速度是十分快的
>>> for i in range(3):
...     print(i,'pythons')
... 
0 pythons
1 pythons
2 pythons

并行遍歷語句:zip

  • zip會取得一個或多個序列為參數(shù),然后返回元組的列表。將這些序列中的并排的元素配成對
>>> L1=[1,2,3,4,5]
>>> L2=[2,3,4,5,6]
>>> print(zip(L1,L2))
<zip object at 0x10228e208>
>>> print(list(zip(L1,L2)))
[(1, 2), (2, 3), (3, 4), (4, 5), (5, 6)]
>>> L2=[2,3,4,5]
>>> print(list(zip(L1,L2)))
[(1, 2), (2, 3), (3, 4), (4, 5)]
>>> print(tuple(zip(L1,L2)))
((1, 2), (2, 3), (3, 4), (4, 5))
  • zip返回的是一個元組對象
  • zip接收任何類型的序列(可迭代對象,可以是文件)
  • zip可以有兩個以上的參數(shù)
  • 在參數(shù)長度不同時,zip會以最短序列的長度為準來截斷所得到的元組
>>> S1='abc'
>>> S2='xyz123'
>>> tuple(zip(S1,S2))
(('a', 'x'), ('b', 'y'), ('c', 'z'))

使用zip構(gòu)造字典

  • Python2.2之前的版本
>>> keys=['a','b','c','d']
>>> vals=[1,3,5,7]
>>> dict_a = {}
>>> for k,v in zip(keys,vals):
...     dict_a[k]=v
... 
>>> print(dict_a)
{'a': 1, 'b': 3, 'c': 5, 'd': 7}
  • Python2.2后可以直接使用字典的構(gòu)造函數(shù)dict
>>> keys=['spam','eggs','toast']
>>> vals=[1,2,3]
>>> D=dict(zip(keys,vals))
>>> D
{'spam': 1, 'eggs': 2, 'toast': 3}

產(chǎn)生偏移元素enumerate

enumerate函數(shù)會返回一個生成器對象:這種對象支持迭代協(xié)議,可以得到偏移值的計數(shù)器

>>> s= 'SPAM'
>>> for (offset,item) in enumerate(s):
...     print(item,offset)
... 
S 0
P 1
A 2
M 3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容