python作為一門編程語言,和我們之前學習過的c,oc,swift,c++,c#,swift,javascript等編程語言一樣,也有它能夠直接處理的數據類型。
整數:
python可以處理任意大小的整數,包括正整數和負整數,例如:1
,65535
,-1
等。當然,計算機是使用用二進制來處理數據的,所以有時候用八進制或十六進制表示整數比較方便,八進制表示整數:數字加前綴0
,表示是八進制,例如:01
,07
等。十六進制表示整數:數字加加前綴0x
,表示是十六進制,例如:0xff00
,0xaf23bb
等。
python中的整型用int
表示,和大多數編程語言一樣。在Python 3里,只有一種整數類型int
,表示為長整型,沒有 python2 中的 Long
。像大多數編程語言一樣,數值類型的賦值和計算都是很直觀的。內置的 type()
函數可以用來查詢變量所指的對象類型。此外還可以用isinstance
來判斷。但兩者還是有區別的:
- type()不會認為子類是一種父類類型。
- isinstance()會認為子類是一種父類類型。
浮點數:
也就是數學中的小數,我們在學數學時學過用科學計數法來表示一個小數,比如:0.0000018
可以用科學計數法表示成:1.8x10-6
,在計算機中則可以表示成1.8e-6
或18e-7
,正如你所見,對于同一個小數,小數點位置在科學計數法中是可以改變的,所以稱也稱小數為浮點數。
整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的(除法也是精確的),而浮點數運算則可能會有四舍五入的誤差。
在Python中,有兩種除法,一種除法是
/
:
>>> 10 / 3
3.3333333333333335```
`/`除法計算結果是浮點數,即使是兩個整數恰好整除,結果也是浮點數:
9 / 3
3.0```
還有一種除法是//
,稱為地板除
,兩個整數的除法仍然是整數:
>>> 10 // 3
3```
因為`//`除法只取結果的整數部分,所以Python還提供一個余數運算,可以得到兩個整數相除的余數:
10 % 3
1```
無論整數做//
除法還是取余數,結果永遠是整數,所以,整數運算結果永遠是精確的。
字符串:
Python中的字符串用單引號'
或雙引號"
括起來,同時使用反斜杠 \ 轉義特殊字符。比如字符串內部既包含'
又包含"
:
'I\'m \"fine\"!'```
表示的字符串內容是:
I'm "fine"!```
Python還允許用r''
表示''
內部的字符串默認不轉義,例如:
>>> print(r'\\\t\\')
\\\t\\
如果字符串內部有很多換行,用\n寫在一行里不好閱讀,為了簡化,Python允許用'''...'''的格式表示多行內容:
print('''
----------info of Jeff ----------
Name:Jeff
Age:27
Job:developer
''')
----------info of Jeff ----------
Name:Jeff
Age:27
Job:developer```
字符串的截取的語法格式如下:
變量[頭下標:尾下標]```
索引值以 0 為開始值,-1 為從末尾的開始位置。
加號 +
是字符串的連接符, 星號 *
表示復制當前字符串,緊跟的數字為復制的次數。例如:
#Author:Jeff
str = 'hello,Jeff'
print(str) #輸出字符串
print(str[0:-1]) #輸出第一個到倒數第二個的所有字符
print(str[0]) #輸出字符串第一個字符
print(str[2:6]) #輸出從第三個開始到第六個的字符
print(str[2:]) #輸出從第三個開始的后的所有字符
print(str * 2) #輸出字符串兩次
print(str + "good morning!") #連接字符串
打印的結果:
打印結果.png
與 C 字符串不同的是,Python 字符串不能被改變。向一個索引位置賦值,比如str[0] = 't'
會導致錯誤。
布爾值
布爾值有True
、False
兩種值,布爾值可以用and
、or
和not
運算。
and
運算是與
運算,只有所有都為True
,and
運算結果才是True
。
or
運算是或
運算,只要其中有一個為True
,or
運算結果就是True
。
not
運算是非
運算,它是一個單目運算符,把True
變成False
,False
變成True
。
空值
空值是Python里一個特殊的值,用None
表示。None
不能理解為0
,因為0
是有意義的,而None
是一個特殊的空值。
變量
變量存儲在內存中的值。這就意味著在創建變量時會在內存中開辟一個空間。基于變量的數據類型,解釋器會分配指定內存,并決定什么數據可以被存儲在內存中。因此,變量可以指定不同的數據類型,這些變量可以存儲整數,小數或字符。
和swift一樣,Python 中的變量賦值不需要類型聲明。每個變量在內存中創建,都包括變量的標識,名稱和數據這些信息。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創建。
當寫下代碼:
var = 'Jeff'```
時,Python解釋器干了兩件事情:
* 在內存中創建了一個'Jeff'的字符串;
* 在內存中創建了一個名為`var` 的變量,并把它指向'Jeff'。
也可以把一個變量`var`賦值給另一個變量`var1`,這個操作實際上是把變量`var1`指向變量`var`所指向的數據,例如:
var = 'Jeff'
var1 = var
var= 'Jhon'
print(var1)```
打印結果: 'Jeff'
常量
所謂常量就是不能變的變量,比如常用的數學常數π就是一個常量。在Python中,通常用全部大寫的變量名表示常量:
PI = 3.14159265359```
但事實上PI仍然是一個變量,Python根本沒有任何機制保證PI不會被改變,只是約定的編程習慣,告訴你不應該改罷了。