【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]