標籤:換行 logs 科學計數法 cti 預設 append 開始 取字串 迭代器
一、資料類型簡介
(1) Python 資料類型包括數實值型別、字串類型、元組、列表、字典
(2) 數實值型別可以分為整型、長整型、浮點型、複數型
(3) 字串、元組、列表都屬於序列的一種,三種類型都可以使用序列的一些特性(比如索引與切片,以及下面列舉的一些基本操作)
len() # 求序列的長度+ # 串連兩個序列* # 重複序列元素in # 判斷元素是否在序列中
not in # 判斷元素是否不在序列中max() # 返回最大值min() # 返回最小值cmp(x,y) # 比較兩個序列是否相等
二、數實值型別
1. 整型
In [1]: a = 123 # 定義整數類型In [2]: type(a) # 查看資料類型Out[2]: int
-2147483648 —— 2147483647 # 整型的取值範圍,如果超過了這個範圍則成為長整型
2. 長整型
In [7]: a = 123456789123456789123456789 # 定義長整型In [8]: type(a) # 查看資料類型Out[8]: longIn [9]: a # 長整型後面會帶有字母(l或L)以標識這是長整型Out[9]: 123456789123456789123456789L
3. 浮點型
In [10]: a = 1.0 # 帶小數點的資料類型則為浮點型
In [11]: b = 3e+7 # 科學計數法也屬於浮點型
In [11]: type(a) # 查看資料類型Out[11]: float
4. 複數型
In [14]: a = 123j # 字母 j 用於標識這是一個複數類型In [15]: type(a) # 查看資料類型Out[15]: complex
三、字串類型
1. 定義字串
In [16]: str = ‘this is a string‘ # 可以使用單引號/雙引號/三引號來定義字串類型In [17]: str = "this is a string" # 在 python 中,單引號和雙引號並沒有什麼區別In [18]: str = ‘‘‘this is a string‘‘‘ # 三引號可以寫成‘‘‘或""" ,三引號除了能定義字串類型外還能用來做注釋
In [21]: str = "Hello\nWorld" # 單引號和雙引號如果要跨行定義需要加上 \n 作為分行符號In [24]: str = """Hello # 三引號可以直接斷行符號在下一行輸入 ....: World"""
2. 字串的索引與切片
In [26]: a = ‘abcde‘In [27]: a[0] # 索引值從0開始,表示取字串中的第一個字元Out[27]: ‘a‘In [28]: a[1] # 取字串中的第二個字元Out[28]: ‘b‘In [29]: a[-1] # -1 表示倒數一個字元,-2 表示倒數第二個字元,以此類推Out[29]: ‘e‘In [30]: a[0:2] # 表示取第一個到第三個(不包括第三個)這個範圍的字元Out[30]: ‘ab‘In [31]: a[:2] # 零可以省略,如果省略表示從第一個索引開始取Out[31]: ‘ab‘In [32]: a[1:] # 這樣寫表示從第二個取到最後一個索引Out[32]: ‘bcde‘In [33]: a[-4:-2] # 表示取倒數第四個到倒數第二個(不包括倒數第二個)這個範圍的字元Out[33]: ‘bc‘In [34]: a[::1] # 表示每隔一個數取一次(如果是負數則從右向左取)Out[34]: ‘abcde‘In [35]: a[::2] # 表示每隔兩個數取一次Out[35]: ‘ace‘
3. 字串的方法
In [1]: a = ‘abc‘In [2]: a.lower() # lower()用於將字串轉換成小寫字母Out[2]: ‘abc‘In [3]: a.upper() # upper()用於將字串轉換成大寫字母Out[3]: ‘ABC‘
In [4]: a.startswith(‘ab‘) # startswith()用於判斷是否以指定的字元開頭,如果是則返回 True ,否則返回 FalseOut[4]: True
In [6]: a.isdigit() # isdigit()用於判斷是否是純數位字串
Out[6]: False
In [7]: a.capitalize() # capitalize()用於使字串首字母變成大寫
Out[7]: ‘Abc‘
In [8]: a.replace(‘a‘, ‘A‘) # replace()用於替換字串,預設只替換一次,如果要替換多次可以在後面指定次數,如 a.replace(‘a‘, ‘A‘, 3)
Out[8]: ‘Abc‘
In [9]: a.split(‘b‘) # split()用於切分字串,括弧裡可以指定分割符,如果不指定預設以空格/Tab鍵/分行符號來切分
Out[9]: [‘a‘, ‘c‘]
In [9]: a.find(‘b‘) # find()用於返回指定字元的索引值,如果沒有找到該字元則返回-1
Out[9]: 1
In [9]: ‘-‘.join(a) # join()用於將序列中的元素以指定的字元串連產生一個新的字串,詳細用法參考菜鳥教程
Out[9]: a-b-c
In [69]: a = ‘ abc ‘In [70]: a.strip() # strip()用於把左右兩邊的空格去掉Out[70]: ‘abc‘In [71]: a.lstrip() # lstrip()用於把最左邊(left)的空格去掉Out[71]: ‘abc ‘In [72]: a.rstrip() # rstrip()用於把最右邊(right)的空格去掉Out[72]: ‘ abc‘
In [73]: name = ‘xiaoming‘ # format()用法與print的格式化輸出字串用法一致In [74]: age = 21In [75]: print(‘my name is {0}, my age is {1}‘).format(name, age)my name is xiaoming, my age is 21
4. string 模組
In [1]: import stringIn [2]: string.lowercase # string.lowercase 用於列印所有小寫字母Out[2]: ‘abcdefghijklmnopqrstuvwxyz‘In [3]: string.uppercase # string.uppercase 用於列印所有大寫字母Out[3]: ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘In [4]: string.capitalize(‘hello‘) # string.capitalize()用於指定字串的首字母大寫Out[4]: ‘Hello‘In [5]: string.replace(‘hello‘, ‘h‘, ‘H‘) # string.replace()用於替換字串Out[5]: ‘Hello‘
四、列表
1. 列表的基本操作
In [65]: a = [‘abc‘, 123, 456] # 建立列表In [66]: a[0] = ‘def‘ # 修改列表元素In [67]: type(a) # 查看資料類型In [68]: del a # 刪除列表
In [69]: del a[0] # 刪除列表的某個元素
2. 列表的方法
In [74]: a = [‘a‘, ‘b‘, ‘c‘]In [75]: a.append(‘d‘) # append()用於追加指定的列表元素
In [76]: a.remove(‘d‘) # remove()用於刪除指定的列表元素,如果有多個相同的列表元素,則預設只刪除一個
In [77]: a.insert(2,‘c‘) # insert()用於在指定的索引前面插入元素,這裡表示在索引為 2(即‘c‘)的前面插入字元‘c‘ ,結果為 [‘a‘, ‘b‘, ‘c‘, ‘c‘]
In [77]: a.index(‘b‘) # index()用於返回指定元素的索引值
In [78]: a.sort() # sort()用於給列表排序(正向排序)
In [79]: a.reverse() # reverse()用於反轉列表元素,比如 a = [‘a‘, ‘b‘, ‘c‘] ,則 a.reverse() 結果為 [‘c‘, ‘b‘, ‘a‘]
In [80]: a.pop(2) # pop()用於返回並刪除指定索引位置的元素,如果不指定索引值則預設返回並刪除最後一個
In [81]: a.extend(range(5)) # extend()用於將可迭代的對象追加到列表中,括弧內的 range(5) 是可迭代的對象,一般用來把一個列表的內容追加到另一個列表中五、元組
五、元組
1. 元組簡介
(1) 元組用括弧來定義,可以儲存一系列的值
(2) 元組與字串一樣是不可變的,也就是說,當你定義完一個元組之後,你不能改變某個元素的值,除非你把整個元組重新定義
(3) 元組通常用在使用者定義的函數能夠安全地採用一組值的時候,即被使用的元組的值不會改變
In [50]: t = (‘abc‘, 123, 456) # 定義元組
In [50]: t = (‘abc‘,) # 當元組中只有一個元素的時候後面要加逗號,否則 python 會認為這是一個字串類型而不是元群組類型
In [51]: type(t) # 查看資料類型Out[51]: tuple
2. 元組的方法
In [56]: t = (‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘a‘)In [57]: t.count(‘a‘) # count()用於統計元素的個數Out[57]: 3In [59]: t.index(‘b‘) # index()用於返回元素對應的索引值Out[59]: 1
六、字典
1. 字典簡介
(1) 字典是 python 中唯一的映射類型(key-value)
(2) 字典的 value 是可變的,但是字典的 key 不可變,且 key 唯一,不能有重複的 key 值
In [1]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘} # 定義字典 In [2]: type(a) # 查看資料類型Out[2]: dict
In [3]: a[2] # 根據 key 訪問字典元素
Out[3]: ‘b‘
2. 字典的方法
In [4]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘}In [5]: a.keys() # keys()用於返回字典中所有的 keyOut[5]: [1, 2, 3]In [6]: a.values() # values()用於返回字典中所有的 valueOut[6]: [‘a‘, ‘b‘, ‘c‘]In [7]: a.get(2) # get()用於返回指定 key 的 value 值,這裡表示返回 key 為 2 的 value 值Out[7]: ‘b‘
In [8]: a.has_key(1) # has_key()用於判斷字典中是否有指定的 key 值Out[8]: TrueIn [9]: a.items() # items()用於以元組的形式返回字典中的 key-value 對,且外層是一個列表,該方法可以用迴圈來遍曆字典Out[9]: [(1, ‘a‘), (2, ‘b‘), (3, ‘c‘)]
In [10]: a.iteritems() # iteritems()用於與 items() 一致,但返回的是一個迭代器,不佔用記憶體,只有在需要的時候才調用,就像 print 和 return 的關係一樣
Out[10]: <dictionary-itemiterator at 0x297ac58>
In [11]: a.copy() # copy()相當於複製字典,一般將它賦值給某個變數,比如 b = a.copy()Out[11]: {1: ‘a‘, 2: ‘b‘, 3: ‘c‘}In [12]: a.pop(2) # pop()用於返回並刪除指定 key 所對應的元素Out[12]: ‘b‘
In [13]: a.update(b) # update()用於合并兩個字典,比如 a = {1:‘a‘} ,b = {2:‘b‘} ,則 a.update(b) 結果為 {1:‘a‘, 2:‘b‘}
In [14]: a.clear() # clear()用於清除字典中的所有元素
In [37]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘} In [38]: a.setdefault(2) # setdefault()作用與 get() 一致,用於返回指定 key 的 value 值,當然前提是 key 存在的情況下Out[38]: ‘b‘In [46]: a.setdefault(4, ‘d‘) # 當指定的 key 不存在時,返回我們設定的預設值並把 key-value 追加到字典中Out[46]: ‘d‘In [47]: aOut[47]: {1: ‘a‘, 2: ‘b‘, 3: ‘c‘, 4: ‘d‘}
Python 資料類型