Python3基本資料型別
1、Python簡介
Python是一種解釋型、面向物件、動態資料型別的高階程式設計語言。Python主要有兩個版本Python 2.x和Python 3.x。Python 團隊計劃於2020年停止對2.x版本的支援。
優點:
- 簡單,優雅,明確
- 容易上手
- 有完善的基礎庫可以“站在巨人的肩膀上”開發,還有大量的第三方庫可以使用。
缺點:
- 不能加密,這是解釋型語法的“通病”
- 執行速度慢於編譯型語法,因為解釋型語言在執行前要先編譯。
2、開發環境與開發工具
2.1、環境安裝
官網下載Python安裝包: https://www.python.org/downloads/
Windows平臺:下載指定的版本完成後,點選可執行安裝器,根據提示一步步安裝,記得勾選Add Python 3.x to path,不勾選需要手動配置環境變數。
Ubuntu平臺:預設是安裝有Python的,也可以在官網上下載指定版本進行安裝,詳情參考: https://ywnz.com/linuxjc/3159.html
Ubuntu開啟終端,windows開啟cmd,輸入python,如果出現以下情況,則說明安裝成功。如果提示:python不是內部或外部命令,需要檢查環境變數的配置。

2.2、開發工具
- PyCharm
- Eclipse+Pydev
- Intellij IDEA+PyCharm外掛
- Sublime Text
3、基本資料型別
Python基本資料型別包括:數,字串,字典(dict),列表(list),元組(tuple),布林值,空值,集合(set),變數。
3.1、布林值
True表示真,False表示假。布林值支援與(and),或(or),非(!)運算。規則和數學中的一致。布林值也可以由表示式計算出來。
>>> 2>2 False >>> 1<2 and 3>2 True >>>
3.2、整數
和數學中表示方法一致,比如十進位制整數1,2。也可以採用其它進製表示,比如十六進位制,八進位制。
整數的加減乘除:
>>> 1+2 3 >>> 2-1 1 >>> 1 * 2 2 >>> 1/2 0.5 >>>
3.2、浮點數
浮點數也稱小數,表示方法和數學中一致,比如1.22,3.14157。當浮點數非常大或非常小時,需要用科學計數法表示,e表示10,1.1*10^9即就是1.1e9。浮點數的運算同整數。
3.3、字串
用雙引號(")或單引號(’)包裹起來的任意文字就是字串。
>>> 'Hello World' 'Hello World'
- 如果單引號是字串的一部分時,需要用到雙引號來表示。
- 如果字串本身包含雙引號,需要用到轉義字元\,比如"Hi,\"Lucy\""表示字串Hi,"Lucy"
- 如果轉義字元太多,書寫不便時,用r' ',''內不文字預設不轉義。
字串宣告
str1 = "I love Python3"
字串長度
>>> len(str1) 14
根據索引取值
索引從0開始
>>> str1[0] 'I'
字串拼接
>>> str1 + "and Python2" 'I love Python3and Python2'
切片
[n:m]擷取字串的第n到m個字元,左邊右開。
>>> str1[0:5] 'I lov'
格式化
% 將一個值插入到一個字串%s的地方。
>>> "I love %s" %"Python3" 'I love Python3'
3.4、空值
空值是特殊的值,用None表示。
3.5、變數
和數學中的定義相同,比如,x=1表示x是一個整型變數。
3.6、列表
列表中的各項值不需要具備相同的型別。放在[]中,用逗號(,)隔開。列表中可以巢狀列表。索引是從0開始的。
建立列表
>>> lst1 = [1,"Hi",True,2.3,"Python"] >>> lst1 [1, 'Hi', True, 2.3, 'Python'] >>>
根據索引訪問值
>>> lst1[1] 'Hi' >>>
列表元素個數
>>> len(lst1) 5 >>>
修改元素值
將第二個元素的值修改為Hello
>>> lst1[2]="Hello" >>> lst1 [1, 'Hi', 'Hello', 2.3, 'Python'] >>>
新增元素
- list.append(val):在列表末尾新增新元素。
- list.insert(index,val):在指定索引的位置插入元素。
>>> lst1 [1, 'Hi', 'Hello', 2.3, 'Python', 'last'] >>> >>> lst1.insert(1,"11") >>> lst1 [1, '11', 'Hi', 'Hello', 2.3, 'Python', 'last'] >>>
刪除元素
- list.pop():刪除元素,並返回元素的值,預設最後一個。
- list.remove(val):刪除列表中第一個匹配的值。
>>> lst1 [1, '11', 'Hi', 'Hello', 2.3, 'Python', 'last'] >>> lst1.pop() 'last' >>> lst1 [1, '11', 'Hi', 'Hello', 2.3, 'Python'] >>> lst1.remove("11") >>> lst1 [1, 'Hi', 'Hello', 2.3, 'Python'] >>>
切片
取列表lst1的第一到第二個元素。
>>> lst1 [1, 'Hi', 'Hello', 2.3, 'Python'] >>> lst1[0:2] [1, 'Hi']
3.7、字典
字典包裹在花括號({})中,由一個或多個鍵值對組成,鍵值對之間用逗號(,)分隔,鍵與值之間用冒號(:)分隔。鍵必須是不可變的且不可重複,值可以重複。
字典建立
>>> dict1={1:"x",2:"y",3:"z"} >>> dict1 {1: 'x', 2: 'y', 3: 'z'}
訪問字典裡的值
>>> dict1[1] 'x' >>>
修改字典的值
>>> dict1[1]="1x" >>> dict1 {1: '1x', 2: 'y', 3: 'z'} >>>
刪除字典元素
>>> del dict1[1] >>> dict1 {2: 'y', 3: 'z'} >>>
檢視字典的方法以及幫助
兩個下劃線開頭和結尾的是特殊的變數或方法,先不管。
['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
如果想知道pop方法怎麼使用該怎麼做呢?
help(dict.pop) Help on method_descriptor: pop(...) D.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised (END)
翻譯過來就是:刪除指定的key並返回對應的value,如果d值給了的話,在key不存在時會返回,反之,則丟擲KeyError。來實驗一下:
>>> dict1 {2: 'y', 3: 'z'} >>> dict1.pop(22,"key 22 is not exist") 'key 22 is not exist' >>> dict1.pop(22) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 22 >>> dict1.pop(2) 'y' >>>
這種檢視幫助文件的方法同樣也適用於其它資料型別。
3.8、元組
元組和列表類似,是用括號包裹起來的,不同之處在於元組不能修改,所有元組自然沒有新增,修改元組元素值的方法嘍。
建立元組
>>> t1 (1, 2, True, 'Hello') >>>
當元組只有一個元素時,需要在元素後面加上逗號(,)。
訪問元組中的元素
>>> t1[0] 1 >>>
將列表轉換成元組
>>> lst2=[1,1,2,2] >>> lst2 [1, 1, 2, 2] >>> tuple(lst2) (1, 1, 2, 2) >>>
元組切片
>>> t1[1:2] (2,) >>>
刪除元組
>>> del t1 >>> t1 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 't1' is not defined >>>
3.9、 集合
set和字典類似,set只儲存key,因此set無重複值,建立時會自動過濾重複值,建立set的方法有兩種。
- {}
- set()函式建立,建立空的集合必須用set(),因為{}建立的是一個空字典。
建立集合
>>> set1={1,1,2,3} >>> set1 {1, 2, 3} >>>
新增元素
- set.add(val):新增元素val到集合中,如何已存在,則不進行任何操作。
- set.update(x):x可以是列表,元組,字典等。
>>> set1.add(4) >>> set1 {1, 2, 3, 4} >>> >>> set1.update((1,1,3,4,5)) >>> set1 {1, 2, 3, 4, 5} >>>
移除元素
- set.remove(val):刪除元素val,如果不存在,則報錯。
- set.discard(val):刪除元素val,即使元素不存在,也不會報錯。
>>> set1.remove(6) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 6 >>> set1.discard(6) >>>
集合操作
set也可以做數學意義上的交集,並集,補集等操作。
>>> set2 {1, 2, 3} >>> set1 {1, 2, 3, 4, 5}
集合1中存在而集合2中不存在的元素,即差集。
>>> set1 - set2 {4, 5} >>>
集合1和2中都存在的元素,即交集。
>>> set1 & set2 {1, 2, 3} >>>
不同時包含集合1和2 中的元素,即補集。
>>> set2 ^ set1 {4, 5} >>>
集合1和2中包含的所有元素,即全集。
>>> set1 | set2 {1, 2, 3, 4, 5}