Windows下的Python安裝簡單一些,從官方網站下載相應的安裝程序就可以了,當然也有更方便的已經包含了很全的第三方庫的選擇,WinPython:
WinPython
并且是綠色的,直接執行就可以用了。
Python基本語法
There should be one– and preferably only one –obvious way to do it.
對于一個特定的問題,應該只用最好的一種方法來解決。
基本數據類型和運算
基本數據類型
Python中最基本的數據類型包括整型,浮點數,布爾值和字符串。類型是不需要聲明的,比如:
a = 1 # 整數
b = 1.2 # 浮點數
c = True # 布爾類型
d = "False" # 字符串
e = None # NoneType
其中#是行內注釋的意思。最后一個None是NoneType,注意不是0,在Python中利用type函數可以查看一個變量的類型:
type(a) #
type(b) #
type(c) #
type(d) #
type(e) #
注釋中是執行type()函數后的輸出結果,可以看到None是單獨的一種類型NoneType。在很多API中,如果執行失敗就會返回None。
變量和引用
Python中基本變量的賦值一般建立的是個引用,比如下面的語句:
a = 1
b = a
c = 1
a賦值為1后,b=a執行時并不會將a的值復制一遍,然后賦給b,而是簡單地為a所指的值,也就是1建立了一個引用,相當于a和b都是指向包含1這個值的這塊內存的指針。所以c=1執行的也是個引用建立,這三個變量其實是三個引用,指向同一個值。這個邏輯雖然簡單,不過也還是常常容易弄混,這沒關系,Python內置了id函數,可以返回一個對象的地址,用id函數可以讓我們知道每個變量指向的是不是同一個值:
id(a) # 35556792L
id(b) # 35556792L
id(c) # 35556792L
注釋中表示的仍是執行后的結果。如果這時候我們接下面兩個語句:
b = 2 # b的引用到新的一個變量上
id(b) # 35556768L
可以看到b引用到了另一個變量上。
運算符
Python中的數值的基本運算和C差不多,字符串的運算更方便,下面是常見的例子:
a = 2
b = 2.3
c = 3
a + b # 2 + 2.3 = 4.3
c – a # 3 - 2 = 1
a / b # 整數除以浮點數,運算以浮點數為準,2 / 2.3 = 0.8695652173913044
a / c # Python2中,整數除法,向下取整 2 / 3 = 0
a ** c # a的c次方,結果為8
a += 1 # Python中沒有i++的用法,自增用+=
c -= 3 # c變成0了
d = 'Hello'
d + ' world!' # 相當于字符串拼接,結果為'Hello world!'
d += ' "world"!'# 相當于把字符串接在當前字符串尾,d變為'Hello "world"!'
e = r'\n\t\\'
print(e) # '\\n\\t\\\\'
需要提一下的幾點:1)字符串用雙引號和單引號都可以,區別主要是單引號字符串中如果出現單引號字符則需要用轉義符,雙引號也是一樣,所以在單引號字符串中使用雙引號,或者雙引號字符串中使用單引號就會比較方便。另外三個雙引號或者三個單引號圍起來的也是字符串,因為換行方便,更多用于文檔。2)Python2中兩個數值相除會根據數值類型判斷是否整數除法,Python3種則都按照浮點數。想要在Python2種也執行Python3中的除法只要執行下面語句:
from __future__ import division # 使用Python3中的除法
1 / 2
3)字符串前加r表示字符串內容嚴格按照輸入的樣子,好處是不用轉義符了,非常方便。
Python中的布爾值和邏輯的運算非常直接,下面是例子:
a = True
b = False
a and b # False
a or b # True
not a # False
基本上就是英語,操作符優先級之類的和其他語言類似。Python中也有位操作:
~8 # 按位翻轉,1000 --> -(1000+1)
8 >> 3 # 右移3位,1000 --> 0001
1 << 3 # 左移3位,0001 --> 1000
5 & 2 # 按位與,101 & 010 = 000
5 | 2 # 按位或,101 | 010 = 111
4 ^ 1 # 按位異或,100 ^ 001 = 101
==, !=和is
判斷是否相等或者不等的語法和C也一樣,另外在Python中也常常見到is操作符,這兩者的區別在于==和!=比較引用指向的內存中的內容,而is判斷兩個變量是否指向一個地址,看下面的代碼例子:
a = 1
b = 1.0
c = 1
a == b # True,值相等
a is b # False,指向的不是一個對象,這個語句等效于 id(a) == id(b)
a is c # True,指向的都是整型值1
所以一定要分清要比較的對象應該用那種方式,對于一些特殊的情況,比如None,本著Pythonic的原則,最好用is None。
注意關鍵字
評論
查看更多