1. 程式人生 > >【Python】python基礎學習筆記

【Python】python基礎學習筆記

Python資料型別

  • 整數
  • 浮點數
  • 字串 ’ ’ ” “
  • 布林值
    True False 可以用and(與),or(或),not(非)運算 Python把0,空字串,None視為False,其他都是True。
    空值 None 不是0,是一個特殊的空值
    python允許自定義資料型別

Python變數屬於動態語言,可以靈活賦值。

字串

raw字串:裡面的字元不需要轉義,直接原模原樣保留 。字串前加r。多行raw字串可以 : ”’……………………….”’

Unicode字串,字串前加u,可以表示中文,否則不支援中文
如果中文字串在Python環境下遇到 UnicodeDecodeError,這是因為.py檔案儲存的格式有問題。可以在第一行添加註釋:
# -*- coding: utf-8 -*

內建資料型別

list

用[]括起來的就是一個list物件,不要求是同一種類型資料的集合,元素間用逗號隔開。有序集合,類似陣列,但是支援倒序訪問 [-1]表示倒數第一個,[-2]表示倒數第二個。

list元素追加:

list.append(追加的元素) 。append總是追加的最後。還可以呼叫insert(下標,元素)

list元素刪除:

pop(),不傳引數直接刪除最後一個元素,可以傳入下標刪除指定元素

list元素的替換:

直接給對應下標賦值
list支援切片,倒序切片,把字串看成list之後也可以進行切片,相當於字串的擷取:

L = range
(1, 101) eg: print L[:10] 取出前10個數 print L[2::3] 取出 3的倍數 print L[4:50:5] 取出不大於50的5的倍數
tuple

類似於list,但是一旦建立無法修改,訪問方式與list一致,定義時使用()。Python 規定,單元素 tuple 要多加一個逗號“,”,避免歧義。
當tuple中包含list時,list部分是可變的

Python程式碼的縮排規則

具有相同縮排的程式碼被視為程式碼塊 縮排請嚴格按照Python的習慣寫法:4個空格,不要使用Tab,更不要混合Tab和空格,否則很容易造成因為縮排引起的語法錯誤。

if 語句

後接表示式,然後用:表示程式碼塊開始
if 條件:
elif 條件:
else:

for迴圈
for in :
while迴圈:
while 條件:
break語句與C一致
不支援 ++

diet

key:value形式,通過key值來查詢value, 可以簡單地使用 d[key] 的形式來查詢對應的 value,只要 key 存在,dict就返回對應的value。如果key不存在,會直接報錯:KeyError。

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}

要避免 KeyError 發生,有兩個辦法:
一是先判斷一下 key 是否存在,用 in 操作符:

if 'Paul' in d:
    print d['Paul']

如果 ‘Paul’ 不存在,if語句判斷為False,自然不會執行 print d[‘Paul’] ,從而避免了錯誤。
二是使用dict本身提供的一個 get 方法,在Key不存在的時候,返回

None>>> print d.get('Bart')
59
>>> print d.get('Paul')
None

特點:查詢速度快,佔用記憶體大,內部無序,不能儲存有序集合。
增加資料:d[key]=value,若key存在則更新value。
遍歷

for key,value in d.items():
    print key,':',value

dict 物件有一個 values() 方法,這個方法把dict轉換成一個包含所有value的list, itervalues()方法也可遍歷value, 它會在迭代過程中依次從 dict 中取出 value,所以 itervalues() 方法比 values() 方法節省了生成 list 所需的記憶體。
items() 方法把dict物件轉換成了包含tuple的list,我們對這個list進行迭代,就可以達到遍歷dict物件的目的, teritems()可以達到一樣的目的,只不過在迭代過程中不斷給出tuple。

set

持有一系列元素,這一點和 list 很像,但是set的元素沒有重複,而且是無序的,這點和 dict 的 key很像。
建立 set 的方式是呼叫 set() 並傳入一個 list,list的元素將作為set的元素:

>>> s = set(['A', 'B', 'C'])
對set的訪問

用 in 操作符判斷,set增加元素:s.add(value),刪除:s.remove(value)

函式

在Python中,定義一個函式要使用 def 語句,依次寫出函式名、括號、括號中的引數和冒號:,然後,在縮排塊中編寫函式體,函式的返回值用 return 語句返回。
Python的函式返回多值其實就是返回一個tuple,但寫起來更方便。
int()函式的第二個引數是轉換進位制,如果不傳,預設是十進位制 (base=10),如果傳了,就用傳入的引數。
可使用預設引數, 預設引數只能定義在必需引數的後面。
支援可變引數

def fn(*args):
    print args

可變引數的名字前面有個 * 號,我們可以傳入0個、1個或多個引數給可變引數:
使用 enumerate() 函式,我們可以在for迴圈中同時繫結索引index和元素name。

列表生成

eg:

>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
條件過濾
>>> [x * x for x in range(1, 11) if x % 2 == 0]
[4, 16, 36, 64, 100]