day9.拷貝,函數(shù)

1. recode

列表(lidt):[];可變,有序;元素時任何類型
增加:apped(),insert(),extend()
刪除:del,remove(),pop()
更改:列表[下標]=新值
查:列表[下標],切片,遍歷

字典(dict):{};可變,無序;鍵唯一,值任意類型
增加:字典[key]=值,update(),setdefault(key,默認值)
刪除:del,pop(),clear()
更改:字典[key]=值
查:字典[key],字典.get(key,默認值),遍歷

元祖(tuple):();不可變,有序;元素任意
查:和列表一樣
不能增刪改。

集合(set):{};可變,無序;元素唯一不可變
增加:add(),update()
刪除:remove()
查:遍歷
不能改
集合的數(shù)學運算:包含(>=,<=),并集(|),交集(&),差集(-),補集(^)

2.深拷貝和淺拷貝

拷貝:將變量中的值復制一份,產(chǎn)生新的數(shù)據(jù),然后將新的數(shù)據(jù)的地址返回。

a=[1,2,3,4]
b=[2, 3]
list1=[a,b]
list2=list1.copy()  #淺拷貝
list1[1][1]=50
print(list2)
import copy
list2=copy.deepcopy(list1)  #深拷貝
list1[1][0]=100
print(list1)
print(list2)
# [[1, 2, 3, 4], [2, 50]]
# [[1, 2, 3, 4], [100, 50]]
# [[1, 2, 3, 4], [2, 50]]

import copy導入copy庫
copy.copy(對象):淺拷貝,直接拷貝地址(切片,copy()都是淺拷貝)
copy.deepcopy(對象):深拷貝,將地址對應的值拷貝,產(chǎn)生新的地址

3.字典和列表的應用

列表和字典的元素可以是任何類型的數(shù)據(jù)
列表中有字典

persons=[
    {"name":"張三","age":"30","sex":"男"}
    {"name":"玩五","age":"90","sex":"男"}
]

練習 輸出年齡最大的學生

persons = [
    {"name": "張三", "age": 30, "sex": "男"},
    {"name": "玩五", "age": 60, "sex": "男"},
    {"name": "小五", "age": 60, "sex": "男"}
]
max_age = 0
for a in persons:
    if max_age < a["age"]:
        max_age = a["age"]
for b in persons:
    if b["age"] == max_age:
        # 輸出最大年齡的人的信息
        print(b)

練習:輸入一個學生

my_class = {
    "class_name": "python1807",
    "location": "18_6",
    "all_student": [
        {"name": "小花", "age": "89", "school": "川大"},
        {"name": "小2花", "age": "9", "school": "北大"},
        {"name": "小3花", "age": "8", "school": "電大"},
        {"name": "小4花", "age": "55", "school": "郵大"}
    ]
}
name = input("姓名:")
age = input("年齡:")
school = input("學校:")
my_class["all_student"].append({"name": name, "age": age, "school": school}

練習:輸出年齡小于20的學生

my_class = {
    "class_name": "python1807",
    "location": "18_6",
    "all_student": [
        {"name": "小花", "age": "89", "school": "川大"},
        {"name": "小2花", "age": "9", "school": "北大"},
        {"name": "小3花", "age": "8", "school": "電大"},
        {"name": "小4花", "age": "55", "school": "郵大"}
    ]
}
for a in my_class["all_student"][:]:
    if a["age"]<=20:
        my_class["all_student"].remove(a)
print(my_class["all_student"])

4.函數(shù)

1.函數(shù)

為什么要用函數(shù):1.許多代碼會重復多變2,功能改變時要修改多處代碼
函數(shù):對實現(xiàn)某一特一功能的代碼進行封裝
函數(shù)分類:自定義函數(shù)(程序員自己聲明實現(xiàn)其功能)和內(nèi)置函數(shù)(系統(tǒng)已經(jīng)聲明實現(xiàn)完成)
聲明函數(shù)

def 函數(shù)名(參數(shù)列表):
    函數(shù)體

說明
a.def-->關鍵字
b.函數(shù)名-->標識符 。遵守PEP8命名規(guī)范(所有字母小寫,多個單詞之間使用下劃線隔開,見名知意
c.()--->固定格式
d.參數(shù)列表——->形參,參數(shù)名1,參數(shù)名2…………(多個或者沒有)用來從函數(shù)外部給函數(shù)里面?zhèn)髦涤玫?br> e.:--->固定格式
f.函數(shù)體---->實現(xiàn)函數(shù)功能的代碼段。

2.聲明函數(shù)的步驟

a.確定函數(shù)的功能
b.根據(jù)功能確定函數(shù)名
c.確定參數(shù):參數(shù)有幾個(實現(xiàn)函數(shù)的功能需不需要從外面?zhèn)髦担枰獋鲙讉€值)
d.實現(xiàn)函數(shù)的功能
e.確定返回值

3.函數(shù)的調(diào)用

聲明函數(shù)時不會執(zhí)行函數(shù)體,只有在調(diào)用時才會執(zhí)行
語法 :函數(shù)名(實參列表)
調(diào)用函數(shù)
a.回到函數(shù)聲明的位置
b.用實參給形參賦值
c.執(zhí)行函數(shù)體
d.返回返回值
e.回到函數(shù)調(diào)用的位置,接著執(zhí)行后面的代碼

4.函數(shù)的參數(shù)

位置參數(shù):按照實參的順序一一給形參賦值
關鍵字參數(shù):形參1=值1,形參2=值2

def fun1(a,b):
    print(a,b)
fun1(a=10,b=20)

默認參數(shù):函數(shù)聲明的時候可以給參數(shù)設置默認值.有默認值的參數(shù)必須放在參數(shù)列表的最后

def fun1(b,c,a=20):
    print(a,b,c)
fun1(1,2)
fun1(1,2,3)
#20 1 2
#3 1 2
fun1(b=10,c=90)
fun1(10,c=90)

不確定參數(shù)個數(shù):在形參的前面加*,將這個形參變成一個元祖,用來接收多個參數(shù),如果函數(shù)有多個參數(shù),那么不定長參數(shù)要放在最后

def fun1(name,age,*scores):
    print(name,scores,age)
fun1("jk",1,2,3,89)

函數(shù)的返回值:函數(shù)的返回值就是函數(shù)調(diào)用表達式的值,就是執(zhí)行遇到return后,后面表達式的值
python中所有函數(shù)都有返回值,默認None。
函數(shù)調(diào)用表達式-->調(diào)用函數(shù)的語句(函數(shù)名(實參))
return-->關鍵字,只能寫在函數(shù)體中,用來返回返回值和結(jié)束函數(shù)
如果實現(xiàn)函數(shù)的功能會產(chǎn)生數(shù)據(jù),就返回新的數(shù)據(jù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內(nèi)容