1. 程式人生 > >python-程式設計從入門到實踐

python-程式設計從入門到實踐

python-程式設計從入門到實踐


1.python檔案字尾名:
.py 是Python的原始碼檔案,由Python.exe解釋。
.pyc 是Python的編譯檔案。pyc 檔案往往代替 py 檔案釋出;Python在執行時,首先會將 py 檔案中的原始碼編譯成PyCodeObject寫入 pyc 檔案,再由虛擬機執行PyCodeObject。
   當Python執行 import 時會先尋找對應的 pyc
或 pyd(dll)檔案,如果沒有則將對應的py檔案編譯寫入 pyc 檔案。pyc檔案也可以通過 python -m py_compile src.py 生成。

.pyo 是優化編譯後的程式,不能用文字編輯器編輯。 python -O source.py 即可將源程式編譯為 pyo 檔案。

2.變數,每個變數都儲存一個值,與變數相關聯的資訊。
規則:
1、變數名只包含字母、數字和下劃線,變數名可以字母或下劃線開頭,但不能以數字開頭。
2、變數名不能包含空格,但可使用下劃線來分割其中的單詞。
3、不要將Python關鍵字和函式名用作變數名,即不要使用Python保留用於特殊用途的單詞。
4、變數名應即簡短又具有描述性。
5、慎用小寫字母‘i’和大寫字母‘O’,容易誤導為數字1和0。

3.字串,在Python中,用引號括起的都是字串,其中的引號可以是單引號或是雙引號。

函式:
upper() 字串中全部字母改為大寫。
lower() 字串中全部字母改為小寫。
rstrip() 去掉末尾的空格,如需要使用修改後的字串需重新賦值,不修改原字串。
lstrip() 去掉開頭的空格,如需要使用修改後的字串需重新賦值,不修改原字串。
strip() 去掉開頭和結尾的空格,如需要使用修改後的字串需重新賦值,不修改原字串。
str() 將變數轉換為字串型別
製表符:
\n 代表換行
\t 代表table,它的含義是一個字元,叫做製表符;它的作用是對齊表格資料的各列。
字串拼接:加號(+),可以把兩個或幾個字串拼接成一個字串。

4.整數/浮點數
算術運算子: + - * / % // **
賦值運算子: = += -= *= /= %= **= //=

5.列表'[]':
列表由一系列按特定順序排列的元素組成。列表是有序集合,因此要訪問列表的任何元素只需將該元素的位置或索引告訴Python即可。索引是從0開始;'-1'代表最後一位的索引。

函式:
list() 將變數轉換為列表格式
append() 列表末尾新增元素。
insert() 列表中任意位置新增元素,需指定插入位置的索引和值。
del 刪除列表,可刪除整個列表,也可刪除索引位的值;刪除的值不可再訪問。
pop() 刪除列表末尾的元素,並讓你能夠接著使用它。
remove() 根據值刪除列表中的元素, 只刪除第一個指定的值;如果要刪除的值可能在列表中出現多次,就需要使用迴圈來判斷是否刪除了所有這樣的值。
sort() 排序,預設按從小到大,修改是永久性的; 引數reverse=True字母順序相反。
sorted() 臨時排序,保留原列表順序; 引數reverse=True字母順序相反。
reverse() 反轉列表元素,不是指按與字母順序相反的順序排列列表元素,而只是反轉列表元素的排列順序。
min() 返回列表最小數字。
max() 返回列表最大數字。
sum() 返回列表數字和。
列表切片: [:] 規則:前開後閉

6.元組‘()’:
一個有序卻不可修改的列表稱之為元組,使用圓括號表示元組。元組中只包含一個元素時,需要在元素後面新增逗號,否則括號會被當作運算子使用。
函式:
tuple() 將變數轉換為元組格式
index() 查詢元素,不存在返回error。

7.for / if / while:
比較運算子: == != > < >= <=
邏輯運算子: and or not
成員運算子: in not in
身份運算子: is is not
位運算子:
按位與:& 按位或:| 按位異:^
按位取反:~ 左移動:<< 右移動:>>
continue   退出當前迴圈,執行下一次迴圈。
break    退出整個迴圈。

