1. 程式人生 > >python筆記二(數據類型和變量、編碼方式、字符串的編碼、字符串的格式化)

python筆記二(數據類型和變量、編碼方式、字符串的編碼、字符串的格式化)

其他 所有 操作 邊表 引號 限制 tool love bar

一、數據類型

  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筆記二(數據類型和變量、編碼方式、字符串的編碼、字符串的格式化)