python筆記二(數據類型和變量、編碼方式、字符串的編碼、字符串的格式化)
一、數據類型
python可以直接處理的數據類型有:整數、浮點數、字符串、布爾值、空值。
整數
浮點數
字符串:雙引號內嵌套單引號,可以輸出 i‘m ok.
也可以用\來實現,\n 換行 \t table
多行字符串用 ‘‘‘ ‘‘‘
布爾值: 可以對布爾值進行與或非運算/ 與and 或or 非not
空值
二、變量
a = 1/ a = "nadech" 與java不同,python在聲明一個變量的時候不用指定變量的類型,直接賦值就可以了
在 執行a =1 的時候,python解釋器實際上執行了兩步操作:創建整數1;聲明變量a,並且把變量a指向整數1
常量PI,即使聲明為了常量,但是python沒有真正的常量
python中整數除法是精確的:10/3 =3.333333333333 地板除法:10//3=3
保留兩個小數點
a = 1 b = 3 print(a/b) #方法一: print(round(a/b,2)) #方法二: print(format(float(a)/float(b),‘.2f‘)) #方法三: print (‘%.2f‘ %(a/b))
三、編碼方式
幾種編碼的方式和編碼的進化!!!!
ASCII編碼,只能編碼127個字符,所以數量有所限制
GB2312(2個字節)中國用來編寫中文並且建立在ASCII碼上,不能與ASCII沖突。之後,韓國、日本都有自己的編碼 and so on.
Unicode編碼(2個字節),把所有語言都統一到一套編碼裏。缺點是2個字節,浪費存儲空間。
UTF-8編碼把一個Unicode字符根據不同的數字大小編碼成1-6個字節,常用的英文字母被編碼成1個字節,漢字通常是3個字節,只有很生僻的字符才會被編碼成4-6個字節。UTF-8的好處就是兼容ASCII碼,節省空間。
用記事本編輯的時候,從文件讀取的UTF-8字符被轉換為Unicode字符到內存裏,編輯完成後,保存的時候再把Unicode轉換為UTF-8保存到文件。
瀏覽網頁的時候,服務器會把動態生成的Unicode內容轉換為UTF-8再傳輸到瀏覽器。
四、python字符串的編碼/字符串的格式化輸出
單個字符的編碼:
>>> ord(‘愛‘) 29233 >>> chr(29233) ‘愛‘ >>>
多個字符的編碼:
當字符的內容只包含ASCII編碼的內容時,可以直接使用:
1 2 |
>>> b "I LOVE YOU!"
b ‘I LOVE YOU!‘ <br><br><br>
|
1 2 |
>>> "I LOVE YOU!" .encode()
b ‘I LOVE YOU!‘
|
多個字符且包含中文的時候,只能使用encode和decode
#從這裏也可以看出在utf-8的編碼中,一個中文需要三個字節
>>> "我愛你".encode("utf-8") b‘\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0‘
#這裏特別要註意b‘\xe6‘和‘\xe6‘表示的完全不一樣,前邊表示一個bytes類型的數據,後者是一個str類型的字符串 >>> b‘\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0‘.decode("utf-8") ‘我愛你‘
len()可以用來計算str或者是bytes的長度
>>> len(‘我愛你‘) 3 >>> len( b‘\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0‘) 9
字符串的格式化,除了%s 還有%d %f %x等占位符,但是由於都可以用%s來輸出,所以就沒有必要使用其他的了。
除此之外還有 str.format()方式也可以用來格式化字符串,但是沒有%s好用。但是當輸入的字符串內容本身含有%,例如 7%時,需要使用 %%轉義符
>>> "hello %s"%"nadech" ‘hello nadech‘ >>> nadech = "YGR" >>> "hello %s"%nadech ‘hello YGR’
python筆記二(數據類型和變量、編碼方式、字符串的編碼、字符串的格式化)