乙個語句中運算沒有前後順序,換言之,在以下**中,不是講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 ...