推導式建立序列
函式用法和底層分析
for 迴圈和可迭代物件遍歷
for迴圈常用於可迭代物件的便利。
可迭代物件:可以被迴圈的物件。
python中,可迭代物件包含:
1) 序列(字串、元組、列表);
2)字典
3)迭代器物件
4)生成器函式
for迴圈語法格式:
for 變數 in 可迭代物件:
迴圈體語句
range物件是乙個迭代器物件,用來產生指定範圍的數字序列。格式為:
range(start,end[,step])
巢狀迴圈
幾個典型例題:
例1:列印如下圖案:
0 0 0 0 0 0
1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
思路: 把每一行看作是一次大迴圈,在這個大迴圈裡面包含數字+空格的迴圈。**如下:
for x in
range(5
):for y in
range(5
):print
(x,end=
"\t"
)print()
#換行
例2:列印九九乘法表
思路: 和例1的思路相似,九九乘法表可以看作是乙個有九行九列的**。把每一行看作是一次大迴圈,在這個大迴圈裡面包含數字+空格的迴圈。**如下:
for i in
range(1
,10):
for j in
range(1
,i+1):
print
("*="
.format
(i,j,i*j)
)print
()
注: python中預設數字從0開始。
break和continue語句
else語句
while、for迴圈可以附帶乙個else語句。如果for、while語句沒有被break語句結束,則會知行else子句,否則不執行。語法格式如下:
while迴圈
while 條件表示式:
迴圈體while else:
語句塊for迴圈
for 變數 in 可迭代物件:
迴圈體while else:
語句塊迴圈**優化
遵守下面三個原則可以大大提高執行效率,避免不必要的低效運算:
(1)盡量減少迴圈內部不必要計算;
(2)巢狀迴圈中,儘量減少內層迴圈的計算,盡可能往外提;
(3)區域性變數查詢較快,盡量使用區域性變數。
其他優化手段:
(1)連線多個字元,**使用join()**而不使用+;
(2)列表進行元素插入和刪除,盡量在列表尾部操作。
zip()函式對多個序列進行並行迭代,zip()函式在最短序列「用完」時就會停止。
>>
> names =
("張三"
,"李四"
,"王五"
,"小六"
)>>
> ages =(1
,2,3
,6)>>
> jobs =
("teacher"
,"programmer"
,"doctor"
)>>
>
for name,age,job in
zip(names,ages,jobs)
>>
>
print
("----"
.format
(name,age,job)
張三--1-
-teacher
李四--2-
-programmer
王五--3-
-doctor
推導式是從乙個或者多個迭代器快速建立序列的一種方法。它可以將迴圈和條件判斷相結合,從而避免冗長的**。推導式是典型的python風格。
總結:列表,集合{},生成器()
列表推導式生成列表物件,語法如下:
[表示式 for item in 可迭代物件]
或者:其中表示式是我們的最終目的。
>>
>
[x for x in
range(1
,5)]
[1,2
,3,4
]>>
>
[x*2
for x in
range(1
,5)]
[2,4
,6,8
]
字典推導式生成字典物件,格式如下:
# 統計文字中字元出現的字元
>>
> my_text =
'i love you, xiepengpeng'
>>
> char_count =
>>
>
print
(char_count)
與字典推導式相比,沒有value。集合推導式生成集合物件,格式如下:
乙個生成器只能執行一次。
函式是可重用的程式**塊。函式的作用,不僅可以實現**的復用,更能實現**的一致性,一致性指的是值要修改函式的**,則所有呼叫該函式的地方都得到體現。
函式(function)的基本概念
python中函式的分類
定義語法如下:
def 函式名([引數列表]):
文件字串
函式體/若干語句
要點:
文件字串
即函式的注釋,通過三個單引號或三個雙引號來實現,中間可以加入多行文字進行說明。
呼叫 help(函式名.doc) 可以答應輸出函式的文件字串。
第五天學python
1 切分字串 language python and j a and c and golang and scala split 切割字串 生成乙個列表 暫時理解為乙個容器 有序序列 result1 language.split and print result1 2 連線序列 生成字串 跟split...
學python的第五天
一 字串操作 三 1 切分字串 language python and j a and c and golang and scala split 切割字串 生成乙個列表 暫時理解為乙個容器 有序序列 result1 language.split and print result1 連線序列 生成字串...
第五天開始學python
多路分支 if 條件表示式 語句1elif 條件表示式 可以有很多個 語句2elif 條件表 達式 語句3else 條件表示式 只會執行一種情況 迴圈語句 重複執行某乙個固定的動作或任務 分為for和while for 變數 in 序列 語句1 語句2 l 1 2,3 4,5 6,7 for i i...