python基礎語法三
阿新 • • 發佈:2018-11-04
[] n) 減少 交集 init ack 基礎 語法 lex
test : 函數名
() : 內可定義形參
"":文檔描述
x+=1: 泛指代碼塊或程序邏輯
return : 定義返回值 調用運行: 可以帶參數,也可以不帶參數
函數名() 函數參數:
集合:
1.不同元素組成
2.無序
3.集合中的元素必須是不可變類型
s = {1, 2, 3 }
#定義集合
s = set(‘hello‘) print(s) s.pop() #指定刪除 s.remove("") s.remove("sss") #刪除元素不存在會報錯 s.discard(‘sbb‘) #刪除元素不存在,,不會報錯 print(s)View Code
集合的運算關系:
python_1 = [‘lcg‘, "szw", "zjw"] linux_1 = ["lcg", "szw"]
#取公共部分
python_and_linux_1 = [] for p_name in python_1: if p_name in linux_1: python_and_linux_1.append(p_name) print(python_and_linux_1) p_s = set(python_1) l_s = set(linux_1) #取交集的部分 print(p_s.intersection(l_s)) print(p_s&l_s) # 去並集的部分 print(p_s.union(l_s)) print(p_s|l_s) #差集 print(p_s-l_s) print(p_s.difference(l_s)) #字符串格式化 msg = "i am hobby is alex", %"lhf" msg = "i am hobby is %s ", %("lhf", "alex")
函數:
python中函數的定義方法:
def test(x): "The function definitiens" x+=1 return xdef : 定義函數的內容
test : 函數名
() : 內可定義形參
"":文檔描述
x+=1: 泛指代碼塊或程序邏輯
return : 定義返回值 調用運行: 可以帶參數,也可以不帶參數
函數名() 函數參數:
#改成用函數寫 def calc(x, y): # x, y, 形參 res = x**y return res c = calc(a, b)# a, b 實參 print(c)
默認參數:
def handle(x, type = "mysql"): print(x) print(type) handle(‘hello‘ , type=‘sqlite‘)
#參數組 : **字典 , *列表
def test(x, *args)
print(x)
print(args)
print(args[2])
test(1,2,3,4,5,6)
test(1, {"name":"alex})
def test(x, **kwargs):
print(x)
print(kwargs)
test(1, y=2, y=3)
def test(x, *args, **kw args):
print(x)
print(args)
print(kwargs)
局部變量,和全局變量
name = lhf # 全局變量 def chang(): name = lhf #局部變量 print(name) def chang(): global name = lhf #全局變量 print(name) 函數就是變量!!!
函數遞歸:
def calc(n): print(n) calc(n) calc(10) #自己調用自己! def calc(n): print(n) if int(n/2)==0 return n return calc(int(n/2)) calc(10) person_list = [‘alex‘, ‘wupeiqi‘, ‘yuanhao‘, ‘linhaifeng‘, ‘zsc‘] def ask_way(person_list): if len(person_list) == 0: return ‘根本沒人知道‘ person = person_list.pop(0)#取出一個值。 if person == ‘linhaifeng‘: return ‘%說: 我知道,老男孩就在沙河匯德商廈下地鐵就是‘ %person ask_way(person_list) ask_way(person_list)View Code
遞歸特性:
1.必須有一個明確的結束條件
2.每次進入更深一層的遞歸時,問題規模相比上一次遞歸都應有減少
3.遞歸效率不高, 遞歸層次會導致棧溢出(在計算機中,函數調用是通過棧(stack)這種數據結構實現的,每當進入
一個函數調用,棧就會加一層棧幀,每當函數返回,棧就會減一層棧幀,由於棧的大小不是無限的,所以,遞歸調用次
數過多會導致棧溢出)
python基礎語法三