Python快速入門之基礎知識(一)

zzzypp發表於2018-08-16

python基礎知識

前言

下載請前往Python官網,安裝成功後在命令列輸入python即可進入Python的互動命令列。

一、整數

Python可以處理任意大小的整數,當然包括負整數,在程式中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。

二、浮點數

浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x10^9和12.3x10^8是相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。

整數和浮點數在計算機內部儲存的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四捨五入的誤差。

三、字串

字串是以單引號''或雙引號"" 括起來的任意文字,比如’abc’,”xyz”等等。

'''...'''三引號可以用來顯示多行字串內容,如:

>>> print '''line1
... line2
... line3'''
line1
line2
line3

如涉及到中文字元,儘量在字串前面加u,如u'張三'

%s表示用字串替換,%d表示用整數替換,有幾個%?佔位符,後面就跟幾個變數或者值,順序要對應好。

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

format()

另一種格式化字串的方法是使用字串的format()方法,它會用傳入的引數依次替換字串內的佔位符{0}{1}……,不過這種方式寫起來比%要麻煩得多:

'Hello, {0}, 成績提升了 {1:.1f}%'.format('小明', 17.125)

字串拼接直接對兩字串相加即可

>>> 'hello' + ' world!'
'hello world!'

注意:

由於Python原始碼也是一個文字檔案,所以,當你的原始碼中包含中文的時候,在儲存原始碼時,就需要務必指定儲存為UTF-8編碼。當Python直譯器讀取原始碼時,為了讓它按UTF-8編碼讀取,我們通常在檔案開頭寫上這兩行:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

四、布林值

布林值只有TrueFalse兩種值。

五、空值

空值是Python裡一個特殊的值,用None表示。None不能理解為0,因為0是有意義的,而None是一個特殊的空值

六、操作符

算術運算子: +(加), -(減), *(乘), /(除), %(求餘), **(指數運算)

比較運算子: == , != , > , >= , < , <=

賦值運算子: =, += , -= , = , /= , %= , *= , //=

邏輯運算子: and , or , not

成員運算子: in , not in

身份運算子: is / is not

七、List和tuple

List

這就是Java或C中的陣列.它是一個容器,能用來順序的,以整數索引方式檢索, 儲存一組物件. List[] 來表示,如 [1, 2, 3] 就是一個List;而 Tuple() 來表示,如 (3, 4, 5) 就是一個 Tuple .

它們的區別在於List是可變的;而Tuple是不可變的.也就是說不可以增,刪和改.

索引方式除了與Java一樣的以一個整數下標方式外,還可以指定開始,結束和步長,和使用負索引來分割List:

通用語法格式是: list[start: end: step]

list[index] --- 返回第(index+1)個元素,下標從0開始  
list[start:end] --- 返回從start開始,到end-1,也就是list[start], list[start+1].....list[end-1]  
list[start:end:step] --- 與上面類似,只不過每隔step取一個  
list[:end]  ---- 預設的開端是0  
list[start:] ---- 預設的結尾是len(list),或者-1  
負數索引更是方便,它與正數的對應關係為:  
正數索引   0    1      2      3
陣列元素  [1]   [3]    [5]    [7]
負數索引  -4    -3      -2    -1

例項:

>>> a = [1, 3, 5, 7];  
>>> a[0]  
1  
>>> a[3]  
7  
>>> a[-1]  
7  
>>> a[-2]  
5  
>>> a[0:3]  
[1, 3, 5]  
>>> a[1:3:2]  
[3]  
>>> a[0:3:2]  
[1, 5]  
>>> a[0:-1:2]  
[1, 5]  
>>>

list增刪查改:

//list是一個可變的有序表,所以,可以往list中追加元素到末尾:
list.append('Adam')
//也可以把元素插入到指定的位置,比如索引號為1的位置:
list.insert(1, 'Jack')
//要刪除list末尾的元素,用pop()方法:
list.pop()
//要刪除指定位置的元素,用pop(i)方法,其中i是索引位置:
list.pop(i)

list裡面的元素的資料型別也可以不同

list裡面也可以包含list

list的遍歷:

for item in sequence:
        process(item)

#如果要取到某個item的位置,可以這樣寫:
for index in range(len(sequence)):
        process(sequence[index])

for index,item in enumerate(sequence):
        print index,item

tuple
tuple和list非常類似,但是tuple一旦初始化就不能修改,比如同樣是列出同學的名字:

classmates = ('Michael', 'Bob', 'Tracy')

現在,classmates這個tuple不能變了,它也沒有append(),insert()這樣的方法。其他獲取元素的方法和list是一樣的,你可以正常地使用classmates[0],classmates[-1],但不能賦值成另外的元素。

tuple裡面的元素如果是一個可變物件,那麼這個物件的子屬性是可以被改變的,物件本身的索引是不可改變的。

如tuple裡面包含一個listA,我們可以往listA裡面append,insert,但是你不能對listA賦值,不能刪掉listA。

八、dict和set

dict

dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)儲存,具有極快的查詢速度。

例:

>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
>>> d['Michael']
95
>>> d['Michael'] = 90
>>> d['Michael']
90
  • 多次對一個key放入value,後面的值會把前面的值沖掉
  • 如果key不存在,dict就會報錯
    要避免key不存在的錯誤,有兩種辦法,一是通過in判斷key是否存在:
>>> 'Thomas' in d
False

二是通過dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:

>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
  • pop(key) 刪除並返回該條目值(鍵值對)
  • del d[key] 也可以刪除指定元素

遍歷dict

# 方法一
for key in d: 
     n = d[key]

# 方法二:最慢
for k,v in d.items(): 
    n = v

# 方法三: 最快,推薦方法
for k,v in d.iteritems(): 
    n = v 

# 方法四
for k,v in zip(d.iterkeys(),d.itervalues()): 
    n = v 

set

set和dict類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key。

要建立一個set,需要提供一個list作為輸入集合:

>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}

重複元素在set中自動被過濾:

>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}

通過add(key)方法可以新增元素到set中,可以重複新增,但不會有效果

>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}

通過remove(key)方法可以刪除元素:

>>> s.remove(4)
>>> s
{1, 2, 3}

set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作:

>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

相關文章