計算機的本質就是計算,在其內部是0和1的位元位的變化,對外表現就是資料的變化。那麼,計算機都能處理什麼資料呢?本質上,資料都是以位元組(byte)儲存的,表現上看,它們就是整數、浮點數和字串等。python的基本資料型別也不外乎於此。
整數和浮點數就跟數學中的一樣,而字串就是各種字元的組合。
數值型別:整數(int)、浮點數(float)
int和float是python中為整數和浮點數保留的關鍵字。
整數和浮點數(也就是小數)和我們在小學時學的一樣。
python中的整數: int
包括正整數、零和負整數: 3, 0, -20等等。日常生活中,我們接觸的整數都是十進位制的,而在計算機中二進位制和十六進製制也是很常見的。
二進位制整數用0b作為字首,因為是二進位制,所以只包含0和1兩個字元,比如:0b101, 0b1000。如果包含01以為的字元就是錯誤的:
in [40]: b = 0b1003
file "", line 1
b = 0b1003
syntaxerror: invalid syntax
十六進製制整數用0x作為字首,包含0-9a-f共6個字元,比如:0x23ab, 0xfd39803a。同樣的十六進製制只能包含它規定的16個字元,不過,a-f這6個字母不區分大小寫,也就是說a-f也是合法的十六進製制字元。
二進位制法定01兩個字元,十六進製制法定0-9a-f共16個字元,就跟十進位制有0-9共10個字元是一樣的。
in [46]: a = 32
in [47]: a
out[47]: 32
in [48]: b = 0x20
in [49]: b
out[49]: 32
in [50]: c = 0b100000
in [51]: c
out[51]: 32
另外,布林型別(boolean)作為一種整數的子型別表示程式中的「是非」,它的值有且僅有兩個:true和false。它是以後程式設計中條件判斷、比較運算的重要概念,我們將在後面專門來講一講布林型別。
python中的浮點數: float
浮點數就是數學中的小數,也是做數值計算中常用的型別,python中的寫法跟數學中一樣,比如:0.235,3.1415926,-6.5等等。不過數值很大或很小時,浮點數就會變為科學計數法:9.8e+16, 2e-10。
in [68]: a = 0.000000002
in [69]: a
out[69]: 2e-09
in [70]: b = 76000000000000000.0
in [71]: b
out[71]: 7.6e+16
數值運算:python作為直譯器
講到數值型別就不得不說說數值計算,畢竟數就是拿來算的嘛。
python跟數學一樣,支援整數和浮點數之間的四則運算加減乘除:+,-,*,/,也是用小括號()來分組。比如:
in [72]: 3 + 4
out[72]: 7
in [73]: 9-10
out[73]: -1
in [74]: 39 + 18/3
out[74]: 45.0
in [75]: 3 + 18*3
out[75]: 57
in [76]: (50 - 30) / 2
out[76]: 10.0
in [77]: 19 / 2
out[77]: 9.5
同樣也支援數學中求商數和餘數的計算,比如:
a ÷ b = q…r
(13 ÷ 3 = 4…1)
其中,a為被除數,b為除數,q為商數,r為餘數
python中求商數(floor division)的運算子是//,
而計算餘數(也叫模除、取模操作、取模運算)的運算子是%,模除在程式設計中有廣泛的應用,比如奇偶數的判斷。
in [81]: 19 // 3 # 求商數
out[81]: 6
in [82]: 19 % 3 # 模除
out[82]: 1
in [83]: 6 * 3 + 1 # 商數 × 除數 + 餘數
out[83]: 19
還有python中計算乘方的運算子是:**
in [84]: 8 ** 2
out[84]: 64
in [85]: 8 ** 3
out[85]: 512
字串: str
在我們人類的語言中,數值對應著計算,文字對應著記錄。在python語言中字串也是用來記錄的,它由一串字元(包括ascii、中文字元等)組成。
字串的寫法有多種形式:
單引號: '單引號引起來的可以內嵌"雙引號"的字串'
雙引號: "雙引號引起來的可以內嵌'單引號'的字串"
三引號: '''連續的三個單引號引起來的''',"""連續三個雙引號引起來的"""
特別的是,三引號字串可以分成多行來寫,多行之間的空白(包括換行符、空格、tab鍵)都是字串的一部分。
同時可以使用反斜槓\進行字元轉義:
in [86]: '猿人學python'
out[86]: '猿人學python'
in [87]: '猿人\'學\'python'
out[87]: "猿人'學'python"
in [88]: "猿人'學'python"
out[88]: "猿人'學'python"
in [89]: "猿人\"學\"python"
out[89]: '猿人"學"python'
in [90]: '''hi! ...: hello'''
out[90]: 'hi!\nhello'
反斜槓\會把它後面的字元轉義出特殊字元,比如\n就轉義為換行符。如果想取消這種轉義,可以使用原始字串的方式,即在字串前面加r即可:
in [91]: print('c:\good\named-files') # 該字串中 \n 是乙個字元,表示換行符
c:\good
amed-files
in [92]: print(r'c:\good\named-files') # 該字串中 \n 是原始的兩個字元:`\`和`n`,因為前面加了 r。
c:\good\named-files
空值: none
python定義了乙個特殊的none來表示空值,它不同於false,0,但它的邏輯值為假。可以看以下**加深理解:
in [93]: none + 1
typeerror traceback (most recent call last)
in ----> 1 none + 1
typeerror: unsupported operand type(s) for +: 'nonetype' and 'int'
in [94]: none == false
out[94]: false
in [95]: none == 0
out[95]: false
in [96]: type(none)
out[96]: nonetype
in [97]: type(0)
out[97]: int
in [98]: type(false)
out[98]: bool
in [99]: if none:
...: print('i am true')
...: else:
...: print('i am false')
i am false
如果你定義的函式沒有返回值,python會自動返回none。
練習(1) 開啟python shell(或ipython),進行整數和浮點數的四則運算,包括:加減乘除、括號的使用,以及整數的乘方、求商、模除。
(2) 熟悉字串的幾種表示方式,結合自己搜尋理解程式設計中的「轉義」。
總結這一節我們學到了python可以當做計算機來進行整數、浮點數這些基本型別的加減乘除、求商、其餘等運算,還有字串的表示。
python帝國cms Python 函式
函式,是程式設計中很重要的乙個概念。簡單來說,函式是一段可重複使用的 段,給這段 起個名字就是 函式名 在程式的任何地方都可以通過函式名來使用這段 這就是 函式呼叫 函式的定義 函式的概念,其實我們在初中數學中就接觸過了。比如,這個表示式y 2x 3,我們就稱y是x的一次函式。寫成python函式就...
帝國cms學習 從零學習帝國cms
從畢業後一直在用php寫後台程式也沒有用過相關的cms系統 現在開始學習帝國cms,學習順序 現在寫下來,作個記錄,希望對學習有幫組。有什麼錯誤 的地方,希望路過的朋友幫忙指正,3qqqq 2.安裝 3.入門教程 4.系統內建標籤語法介紹 5.我遇到過的問題就是更改模板裡的東西時,重新整理後還是原先...
騰訊帝國夢
如何才能讓qq擁有的眾多使用者資源變現成真金 這家依託即時通訊工具起家的網際網路公司給出的答案是 擴張!盡可能地擴張!依託qq這只 小企鵝 馬化騰開始了急速擴張,那麼,馬化騰野心勃勃構建的 全價值鏈 的網際網路帝國真的能實現嗎?新門戶征戰 我們正在設計新的商業模式。孫忠懷認為qq.com可以依靠即時...