標籤:資料類型 cti 圖片 數列 字元 全域變數 lock 修改 列印
一、變數
變數是記錄一系列狀態變化的量
1.變數分為可變類型與不可變類型——可變 與不可變是根據變數在記憶體中佔據的位置
可變類型:列表list[ ]、字典dicta{ }
不可變類型:字串str、數字int、元組()
2.按照訪問方式可分為順序訪問、映射訪問和直接存取
直接存取:數字int
映射訪問:字典dict{ }
順序訪問:字串str、列表list[ ]、元組()
二、集合
特徵:由不同的元素組成,元素無序,集合中的元素必須是不可變類型
1.集合定義:set()
s = set(‘hello‘)
print(s)
#輸出結果為{‘o‘,‘h‘,‘l‘,‘e‘},無序,無重
其中()中必須為可迭代類型
2.常用方法
add() #向集合中添加元素
clear() #清空集合
pop()#隨機刪除某個元素remove()#指定某個值刪除,當不存在要刪除的元素時,編譯報錯discard()#指定某個值刪除,當不存在要刪除的元素時,編譯不報錯
3.常用操作
s1.intersection(s2) #求s1與s2的交集
s1.union(s2) #求s1與s2的並集
s1.difference(s2) #s1中有,s2中沒有的元素s2.difference(s1) #反之
s1.difference_update(s2) #等價於s1 = s1-s2s1.isdisjoint(s2) #交集是否為空白集s1.issubset(s2) #s1是否為s2的子集,反之,issuperset()判斷是否為父集
三、字串格式化
%s固定類型,用於傳值,傳多個值是(,,,),中間用逗號分隔
%d——傳數字,%s——可用於傳一切資料類型
列印浮點數:
%.2f #列印小數點後2位
列印百分比符號:%%
字典的傳值:
%(name)d %(age)s #傳一個字典,key=name,key=age
四、函數
形式:
def test()關鍵字 函數名 形參 代碼塊 return 傳回值
函數的定義主要有如下要點:
- def:表示函數的關鍵字
- 函數名:函數的名稱,日後根據函數名調用函數
- 函數體:函數中進行一系列的邏輯計算,如:發送郵件、計算出 [11,22,38,888,2]中的最大數等...
- 參數:為函數體提供資料
- 傳回值:當函數執行完畢後,可以給調用者返回資料。
關於傳回值:
- 無傳回值:返回一個None
- 有一個傳回值:返回object
- 多個傳回值:返回一個tuple
函數的有三中不同的參數:
# ######### 定義函數 ######### # name 叫做函數func的形式參數,簡稱:形參def func(name): print name# ######### 執行函數 ######### # ‘wupeiqi‘ 叫做函數func的實際參數,簡稱:實參func(‘無名‘)普通參數
def func(name, age = 18): print "%s:%s" %(name,age)# 指定參數func(‘無名‘, 19)# 使用預設參數func(‘有名‘)註:預設參數需要放在參數列表最後預設參數
參數的傳值時位置參數,關鍵字參數的使用規則:
- 位置參數必須一一對應,缺一不行,多一也不行
- 一個參數不能傳兩個值
- 若位置參數與關鍵字參數混合使用,則位置參數必須在關鍵字參數左邊
- 多組參數(位置參數,*args,**kwargs)對應形式為(位置參數,列表,字典)
五、局部變數與全域變數
局部變數;在子程式中定義的變數
全域變數;在整個檔案中任何位置均可調用到
變數使用的就近原則
關於global關鍵字:
如果函數中無global關鍵字,優先讀取局部變數,若無局部變數,則只能讀取全域變數,也就無法對其賦值或者修改。
當有global關鍵字時,global把全域變數拿到函數中,變成了該函數的變數,但對其他函數來講,仍然是全域變數,但全域變數的值可以在上一個函數中被修改。
為了以後避免變數重名問題,全域變數一律大寫,局部變數小寫。
函數執行順序
六、遞迴
函數自己調用自己,但必須有個明確的結束條件
Python進階【第四篇】函數