Python學習筆記08

2021-07-11 09:50:12 字數 3864 閱讀 8137

>>> nudge = 1

>>> wink = 2

>>> a,b = nudge,wink

>>> a,b

(1, 2)

>>> [c,d] = [nudge,wink]

>>> c,d

(1, 2)

>>> nudge = 1

>>> wink = 2

>>> [a,b,c] = (1,2,3)

>>> a,c

(1, 3)

>>> (a,b,c) = "abc"

>>> a,c

('a', 'c')

###高階序列賦值語句模式

>>> string = 'spam'

>>> a,b,c,d = string #序列賦值需要兩邊的元素數目相等

>>> a,d

('s', 'm')

>>>

>>> a,b,c = string #不相等則報錯

traceback (most recent call last):

file "", line 1, in

valueerror: too many values to unpack (expected 3)

>>> seq = [1,2,3,4]

>>> a,b,c,d = seq #兩邊元素個數要對應

>>> print(a,b,c,d)12

34>>> a,b = seq #元素不對應就報錯

traceback (most recent call last):

file "", line 1, in

valueerror: too many values to unpack (expected 2)

>>>

>>> a, *b = seq #序列解包,將沒有賦值給其他變數的內容全部接收

>>> a

1>>> b

[2, 3, 4]

>>> *a,b = seq

>>> a

[1, 2, 3]

>>> b

4

>>> a,*b,c = seq #先給其他變數賦值,剩下的再賦值給帶星號的變數

>>> a

1>>> b

[2, 3]

>>> c

4

>>> a,*b = 'spam'

>>> a

's'>>> b

['p', 'a', 'm']

解包的邊界情況
>>> seq

[1, 2, 3, 4]

>>> a,b,c,*d = seq #帶星號的名稱可能只匹配單個的項,但是總是向其賦值乙個列表

>>> print(a,b,c,d)12

3 [4]

>>> seq

[1, 2, 3, 4]

>>> a,b,c,d,*e = seq #沒有剩下的內容進行匹配,會被賦值乙個空的列表

>>> print(a,b,c,d,e)12

34 >>> a,b,*e,c,d = seq

>>> print(a,b,c,d,e)12

34

錯誤:
>>> seq

[1, 2, 3, 4]

>>> a,*b,c,*d = seq #有多個帶星號的名稱

file "", line 1

syntaxerror: two starred expressions in assignment

>>> a,b = seq #值少了而沒有帶星號的名稱

traceback (most recent call last):

file "", line 1, in

valueerror: too many values to unpack (expected 2)

>>> *a = seq #帶星號的名稱自身沒有編寫到乙個序列中

file "", line 1

syntaxerror: starred assignment target must be in a list or tuple

>>> *a, = seq

>>> a

[1, 2, 3, 4]

>>> a = b = c = 'spam'

>>> a,b,c

('spam', 'spam', 'spam')

#等價於

>>> c = 'spam'

>>> b = c

>>> a = b

注意:這裡是乙個物件由三個變數共享引用,這種行為對於不可變型別而言沒有問題.

>>> a = b = 0

>>> b = b + 1

>>> a,b

(0, 1)

>>> a = b =

>>> a,b

([22], [22])

>>> a =

>>> b =

>>> a,b

(, [42])

>>> l = [1,2]

>>> m = l

>>> l = l + [3,4] #傳統的賦值,產生新的物件

>>> l,m

([1, 2, 3, 4], [1, 2])

>>> l = [1,2]

>>> m = l

>>> l += [3,4] #使用增強賦值,沒有產生新的物件,在原處修改物件

>>> l,m

([1, 2, 3, 4], [1, 2, 3, 4])

原型: print([object, …][, sep = 』 『][,end = 『\n』][, file = sys.stdout])

python 2.6 和 python 3.0 print的等價形式

python 2.6

python3.0

print x, y

print(x, y)

print x,y,

print(x, y, end = 」)

print >> afile, x, y

print(x, y, file = afile)

>>> 

import sys

>>> temp = sys.stdout

>>> sys.stdout = open('log.txt','a') #重定向輸出流

>>> print('spam')

>>> print(1,2,3)

>>> sys.stdout.close()

>>> sys.stdout = temp #恢復輸出流

>>> print('back here')

back here

>>> print(open('log.txt').read())

spam12

3

>>> log = open('log.txt','w')

>>> print(1,2,3,file = log)

>>> print(4,5,6,file = log)

>>> log.close()

>>> print(7,8,9)78

9>>> print(open('log.txt').read())12

3456

from __future__import print_function

python 學習筆記(08)

列表方法 append 在列表末尾追加乙個新的物件 例 a 1,2,3,5,8,9,6,5,4 append 10 a 1,2,3,5,8,9,6,5,4,10 count 統計某個元素在列表 現的次數 例 ss 1,2,3,5,8,9,6,5,4 ss.count 5 2 ss.count 4 1...

學習筆記08

2017年9月27日 學習筆記與總結 1.定位方式 相對定位 position relative 1 相對於自己原來的位置進行定位 2 如果是僅僅新增了相對定位的樣式,position relative 顯示效果不發生變化 3 使用定位讓元素發生偏移的 可以使用z index來調整顯示順序 最大值為...

HTML學習筆記08

1 表單 表單是乙個包含表單元素的區域,表單元素是允許使用者在表單中輸入資訊的元素,表單用標籤定義。1 2 form 3first name 4form 2 輸入標籤,輸入型別是由型別屬性 type 定義的,型別有文字域 單選按鈕等。3 文字域 輸入文字 1 2 form 3姓名 4 input t...