1. 程式人生 > >python基礎語法三

python基礎語法三

[] n) 減少 交集 init ack 基礎 語法 lex

集合:

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 x
def : 定義函數的內容
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基礎語法三