8.字典{}:
字典是另一種可變容器模型,且可儲存任意型別物件。字典的每個鍵值(key=>value)對用冒號(:)分割,每對之間用逗號(,)分割,整個字典包括在花括號({})中,字典是無序的。
函式:
clear()   刪除字典內所有元素
copy()   淺複製
fromkeys() 建立一個新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對應的初始值
get() 返回指定鍵的值,如果值不在字典中返回default值
items() 以列表返回可遍歷的(鍵, 值) 元組陣列。
keys() 返回字典中所有的鍵。

9.set 集合:
集合(set)是一個無序的不重複元素序列。可以使用大括號 { } 或者 set() 函式建立集合,注意:建立一個空集合必須用 set() 而不是 { },因為 { } 是用來建立一個空字典。
建立格式:
  s = {value01,value02,...} 或 set(value)
函式:
add() 新增元素,如果已存在,則不進行任何操作,引數為字串格式。
update() 新增元素,如果已存在,則不進行任何操作,引數為列表,元組,字典等。
remove() 刪除指定元素,如果元素不存在,則會報錯。
discard() 刪除元素,如果元素不存在,不會報錯。
pop() 隨機刪除。
clear() 清空集合元素,返回None。
difference() 返回集合的差集,即返回的集合元素包含在第一個集合中,但不包含在第二個集合(方法的引數)中。
difference_update() 移除集合中的元素,該元素在指定的集合也存在。
intersection() 返回兩個或更多集合中都包含的元素,即交集。
intersection_update() 移除兩個或更多集合中都不重疊的元素,即返回交集。
isdisjoint() 判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。

10.函式:
關鍵字 def 來定義一個函式。
實參 是呼叫函式時傳遞給函式的資訊。
形參 是函式完成其工作所需的引數。
位置實參 在呼叫函式時,按實參的順序,將函式呼叫中的每個實參都關聯到函式定義中的形參中。
關鍵字實參 是傳遞給函式的名稱值對,將名稱和值關聯起來。
預設值 可給形參指定預設值,沒有實參情況時,形參直接使用預設值。
return 返回值
*name 不定長引數,加了*的引數會以元組的形式匯入,存放所有未命名的變數引數。
**name 不定長引數,加了*的引數會以字典的形式匯入,存放所有未命名的變數引數。

匿名函式:
lambda [arg1 [,arg2,.....argn]]:expression

關鍵字:
global 當內部作用域想修改外部作用域的變數時,就要用到global
nonlocal 當要修改巢狀作用域中的變數則需要 nonlocal 關鍵字


通用函式:
title() 修改大小寫,字串中首字母改為大寫,其餘都改為小寫。
len() 返回變數中的長度。
range() 返回整數序列的數字集,規則前開後閉。


版本區別:
1、Python2中,整數除法的結果只包含整數部分,小數部分被刪除。請注意,計算整數結果時,採取的方式不是四捨五入,而是將小數部分直接刪除。
2、Python2.7應使用函式raw_input()來提示使用者輸入。這個函式與Python3中的input()一樣,也將輸入解讀為字串。


運算優先順序:
** 指數 (最高優先順序)
~ + - 按位翻轉, 一元加號和減號 (最後兩個的方法名為 [email protected][email protected])
* / % // 乘,除,取模和取整除
+ - 加法減法
>> << 右移,左移運算子
& 位 'AND'
^ | 位運算子
<= < > >= 比較運算子
<> == != 等於運算子
= %= /= //= -= += *= **= 賦值運算子
is is not 身份運算子
in not in 成員運算子
and or not 邏輯運算子


可更改(mutable)與不可更改(immutable)物件
在 python 中,strings, tuples, 和 numbers 是不可更改的物件,而 list,dict 等則是可以修改的物件。
不可變型別:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成一個 int 值物件 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。
可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

python 函式的引數傳遞:
不可變型別:類似 c++ 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的物件,不會影響 a 本身。
可變型別:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
python 中一切都是物件,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳可變物件。