python學習—-基礎資料型別 (Elementary Data Type)

來源:互聯網
上載者:User

參考書籍:《Python3程式開發指南》第二版
學習平台:windows

內建資料類型與標準庫資料類型唯一的區別在於,對於後者,我們必須首先匯入相關的模組,並且必須使用模組名對資料類型名進行限定。

Python中的標識符與關鍵字

我們學習每一種程式設計語言,都是從最開始的標識符(還有傳說中的Hello World),關鍵字開始的,學習Python也不例外。

Python標識符必須符合三條規則:
  1. 1.標識符區分大小寫,只要是Unicode編碼的字母就好了。其實這種問題,在實際編程過程中不會有問題的;
  2. 2.Python標識符不能與Python關鍵字同名;
  3. 3.關於底線(_)的使用,名的開頭和結尾都使用底線的情況(_)應該避免使用;在Python內部定義了各種特殊方法和變數,使用的就是這樣的名稱;
Integral類型

Python提供了兩種內建的Integral類型:int和bool。

布林運算式

0與False表示False,其它任意整數與True都表示True。在數字表示中,True表示1,False表示0;

整數

預設是十進位的;位元以0b引導,八進位以0o引導,十六進位數以0x引導。

浮點類型

Python提供了3種浮點值:內建的float與complex類型,以及來自標準庫的decimal.Decimal類型,這3種資料類型都是固定。如果我們確實需要高精度,那麼可以使用來自decimal模組的decimal.Decimal類型。

浮點數

匯入sys模組,sys.float_info對象有許多浮點類型的屬性。

複數

複數這種資料類型是固定的,其中存放的是一對浮點數,一個表示實數部分,另一個表示虛數部分。

Decimal類型

要建立Decimal類型,必須先匯入decimal模組。十進位數使用decimal.Decimal()函數建立的,該函數可以接受一個整數或字串作為參數;

字串

字串是使用固定不變的str資料類型表示的,其中存放Unicode字元序列。str資料類型可以作為函數進行調用,用於建立字串對象—-參數
為空白時返回一個Null 字元,參數為非Null 字元串類型時返回該參數的字串形式,參數為字串時返回該字串的拷貝。str()函數也可以用作一個轉換函式。
使用r修飾的字串,在這種字串內部,所有字元都按其字面意義解釋,因此不再需要進行轉義。
字串很長,包含多行,不使用三引號包含的字串,有兩種方法:

  1. 1.t = “i love you” + \
    “i love you, baby.”.
  2. 2.s = (“i love you”
    “together; i love you.”).

由於.py檔案預設使用UTF-8 Unicode編碼。
內建函數ord()將字元轉換成Unicode編碼中某個字元的整數值。
內建函數chr()將Unicode編碼中某個字元的整數值轉換成Unicode編碼。

字元換比較

支援<,<=,==,!=,>與>=

字串分步與步距

可以使用[]來存取操作字串中的單個字元。
負索引是很有用的,尤其是-1,這個值總是代表字串的最後一個字元。
提取分區:
seq[start]
seq[start:end]
seq[start:end:step]
seq可以是任意序列,比如列表,字串或元組。
在涉及很多字串時,使用+進行串連、使用+=進行追加等操作並不是特別高效,如果需要串連大量的字串,通常最好使用str.join()方法。

字串操作符與方法

字串是固定序列,所有用於固定序列的功能都可用於字串,包括使用in進行成員關係測試。

使用len()返回字串中的字元數

join()方法以一個序列作為參數(字串列表或字串元組),並將其串連在一起存放在一個單獨的字串中。

>>> test = ["jelly", "think", "|", "思想的果凍", "www.jellythink.com"]>>> " ".join(test)'jelly think | 思想的果凍 www.jellythink.com'

join()方法也可以與內建的reversed()函數一起使用,以實現對字串的反轉。但是,通過步距也可以更精確地擷取同樣的結果,比如:s[::-1]

‘*’操作符提供了字串複製功能

在用於字串時,如果成員關係操作符in左邊的字串參數是右邊字串參數的一部分,或者相等,就返回True。

>>>test = "JellyThink">>>"Jelly" in testTrue
str.index和str.find

如果需要在某個字串中找到另一個字串所在的位置,有兩種方法:

  1. 使用str.index()方法。返回子字串的索引位置,或者在失敗時產生一個ValueError異常;
  2. 使用str.find()方法。該字串返回字串的索引位置,或者在失敗時返回-1;

這兩個函數都有兩個選擇性參數,指定開始位置和結束位置。

strip

strip()可以剝離兩邊的空白字元,有lstrip()和rstrip()。可以使用一個字串作為參數來調用剝離方法,這樣參數中出現的每個對應字元都會被消除。

replace

str.replace()方法來在字串內進行替換,這一方法以兩個字串作為參數,並返回該字串的副本(其中第一個字串的所有出現都被第二個字串所替換)。

split

分割字串使用str.split()方法。並以待分割的字串作為第一個參數,以要分割的最大子資料區段數為可選的第二個參數。

使用str.format()方法進行字串格式化

str.format()方法會返回一個新字串,在新字串中,原字串的替換欄位被適當格式化後的參數所替代。
每個替換欄位都是由包含在花括弧中的欄位名標識的。如果欄位名是簡單的整數,就將被作為傳遞給str.format()方法的一個參數的索引位置。因此,在這種情況下,名為0的欄位被第一個參數所代替,名為1的欄位則被第二個參數所代替。
如果試圖連接字串與數字,那麼python將產生TypeError異常,但是使用str.format()方法可以很容易地做到這一點。

>>>"{who} turned {age} this year".format(who="she", age=88)'she turned 88 this year'>>>"The {who} was {0} last week".format(12, who="boy")'The boy was 12 last week'

欄位名可以引用集合資料類型,比如,列表;在這種的情況下,我們可以包含一個索引來標識的資料項目。

>>>stock = ["paper", "envelopes", "notepads", "pens"]>>>"we have {0[1]} and {0[2]} in stock".format(stock)'we have envelopes and notepads in stock'

Python字典中儲存的key-value項,也可以用於str.format()方法。

其它知識補充字元編碼

與UTF-8不同的是,UTF-16文本應該以一個位元組順序標記開始,以便用於讀取該文本的代碼可以判定位元組對是big-endian還是little-endian.
str.encode()方法可以返回一個位元組序列——實際上是一個bytes對象。使用這一方法,可以更好地理解不同編碼格式之間的差別。
對於str.encode()方法,還有兩點值得注意。第一個參數(編碼名稱)是大小寫不敏感的,第二個參數指定錯誤處理方式,如果為”ignore”,”replace”,那麼可以將任何字串編碼為ASCII格式。
str.encode()方法的對應方法是bytes.decode()或者bytearray.decode(),該方法將返回一個字串,其中使用給定的編碼格式對位元組進行解碼。
在Python中,至少有兩個Python包可用於檢測檔案的編碼格式。

csv處理

Python有一個強大的csv處理模組。

2013/1/31 於東軟-大連

=====================================================================

如果喜歡,請關註:JellyThink | 思想的果凍

更多原創精彩博文,盡在www.jellythink.com

還可以關注新浪微博:http://weibo.com/u/1887014677

=====================================================================

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.