學過計算機程式設計的人都知道,計算機無論多麼牛叉,其實都是在“天下武功,唯快不破”的基礎上成立的。計算機可以處理文本,剪輯視訊,修複音頻,美化照片,顯示網頁,科學計算,這一切的一切都是建立資料的基礎之上,每種程式設計語言的本質,就是通過程式設計,撰寫計算機的指令集合,充分利用計算機可以不休息、速度快的特征讓計算機幫着處理資料,提高處理的效率。無論哪一種程式設計語言,都需要預制一些資料類型,并且這些類型能夠覆寫人類描述資訊的需要。C語言中對數值的處理花的資訊很多,符合類型的結構體、聯合體和枚舉類型,後來都被指針取代了,說C語言簡單的,主要是入門比較簡單,關鍵字少,但是C語言的主要難點在指針。C++在C的基礎上擴充了面向對象,增加了很多普通使用者難以了解和應用的文法,還好有Java語言将C++大大簡化了一番,Java的流行應該說C++的功勞絕對不少了。現在主流的是python,由于在機器學習和AI中Python可以大顯身手,是以Python很火。Python把主要的問題給隐藏了不少,但是python的缺點是無法區分真正的水準吧。哈哈。
Python中的資料類型,就是語言規定了一些資料的規範和能夠接受的操作方法。數值型(标量),能夠參與算術運算的整型、浮點型、複數型、布爾型和空值;複合類型,清單、元組、字典、集合;字元串;檔案對象;自定義類型等。
一、數值型:
1、整型:
1 Python 3.8.0 (default, Oct 23 2019, 18:51:26)
2 [GCC 9.2.0] on linux
3 Type "help", "copyright", "credits" or "license()" for more information.
4 >>> x = 5 + 2 - 3 * 4
5 >>> x
6 -5
7 >>> 5 / 2
8 2.5
9 >>> 5 // 2
10 2
11 >>> 5 % 2
12 1
13 >>> 5 * 2
14 10
15 >>> 5 ** 2
16 25
17 >>>
說明:第4行中包含了将+ - ×,運算規則和數學中的運算規則完全一樣
第5-6行,檢視結果和顯示結果
第7-8行,作除法運算顯示結果,python3中新增的規則
第9-10行,作地闆除運算顯示結果
第11-12行,作取餘運算顯示結果
第13-14行,作乘法運算顯示結果
第15-16行,作幂運算顯示結果
其他的資料類型浮點型和複數型都是一樣的可以運算
布爾型作算術運算時,隻能有Ture=1和False=0兩種值
1 Python 3.8.0 (default, Oct 23 2019, 18:51:26)
2 [GCC 9.2.0] on linux
3 Type "help", "copyright", "credits" or "license" for more information.
4 >>> x = 5.1 + 2.8 - 3.2 * 4.3
5 >>> x
6 -5.86
7 >>> 5.1 / 2.5
8 2.04
9 >>> 5.1 // 2.5
10 2.0
11 >>> 5.1 % 2.5
12 0.09999999999999964
13 >>> 5.1 * 2.5
14 12.75
15 >>> 5.1 ** 2.5
16 58.73885009088958
本來以為11行會出錯,居然沒有,還出了結果,但是感覺不對阿
1 Python 3.8.0 (default, Oct 23 2019, 18:51:26)
2 [GCC 9.2.0] on linux
3 Type "help", "copyright", "credits" or "license" for more information.
4 >>> (3 + 2j) * (2 + 3j)
5 13j
6 >>> (3 + 2j) ** (2 + 3j)
7 (0.6817665190890336-2.1207457766159625j)
8 >>> x = (3 + 2j) * (2 + 3j)
9 >>> x.real
10 0.0
11 >>> x.imag
12 13.0
13 >>> round(3.4)
14 3
15 >>> round(3.5)
16 4
17 >>> import math
18 >>> math.ceil(3.49)
19 4
20 >>> math.f
21 math.fabs( math.floor( math.frexp(
22 math.factorial( math.fmod( math.fsum(
23 >>> math.floor(3.99)
24 3
25 >>> y=False
26 >>> x
27 13j
28 >>> y
29 False
30 >>> not y
31 True
32 >>> y
33 False
34 >>> y = True * 2
35 >>> y
36 2
代碼說明:
第4-5行,複數乘法顯示結果
第6-7行,複數乘方顯示結果
第8行,将複數運算結果放到一個變量中
第9-10行,擷取複數變量的實部
第11-12行,擷取複數變量的虛部
第13-14行,調用内部函數擷取浮點的近似值,四舍五入方式
第15-16行,調用内部函數擷取浮點的近似值,四舍五入方式
第17行,導入數學庫
第18-19行,應用數學庫中函數擷取浮點數的最大整數
第20-24行,輸入部分内容按下table鍵之後的自動補全後的内容,最終選擇需要的函數,并顯示結果
第25,29行,定義bool變量,并顯示結果
第26-27行,顯示x的結果,及結果顯示
第30-31行,bool變量運算及結果顯示
第32-33行,bool變量本身沒有變化
第34-36行,bool變量算術運算時,隻能是1或0中的一個值
二、清單:
1、清單是資料的集合,并且資料可以不是同一種類型;
2、清單中的資料可以通過索引通路,可以從頭開始,也可以從尾開始
3、通過切片擷取新的清單
4、清單有自己的内置函數和運算符
5、清單的資料可以被修改,可以用list元組将轉換成清單
1 Python 3.8.0 (default, Oct 23 2019, 18:51:26)
2 [GCC 9.2.0] on linux
3 Type "help", "copyright", "credits" or "license" for more information.
4 >>> x = ["first", '2th', 3, 4.999, True]
5 >>> x[0]
6 'first'
7 >>> x[-1]
8 True
9 >>> x[2]
10 3
11 >>> x[-3]
12 3
13 >>> x
14 ['first', '2th', 3, 4.999, True]
15 >>> x[-1:]
16 [True]
17 >>> x[-5:]
18 ['first', '2th', 3, 4.999, True]
19 >>> x[:-1]
20 ['first', '2th', 3, 4.999]
21 >>> x[::2]
22 ['first', 3, True]
代碼說明:
第4行:定義清單x,每個元素類型都不相同
第13行:列出清單的所有元素
第5-6行:通過索引通路清單元素,索引正向從0開始,到長度-1結束
第7-8行:通過索引通路清單元素,索引反向從-1開始,到-長度結束
第9-13行:用兩種方式通路清單的同一個元素
第15-16行:對清單切片,從-1到結束
第17-18行:對清單切片,從-5到結束
第19-20行:對清單切片,從開始到-1,但是不包含-1所在的元素
第21-22行:對清單切片,從開始到結束,但是增幅以2為增加機關
也可以調用清單的函數:其他内部函數可以通過指令help(list)檢視python幫助檔案:
Python 3.8.0 (default, Oct 23 2019, 18:51:26)
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> x=["first", '2th', 3, 4.999, True]
>>> x
['first', '2th', 3, 4.999, True]
>>> x.reverse()
>>> x
[True, 4.999, 3, '2th', 'first']
>>> x
[True, 4.999, 3, '2th', 'first']
>>> x.reverse()
>>> x
['first', '2th', 3, 4.999, True]
>>> len(x)
5
三、元組help(tuple)檢視幫助:
1、元組是資料的集合,并且資料可以不是同一種類型;
2、元組中的資料可以通過索引通路,可以從頭開始,也可以從尾開始
3、通過切片擷取新的元組
4、元組有自己的内置函數和運算符,元組用()包圍即可
5、元組的資料不可以被修改,但是可以被删除,元組自己的方法隻有count和index,可以用tuple将清單轉換成元組,其餘和清單一樣
四、字典:
1、和清單差不多,但是存儲的資料主要是鍵值對,鍵要求是不能修改的唯一值,值可以是任意類型
2、也有自己的方法可以用help(dict)檢視幫助
1 >>> help(dict)
2
3 >>> x={1:"one", 2:"two", 3:"three"}
4 >>> x
5 {1: 'one', 2: 'two', 3: 'three'}
6 >>> x[4]="four"
7 >>> x
8 {1: 'one', 2: 'two', 3: 'three', 4: 'four'}
9 >>> x[1]
10 'one'
11 >>> x[2]
12 'two'
13 >>> x[3]
14 'three'
15 >>> x.get(1, "not avilable")
16 'one'
17 >>> x.get(5, "not avilable")
18 'not avilable'
代碼很簡單,不說明了。
五、集合:
有對象組成的無序集,隻關心對象的存在性和唯一性到可以考慮使用集合類型,像是沒有鍵的字典一樣。
1 >>> y=set([1, 2, 3, 4, 5, 5, 3, 2])
2 >>> y
3 {1, 2, 3, 4, 5}
4 >>> 1 in y
5 True
6 >>> 8 in y
7 False
8 >>> z = ([1, 2, 3, 4], [5, 5, 3, 2], "sample", 'hello')
9 >>> z
10 ([1, 2, 3, 4], [5, 5, 3, 2], 'sample', 'hello')
11 >>> 3 in z
12 False
13 >>> sample in z
14 Traceback (most recent call last):
15 File "<stdin>", line 1, in <module>
16 NameError: name 'sample' is not defined
17 >>> 'sample' in z
18 True
六、字元串(help(strq):
1、字元串是表示字元資訊的重要工具,是不可修改的資料類型
2、字元串可以被’‘ “” ‘’‘ ’‘’包圍
3、字元串可以包含制表符和換行符号。
4、字元串也有操作符(in、+、*)
5、字元串也有内置函數(len、max、和min)
6、字元串也可以索引和切片
7、字元串類型本身有很多處理字元串的方法,在re子產品中也有字元串的處理函數,若想檢視re的幫助,需要先import re,再help()指令即可
七、檔案對象:
python通過檔案對象通路檔案,完成檔案的讀取或寫入。
檔案的寫入:
1 >>> f=open("newfile", "w")
2 >>> f.write("First line with necessary newline character\n")
3 44
4 >>> f.write("Second line with sample newline character!\n")
5 43
6 >>> f.close()
檔案的讀取:
1 >>> g = open("newfile", "r")
2 >>> line1=g.read
3 g.read( g.readable( g.readline( g.readlines(
4 >>> line1=g.readline()
5 >>> line2=g.readline()
6 >>> print(line1, line2)
7 First line with necessary newline character
8 Second line with sample newline character!
無論如何,一定要把檔案對象關閉。
人就像是被蒙着眼推磨的驢子,生活就像一條鞭子;當鞭子抽到你背上時,你就隻能一直往前走,雖然連你也不知道要走到什麼時候為止,便一直這麼堅持着。