python學習筆記

2021-07-16 04:44:00 字數 3473 閱讀 9023

1、如果字串內部既包含'又包含"怎麼辦?可以用轉義字元\來標識,比如:

'i\'m \"ok\"!'
表示的字串內容是:

i'm "ok"!
如果字串內部有很多換行,用\n寫在一行裡不好閱讀,為了簡化,python允許用'''...'''的格式表示多行內容,可以自己試試:

>>> print('''line1

... line2

... line3''')

line1

line2

line3

上面是在互動式命令行內輸入,注意在輸入多行內容時,提示符由>>>變為...,提示你可以接著上一行輸入。如果寫成程式,就是:

print('''line1

line2

line3''')

理解變數在計算機記憶體中的表示也非常重要。當我們寫:

a = 'abc'

時,python直譯器幹了兩件事情:

在記憶體中建立了乙個'abc'的字串;

在記憶體中建立了乙個名為a的變數,並把它指向'abc'

解釋一下整數的除法為什麼也是精確的。在python中,有兩種除法,一種除法是/

>>> 

10 / 3

3.3333333333333335

/除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數:

>>> 

9 / 3

3.0

還有一種除法是//,稱為地板除,兩個整數的除法仍然是整數:

>>> 10

// 3

3

你沒有看錯,整數的地板除//永遠是整數,即使除不盡。要做精確的除法,使用/就可以。

因為//除法只取結果的整數部分,所以python還提供乙個餘數運算,可以得到兩個整數相除的餘數:

>>> 

10 % 3

1

無論整數做//除法還是取餘數,結果永遠是整數,所以,整數運算結果永遠是精確的。

單個字元的編碼,python提供了ord()函式獲取字元的整數表示,chr()函式把編碼轉換為對應的字元:

>>> ord('a')

65>>> ord('中')

20013

>>> chr(66)

'b'>>> chr(25991)

'文'

如果知道字元的整數編碼,還可以用十六進製制這麼寫str

>>> 

'\u4e2d\u6587'

'中文'

兩種寫法完全是等價的。

由於python的字串型別是str,在記憶體中以unicode表示,乙個字元對應若干個位元組。如果要在網路上傳輸,或者儲存到磁碟上,就需要把str變為以位元組為單位的bytes

python對bytes型別的資料用帶b字首的單引號或雙引號表示:

x = b'abc'

要注意區分'abc'b'abc',前者是str,後者雖然內容顯示得和前者一樣,但bytes的每個字元都只占用乙個位元組。

以unicode表示的str通過encode()方法可以編碼為指定的bytes,例如:

>>> 'abc'.encode('ascii')

b'abc'

>>> '中文'.encode('utf-8')

b'\xe4\xb8\xad\xe6\x96\x87'

>>> '中文'.encode('ascii')

traceback (most recent call last):

file "", line 1, in

unicodeencodeerror: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

純英文的str可以用ascii編碼為bytes,內容是一樣的,含有中文的str可以用utf-8編碼為bytes。含有中文的str無法用ascii編碼,因為中文編碼的範圍超過了ascii編碼的範圍,python會報錯。

bytes中,無法顯示為ascii字元的位元組,用\x##顯示。

反過來,如果我們從網路或磁碟上讀取了位元組流,那麼讀到的資料就是bytes。要把bytes變為str,就需要用decode()方法:

格式化整數和浮點數還可以指定是否補0和整數與小數的位數:

>>> 

'%2d-%02d' % (3, 1)

' 3-01'

>>>

'%.2f' % 3.1415926

'3.14'

如果你不太確定應該用什麼,%s永遠起作用,它會把任何資料型別轉換為字串:

>>> 

'age: %s. gender: %s' % (25, true)

'age: 25. gender: true'

有些時候,字串裡面的%是乙個普通字元怎麼辦?這個時候就需要轉義,用%%來表示乙個%

>>> 

'growth rate: %d %%' % 7

'growth rate: 7 %'

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 ...