python學習03-數據類型
阿新 • • 發佈:2018-02-13
默認 1.5 mos borde 基本數據類型 order end mod 技術分享
一、基本數據類型——數字 |
布爾型
- bool型只有兩個值:True和False
- 之所以將bool值歸類為數字,是因為我們也習慣用1表示True,0表示False。
以下是布爾值是False的各種情況:
1 bool(0) 2 bool(None) 3 bool("") 4 bool(()) 5 bool([]) 6 bool({})
在Python2.7 中,True和False是兩個內建(built-in)變量,內建變量和普通自定義的變量如a, b, c一樣可以被重新賦值,因此我們可以把這兩個變量進行任意的賦值。
在Python3.x 中,終於把這個兩變量變成了關鍵字,也就是說再也沒法給這兩變量賦新的值了,從此True永遠指向真對象,False指向假對象,永不分離。
整型
Python中的整數屬於int類型,默認用十進制表示,此外也支持二進制,八進制,十六進制表示方式。
進制轉換
二進制前面以‘0b’標示,八進制前面以‘0o’標示,十六進制以‘0x’標示
1 >>> bin(10) # 轉換為二進制 2 ‘0b1010‘ 3 >>> oct(10) # 轉換為八進制 4 ‘0o12‘ 5 >>> hex(10) # 轉換為十六進制 6 ‘0xa‘
運算
>>> 5%2 # 取余 1 >>> 16%4 0 >>> 2+3 # 加法5 >>> 2-3 # 減法 -1 >>> 2*3 # 乘法 6 >>> 3/2 # 除法 1.5 >>> 9//2 # 取整除 4 >>> divmod(16,3) # 返回包含商和余數的元組(a // b, a % b) (5, 1) >>> 2**3 # 冪 8
浮點數、復數
二、基本數據類型——字符串 |
字符串定義
字符串是一個有序的字符的集合,用於存儲和表示基本的文本信息,‘ ‘或‘‘ ‘‘或‘‘‘ ‘‘‘中間包含的內容稱之為字符串。
字符串特性
- 字符串是不可變類型。
- 按照從左到右的順序定義字符集合,下標從0開始順序訪問,有序。
- 字符串的單引號和雙引號都無法取消特殊字符的含義,如果想讓引號內所有字符均取消特殊意義,在引號前面加r,如name=r‘l\thf‘
- unicode字符串與r連用必需在r前面,如name=ur‘l\thf‘
字符串操作
字符串格式化(format)
‘‘‘ 1、使用位置參數 位置參數不受順序約束,且可以為{},參數索引從0開始,format裏填寫{}對應的參數值。 ‘‘‘ >>> msg = "my name is {}, and age is {}" >>> msg.format("hqs",22) ‘my name is hqs, and age is 22‘ >>> msg = "my name is {1}, and age is {0}" >>> msg.format("hqs",23) ‘my name is 23, and age is hqs‘ # 傳入位置參數列表可用 *列表 的形式 >>> li = [‘lary‘,18] >>> ‘my name is {} , age {}‘.format(*li) ‘my name is lary , age 18‘ # 使用索引 >>> li = [‘larry‘,12] >>> ‘my name is {0[0]}, age {0[1]}‘.format(li) ‘my name is larry, age 12‘ ‘‘‘ 2、使用關鍵字參數 關鍵字參數值要對得上,可用字典當關鍵字參數傳入值,字典前加**即可 ‘‘‘ >>> hash = {‘name‘:‘john‘ , ‘age‘: 23} >>> msg = ‘my name is {name}, and age is {age}‘ >>> msg.format(**hash) ‘my name is john,and age is 23‘ >>> msg.format(name="hqs",age=13) ‘my name is hqs,and age is 13‘ >>> msg.format(age = 33, name = "zr") ‘my name is zr, and age is 33‘ ‘‘‘ 3、填充與格式化 :[填充字符][對齊方式 <^>][寬度] ‘‘‘ >>> ‘{0:*<10}‘.format(10) # 左對齊 ‘10********‘ >>> ‘{0:*<10}‘.format("hqs") # 左對齊 ‘hqs*******‘ >>> ‘{0:*^10}‘.format("hqs") # 居中對齊 ‘***hqs****‘ >>> ‘{0:*>10}‘.format(10) # 右對齊 ‘********10‘ ‘‘‘ 4、精度與進制 ‘‘‘ >>> ‘{0:.2f}‘.format(1/3) # 浮點數 ‘0.33‘ >>> ‘{0:b}‘.format(18) # 二進制 ‘10010‘ >>> ‘{0:o}‘.format(18) # 八進制 ‘22‘ >>> ‘{0:x}‘.format(18) # 十六進制 ‘12‘ >>> ‘{:,}‘.format(13111313341313) # 千分位格式化 ‘13,111,313,341,313‘
常用操作
#索引 s = ‘hello‘ >>> s[1] ‘e‘ >>> s[-1] ‘o‘ >>> s.index(‘e‘) 1 #查找 >>> s.find(‘e‘) 1 >>> s.find(‘i‘) -1 #移除空白 s = ‘ hello,world! ‘ s.strip() s.lstrip() s.rstrip() s2 = ‘***hello,world!***‘ s2.strip(‘*‘) #長度 >>> s = ‘hello,world‘ >>> len(s) 11 #替換 >>> s = ‘hello world‘ >>> s.replace(‘h‘,‘H‘) ‘Hello world‘ >>> s2 = ‘hi,how are you?‘ >>> s2.replace(‘h‘,‘H‘) ‘Hi,How are you?‘ #切片 >>> s = ‘abcdefghigklmn‘ >>> s[0:7] ‘abcdefg‘ >>> s[7:14] ‘higklmn‘ >>> s[:7] ‘abcdefg‘ >>> s[7:] ‘higklmn‘ >>> s[:] ‘abcdefghigklmn‘ >>> s[0:7:2] ‘aceg‘ >>> s[7:14:3] ‘hkn‘ >>> s[::2] ‘acegikm‘ >>> s[::-1] ‘nmlkgihgfedcba‘
首尾操作及統計字符
1 >>> name = "HuangQiuShi" 2 >>> name.capitalize() # 首字母大寫 3 ‘Huangqiushi‘ 4 >>> name.endswith("Li") # 判斷字符串是否以 Li結尾 5 False 6 >>> name.endswith("hi") # 判斷字符串是否以 hi結尾 7 True 8 9 >>> name.center(50,‘-‘) # 字符串居中顯示 10 ‘-------------------HuangQiuShi--------------------‘ 11 >>> name.rjust(50,‘-‘) 12 ‘---------------------------------------HuangQiuShi‘ 13 >>> name.ljust(50,‘-‘) 14 ‘HuangQiuShi---------------------------------------‘ 15 16 >>> name.count("shi") # 統計‘shi‘出現次數 17 0 18 >>> name.count("i") 19 2
三、基本數據類型——列表 |
定義:[]內以逗號分隔,按照索引,存放各種數據類型,每個位置代表一個元素。
特性
1.可存放多個值
2.按照從左到右的順序定義列表元素,下標從0開始順序訪問,有序
3.可修改指定索引位置對應的值,可變
創建列表
# 列表創建(把逗號分隔的不同的數據項使用方括號括起來即可) list_test = [‘阿福‘,‘收稅‘,‘snake‘]
切片:取多個元素
>>> names = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] >>> names[1:4] #取下標1至下標4之間的數字,包括1,不包括4 [‘Tenglan‘, ‘Eric‘, ‘Rain‘] >>> names[1:-1] #取下標1至-1的值,不包括-1 [‘Tenglan‘, ‘Eric‘, ‘Rain‘, ‘Tom‘] >>> names[0:3] [‘Alex‘, ‘Tenglan‘, ‘Eric‘] >>> names[:3] #如果是從頭開始取,0可以忽略,跟上句效果一樣 [‘Alex‘, ‘Tenglan‘, ‘Eric‘] >>> names[3:] #如果想取最後一個,必須不能寫-1,只能這麽寫 [‘Rain‘, ‘Tom‘, ‘Amy‘] >>> names[3:-1] #這樣-1就不會被包含了 [‘Rain‘, ‘Tom‘] >>> names[0::2] #後面的2是代表,每隔一個元素,就取一個 [‘Alex‘, ‘Eric‘, ‘Tom‘] >>> names[::2] #和上句效果一樣 [‘Alex‘, ‘Eric‘, ‘Tom‘]
追加、插入
>>> list_test.append(2017) >>> list_test [‘阿福‘, ‘收稅‘, ‘snake‘, 2017] >>> list_test.insert(2,"強行從snake前面插入") >>> list_test [‘阿福‘, ‘收稅‘, ‘強行從snake前面插入‘, ‘snake‘, 2017] >>> list_test.insert(0,"強行插入最前") >>> list_test [‘強行插入最前‘, ‘阿福‘, ‘收稅‘, ‘強行從snake前面插入‘, ‘snake‘, 2017]
修改
>>> list_test = [‘強行插入最前‘, ‘阿福‘, ‘收稅‘, ‘強行從snake前面插入‘, ‘snake‘, 2017] >>> list_test[2] = "換了一個人" >>> list_test [‘強行插入最前‘, ‘阿福‘, ‘換了一個人‘, ‘強行從snake前面插入‘, ‘snake‘, 2017]
刪除
# 刪除指定位置元素 >>> del list_test[2] >>> list_test [‘強行插入最前‘, ‘阿福‘, ‘強行從snake前面插入‘, ‘snake‘, 2017] # 刪除指定元素 >>> list_test.remove("snake") >>> list_test [‘強行插入最前‘, ‘阿福‘, ‘強行從snake前面插入‘, 2017] # 刪除列表最後一個值 >>> list_test.pop() 2017 >>> list_test [‘強行插入最前‘, ‘阿福‘, ‘強行從snake前面插入‘]
擴展
>>> b = [1,3,"asdad"] >>> list_test.extend(b) >>> list_test [‘強行插入最前‘, ‘阿福‘, ‘強行從snake前面插入‘, 1, 3, ‘asdad‘]
拷貝
>>> list_test_copy = list_test.copy() >>> list_test_copy [‘強行插入最前‘, ‘阿福‘, ‘強行從snake前面插入‘, 1, 3, ‘asdad‘]
統計
>>> list_test.append("阿福") >>> list_test.count("阿福") 2 >>> list_test [‘強行插入最前‘, ‘阿福‘, ‘強行從snake前面插入‘, 1, 3, ‘asdad‘, ‘阿福‘]
排序&翻轉
>>> list_test.sort() # 不同數據類型不能一起排序 Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: ‘<‘ not supported between instances of ‘int‘ and ‘str‘ >>> list_test[-3] = ‘3‘ # 修改為字符串 >>> list_test[-4] = ‘1‘ >>> list_test [‘強行從snake前面插入‘, ‘強行插入最前‘, ‘阿福‘, ‘1‘, ‘3‘, ‘asdad‘, ‘阿福‘] >>> list_test.sort() >>> list_test [‘1‘, ‘3‘, ‘asdad‘, ‘強行從snake前面插入‘, ‘強行插入最前‘, ‘阿福‘, ‘阿福‘] >>> list_test.reverse() # 翻轉 >>> list_test [‘阿福‘, ‘阿福‘, ‘強行插入最前‘, ‘強行從snake前面插入‘, ‘asdad‘, ‘3‘, ‘1‘]
獲取下標
>>> list_test [‘阿福‘, ‘阿福‘, ‘強行插入最前‘, ‘強行從snake前面插入‘, ‘asdad‘, ‘3‘, ‘1‘] >>> list_test.index("阿福") 0 >>> list_test.index("asdad") 4
python學習03-數據類型