04_Python的數據類型1數值和字符串_Python編程之路
上一節我們通過一個helloworld程序學習python的一些簡單操作,還有輸入與輸出
這節我們來講Python的數據類型與變量的操作
Python的交互器
在講這個之前,我要先講一下python的交互器,之後講解代碼(除了做簡單項目)都在交互器上進行,這樣可能比較直接一些,有利於剛接觸python的人理解代碼
python在命令行自帶一個交互器,我們可以直接通過輸入python進入python的交互器
但是他的功能並不是很齊全,比如代碼著色,和變量的提示,以及操作shell命令的功能都沒有
所以我在這推薦一款更強大的Python“交互器Shell”,IPython
IPython 是一個 python 的交互式 shell,比默認的python shell 好用得多,支持變量自動補全,自動縮進,支持 bash shell 命令,內置了許多很有用的功能和函數。
例如可以直接在ipython中直接使用Linux命令,如 ls 命令查看文件夾下的文件
安裝ipython只需要執行以下命令即可
pip install ipython
使用ipython只需要輸入ipython即可
Python中操作數字
在交互器中,Python語言可以和自然語言一樣處理數學的計算,例如
In [1]: 4+4 Out[1]: 8 In [2]: 100 - 6*3 Out[2]: 82 In [3]: (100 - 5*6) / 10 Out[3]: 7.0 In [4]: 10 / 3 Out[4]: 3.3333333333333335
註意在Python中進行除法時只返回浮點數,也就是帶小數點的數
整型 int
像4, 45, 255, 2455這些都是整型數字
浮點數 float
像5.0,3.1415,5.733都是浮點數
前面講了進行除法時使用" / "只會返回一個浮點數
如果你想返回一個整數,那麽你就可以使用" // "操作符
In [5]: 20 / 3 Out[5]: 6.666666666666667 In [6]: 20 // 3 Out[6]: 6
取余操作符" % "
例如
In [8]: 30 % 4 #30取4的余數 Out[8]: 2 In [9]: 4 * 7 + 2 Out[9]: 30
次方操作符 " ** "
例如
In [10]: 4 ** 2 #4的二次方 Out[10]: 16 In [11]: 2 * 4 #2的四次方 Out[11]: 8
註意:進行負數的次方運算時最好把負數加上括號
In [27]: -2**4 Out[27]: -16 In [28]: (-2)**4 Out[28]: 16
賦值符號 " = "
把一個數值賦給一個變量
例如
In [14]: height = 12.5 #長 In [15]: width = 5 #寬 In [16]: area = height * width #面積 In [17]: print(area) 62.5
需要註意的是一個變量必須要在使用時對其賦初值定義
混合數據類型的計算
在進行混合類型的計算時,Python的解釋器總是會在整數與浮點數的計算中返回一份浮點數
In [19]: 7 * 8 - 2.00 Out[19]: 54.0
操作浮點數的精度 "round"
round()方法需要傳入兩個參數,第一個是要操作的數字,第二個是浮點數的精度
例如
In [25]: PAI = 3.1415926535 In [26]: round(PAI, 2) Out[26]: 3.14
Python中操作字符串(string)
在Python中,字符串是最常用的數據類型,當然數值也不例外,
申明一個字符串可以用 ‘ ‘ 和 ‘‘ ‘‘
在輸出單引號和雙引號時我們可以使用轉義符號" \ "
例如
In [29]: ‘hello world‘ Out[29]: ‘hello world‘ In [30]: "hello world" Out[30]: ‘hello world‘ In [31]: " PHP是世界上\"最好\"的語言 " Out[31]: ‘ PHP是世界上"最好"的語言 ‘
在這裏我們稍微擴展以下,常見的轉義字符
轉義字符 | 描述 |
---|---|
\(在行尾時) | 續行符 |
\\ | 反斜杠符號 |
\‘ | 單引號 |
\" | 雙引號 |
\a | 響鈴 |
\b | 退格(Backspace) |
\e | 轉義 |
\000 | 空 |
\n | 換行 |
\v | 縱向制表符 |
\t | 橫向制表符 |
\r | 回車 |
\f | 換頁 |
\oyy | 八進制數,yy代表的字符,例如:\o12代表換行 |
\xyy | 十六進制數,yy代表的字符,例如:\x0a代表換行 |
\other | 其它的字符以普通格式輸出 |
註意:python的print()方法是默認換行輸出的,只有使用輸出方法時,\n才會生效,例如
In [4]: talk = "你好\nPython" In [5]: talk Out[5]: ‘你好\nPython‘ In [6]: print(talk) 你好 Python
當然如果你不這麽麻煩,想直接輸入一段話,不考慮轉義,這是你就可以使用原始字符串,把要輸出的字符串加上引號,然後在前面加上 r 即可;
例如
輸出一段路徑時
In [7]: print("D:\notepad++\bin") D: otepad+in In [8]: print(r"D:\notepad++\bin") D:\notepad++\bin
當然除了上面的方法,還有一個就是用python的格式化輸出
格式化輸出 ‘‘‘ .... ‘‘‘
如果想要格式化輸出一行或多行文本時,就可以用 三引號 來輸出
例如輸出一個人的基本信息
In [9]: info = ‘‘‘ name: %s age: %d ‘‘‘%("susmote",18) In [10]: print(info) name: susmote age: 18
多行輸出時
In [12]: print(‘‘‘ ...: name : %s ...: age : %d ...: ‘‘‘%("susmote",18) ) name : susmote age : 18
字符串的連接輸出
python作為一門弱類型語言,你可以花式操作字符串
例如要重復輸出一段字符串時,其他語言只能通過循環去完成,而python除了循環,你還可以對他進行數學操作,例如
In [15]: ‘h‘ + ‘e‘ + 2*‘l‘ + ‘o‘ Out[15]: ‘hello‘
當然你也可以不用加號
In [19]: ‘h‘ ‘e‘ +2*‘l‘+ ‘o‘ Out[19]: ‘hello‘
註意,不能把一個變量跟字符串直接相連(不加“ + ”號)
字符串索引切片
字符串,通俗來講也就用字符連接成的串,那麽我們怎麽能夠獲取其中包含的字符呢,這時我們就要用到索引(index)了,只需要在字符串後面加‘‘ [ index ] ‘‘,index代表你要獲取的字符順序
註意索引都是從0開始的,這個目前市場上主流語言都適用
例如
In [30]: name = "susmote" In [31]: name[0] Out[31]: ‘s‘ In [33]: name[1] Out[33]: ‘u‘
除了用正序索引,我們也可以使用倒序索引,用" - "開始
In [34]: name[-1] 相當於name[6] Out[34]: ‘e‘ In [35]: name[-2] 相當於name[5] Out[35]: ‘t‘
字符串的切片
用上面的方法我們每次最多也只能獲取一個字符,但是如果我們想獲取多個字符該怎麽辦呢,這時就要用到切片了
切片操作,只需要在字符串後加 [ index1 : index2 ],註意兩個index之間用" : "(分號)隔開,index1代表開始的字符,index2代表結束的字符
註意切片是 包頭不包尾的
例如以下例子
In [43]: name = ‘susmote‘ In [44]: name[0:1] Out[44]: ‘s‘ In [45]: name[0:2] Out[45]: ‘su‘ In [46]: name[0:6] Out[46]: ‘susmot‘ In [47]: name[0:7] Out[47]: ‘susmote‘
也可以不加索引(開始的索引和結束的索引),默認index1(開始字符的索引)是0,index2(結束字符的索引)是最後的字符索引加1
例如
In [49]: name[:] Out[49]: ‘susmote‘ In [50]: name[0:] Out[50]: ‘susmote‘ In [51]: name[:7] Out[51]: ‘susmote‘
切片也可以用" - " 倒序索引
但是切片是按照正序來操作的,所以針對復雜的切片還是要仔細分析索引
In [72]: name[-1:] Out[72]: ‘e‘ In [73]: name[:-1] Out[73]: ‘susmot‘ In [74]: name[-7:-1] Out[74]: ‘susmot‘
索引的結構如下
+---+---+---+---+---+---+---+ | s | u | s | m | o | t | e | +---+---+---+---+---+---+---+ 0 1 2 3 4 5 6 -6 -5 -4 -3 -2 -1
如果開始字符的索引超出了字符的長度,那麽什麽都不會輸出
如果結束字符的索引超出了字符的長度,那麽只會輸出開始的字符到整個字符串的最後一個字符索引
In [75]: name[40:] Out[75]: ‘‘ In [76]: name[3:40] Out[76]: ‘mote‘
註意字符串類型是不可以被改變的,你不能對索引對象和切片對象進行賦值
獲取字符串的長度
獲取的字符串的長度我們可以通過 len() 方法來獲得
In [79]: well = "susmote very smart" In [80]: len(well) Out[80]: 18
數值和字符串簡單的我們就講到這裏,下一節在介紹python其他的數據類型
04_Python的數據類型1數值和字符串_Python編程之路