python 學習筆記

2021-09-02 22:14:33 字數 2843 閱讀 9712

乙個語句中運算沒有前後順序,換言之,在以下**中,不是講a的值改變後才對b進行a+b的運算,就是說b還是原來的沒改變的a和b相加之和。

a, b =0,

1while b <

100 :

a, b = b, a+b

#輸出菲波那切數列 (1 1 2 3 5 8 ...)

print

(b, end =

' ')

可以range函式返回值補充乙個list的元素

如下例:

squares =

for x in

range(1

,15,2

)2)#squares = [ 1, 9 , 25, 49, 81, 121, 169]

但是這樣會留下變數x (x=13 )可能對後面的程式有影響。

如下方法可以避免x變數在迴圈完畢後還存在:

squares =

list

(map

(lambda x: x**2,

range(10

)))#等價於下式

squares =

[x**

2for x in

range(10

)]#這個式子為列表推導式

列表推導式由包含乙個表示式的中括號組成,表示式後面跟隨乙個 for 子句,之後可以有零或多個 for 或 if 子句。結果是乙個列表,由表示式依據其後面的 for 和 if 子句上下文計算而來的結果構成。

例如,如下的列表推導式結合兩個列表的元素,如果元素之間不相等的話:

>>

>

[(x, y)

for x in[1

,2,3

]for y in[3

,1,4

]if x != y][(

1,3)

,(1,

4),(

2,3)

,(2,

1),(

2,4)

,(3,

1),(

3,4)

]等同於

>>

> combs =

>>

>

for x in[1

,2,3

]:..

.for y in[3

,1,4

]:..

.if x != y:..

(x, y)).

..>>

> combs[(

1,3)

,(1,

4),(

2,3)

,(2,

1),(

2,4)

,(3,

1),(

3,4)

]值得注意的是在上面兩個方法中的 for 和 if 語句的順序。

列表推導式也可以巢狀

>>

> a=[1

,2,3

]>>

> z =

[x +

1for x in

[x **

2for x in a]

]>>

> z[2

,5,10

]

元組是由數個逗號分割的值組成。

可以對元組進行拆封操作,並賦值給多個變數,如下:(divmod(a,b)含義是)

>>

>

divmod(15

,2)(

7,1)

>>

> x, y =

divmod(15

,2)>>

> x

7>>

> y

1

建立只含有乙個元素的元組,在值後面跟乙個逗號

>>

> a =

(123

)>>

> a

123>>

>

type

(a)<

class

'int'

>

#不加逗號則建立出來的是數字型別而非元組型別

>>

> a =

(123,)

>>

> b =

321,

>>

> a

(123,)

>>

> b

(321,)

>>

>

type

(a)#通過type()方法可以得知任意變數的資料型別

<

class

'tuple'

>

#加逗號出來的型別才為tuple

>>

>

type

(b)<

class

'tuple'

>

集合是乙個無序不重複元素的集

基本功能:關係測試消除重複元素

集合物件支援union(聯合),intersection(交),difference(差),symmetric difference(對稱差集)(對稱差集就是多個集合除去相交部分所有元素的集合)

建立:可以使用大括號{}和set()方法

注意

(1)建立空集合必須使用set()方法,因為{}建立的是字典而非集合。

(2)set([iterable]) set()方法括號內必須為可迭代物件

python教學筆記 python學習筆記(一)

1.eval 函式 eval是單詞evaluate的縮寫,就是 求.的值的意思。eval 函式的作用是把str轉換成list,dict,tuple.li 1 1,2,3 print eval li 1 di 1 print eval di 1 tu 1 2,4,6 print eval tu 1 執...

python學習筆記

coding utf 8 coding utf 8 應該像八股文一樣在每個指令碼的頭部宣告,這是個忠告 為了解決中文相容問題,同時你應該選擇支援 unicode 編碼的編輯器環境,保證在執行指令碼中的每個漢字都是使用 utf 8 編碼過的。cdays 5 exercise 3.py 求0 100之間...

Python 學習筆記

python 學習筆記 def run print running.def execute method method execute run result running.condition false test yes,is true if condition else no,is false ...