1. 程式人生 > >04_Python的數據類型1數值和字符串_Python編程之路

04_Python的數據類型1數值和字符串_Python編程之路

數字 自然 理解 運算 直接 進制數 制表符 通過 dex

技術分享圖片

上一節我們通過一個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編程之路