Python:集合、函數、三元運算子

來源:互聯網
上載者:User

標籤:python   實參   休息   join   sleep   逗號   去除   結果   函數返回   

集合:

#一種資料類型,有去重的功能,無序的(不能根據下標取值)

兩種定義集合方法:

1:先定義一個列表,然後通過強制類型轉換成集合

a=[1,2,3,4,4,5]  #set(a) 強制類型把列表a轉換為集合,會把重複的值4去重

2:S={1,2,3,4}  #與字典要區別開

集合的操作:

list1 = {1, 2, 3, 4, 5, 6, 9}

list2 = {2, 3, 4, 6, 1}

list3 = {1, 2, 3}

print(list1.intersection(list2))  # 取交集,也就是取list1和list2中都有的

print(list1 & list2)# 取交集

print(list1.union(list2))  # 取並集,也就是把list1和list2合并了,然後去除重複的

print(list1 | list2)# 取並集

print(list1.difference(list2))  #取差集 在list中存在,在list2中沒有的

print(list1 - list2) #取差集

print(list3.issubset(list1))#判斷list3是不是list1的子集

print(list1.issuperset(list3))#判斷list1是不是list3的父集

print(list1.isdisjoint(list3))#判斷list1和list3是否有交集

print(list1.symmetric_difference(list2))#對稱差集,輸出兩個列表中互相都沒有的值,也就是把兩個集合中相同的去掉

print(list1 ^ list2) #取對稱差集

list1.add(888)#添加元素

list1.update([777,666,666])

list1.remove(777)#刪除元素,如果元素不存在會報錯

list1.pop()#刪除一個隨機的元素,並返回刪除的元素

list1.discard(‘dddd‘)#如果刪除的元素存在,刪除,不存在不做處理

三元運算子:

文法1:a=值1  if 條件 else 值2  #如果if條件成立,a=值1,否則,a=值2

文法2:nums = [1,2,3,4,5,6,7,8,9,10]

       odd_num = [num for num in nums if num%2!=0 ]#迴圈nums,如果nums裡面的值,不能被2整除的話,就寫到odd_num這個list中,也就是算奇數,等於下面這麼寫

    odd_num = []

    for num in nums:

        if num % 2 !=0:

            odd_num.append(num)

函數(又叫方法):

將一組語句的集合通過一個名字(函數名)封裝起來,要想執行這個函數,只需調用其函數名即可。

定義函數:

def  my_open():  #定義一個my_open的函數,要帶冒號

調用函數:

My_open()  #函數名加括弧即調用此函數,函數不調用就不會執行

函數必填參數:

def  read_users(file_name,age):  #定義函數時,括弧裡是形參(即變數);多個參數用逗號隔開,這種又叫必填參數或位置參數

read_users(‘a.txt’,20)  #調用函數時,括弧裡是實參,是實際的參數;多個參數用逗號隔開

函數預設值參數:

def  read_users(name,sex=’nan’):  #sex是預設值參數

read_users(‘hn’)  #調用時如果不填sex對應的實參,就預設是‘nan’

read_users(‘hn’,’nv’)  #調用時如果填sex對應的實參,就取實參的值

函數可變參數:

def  post(*args):  #也叫參數組(習慣性寫args,也可以寫其他變數),數量不固定,不是必填的,接收的是一個元組,它把調用函數時傳進去的參數放到一個元組裡

函數關鍵字參數:

也不是必填參數,可以為空白

def kw(**kwargs)  #兩個星號,接收的是一個字典

kw(name=’hn’,age=20)  #調用時實參要寫關鍵字,括弧裡可以直接填字典變數,但要加上**,比如(dic={‘ name’=’hn’,’age’=20})  kw(**dic)

參數的順序:

按照必填參數、預設值參數、可變參數、關鍵字參數的順序接收參數,否則會報錯,例:def  other(name,country=’china’,*args,**kwargs)

調用函數時使用關鍵字參數:

如果定義函數時,必填參數太多,在調用函數時,可以用key=value形式傳實參,這種實參可以無序。例:定義函數:def write(filename,model,user,os):    調用:write(‘a.txt’,user=’hn’,os=’windows’,model=’hhh’)  #調用函數傳實參時,必填參數必須在關鍵字參數前面

 

函數傳回值:

用return a  #函數碰到return立即結束函數;調用完函數之後會返回一個結果

沒有傳回值的函數,預設返回None

 

返回多個值:

return a,b,c  #用逗號隔開,返回的多個值會放到元組裡

 

局部變數和全域變數:

局部變數:在函數裡面定義的變數叫局部變數,只能在函數裡面用

全域變數:在函數外定義的變數,是全域變數,在函數內也能使用

在函數裡改全域變數:

(int、string類型):用global聲明

用global聲明一下,即global a  a=100這樣全域變數a的值就變了,如果不用global聲明,a的值只是在函數裡變了,出了函數a的值還是函數體之前的值

List dic 類型:就不用global聲明,在函數裡改變值,出了函數值也變化了。如果用global聲明,會報錯。

 

補充:

1:變數給變數賦值,賦的是記憶體位址,舉例:def  a():   a=b  那麼b()即調用了這個a函數

 

2:import os

os.system  #用來執行作業系統命令

 

3:import time

time.sleep(60)  #休息60秒再運行

 

4:linux重新導向:把一個檔案裡面的內容,複製到另一個檔案裡

Python:集合、函數、三元運算子

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.