Python學(xué)習(xí)-Day12

1.文件修改的兩種方式

# 一:函數(shù)的參數(shù)分為兩大類

# 1.形參:在定義函數(shù)時,括號內(nèi)定義的變量名哺徊,稱之為形式參數(shù),簡稱形參==》變量名

# def func(x,y):

#? ? x = 1

#? ? y = 2

#? ? print(x)

#? ? print(y)

# 2.實(shí)參:在調(diào)用函數(shù)時乌妒,括號內(nèi)傳入的值稱之為實(shí)際參數(shù)典徘,簡稱實(shí)參===》變量值

# func(1,2)

# 二:在python中參數(shù)的種類

# 1.位置參數(shù):

# (1)位置形參:在函數(shù)定義階段從左到右的順序依次定義形參(變量名),稱之為位置形參

# 特點(diǎn):必須被傳值

# def func(x,y):

#? ? print(x,y)

# func(1,2)

# func(1) # 少一個不行

# func(1,2,3) # 多一個也不行

# (2)位置實(shí)參:在函數(shù)定義階段從左到右的順序依次定義實(shí)參(傳入的變量值)预皇,稱之為位置實(shí)參

# 特點(diǎn):按照位置傳值侈玄,一一對應(yīng)

# func(1,2,3,4,5,6)

# 2.關(guān)鍵字實(shí)參:在函數(shù)調(diào)用階段按照key=value的形式為指定的形參傳值,稱之為關(guān)鍵字實(shí)參

# 特點(diǎn):在傳值時可以完全打亂順序吟温,但是仍然能指定形參傳值

# def func(name, age, ):

#? ? print(name, age, )

# func("egon",18)

# func(18,"egon")

# func(age=18,name="egon")? # 寫出關(guān)鍵字就可以隨意賦值

# 注意:可以混用位置實(shí)參和關(guān)鍵字實(shí)參

# 1.但是位置實(shí)參必須放在關(guān)鍵字實(shí)參的前面

# 2.不能為同一個形參重復(fù)賦值

# def func(name, age, salary):

#? ? print(name)

#? ? print(age)

#? ? print(salary)

# func('egon',salary=3.1,age=18)

# func('egon',salary=3.1,18) # 錯誤

# func('egon', 18, salary=3.1)? # 錯誤

# func('egon',18,age=19,salary=3.3)? # 錯誤

# 3.默認(rèn)形參:在函數(shù)定義階段就已經(jīng)為某個形參賦值序仙,該形參稱之為有默認(rèn)值的形參,簡稱默認(rèn)形參

# 特點(diǎn):定義階段就已經(jīng)被賦值意味著在函數(shù)調(diào)用階段可以不用為其賦值

# def func(x,y=2):

#? ? print(x,y)

# func(1)

# func(1,33333)

# 注意

# 1:默認(rèn)形參放在位置形參的后面

# def func(y=2,x)? # 錯誤

#? ? pass

# 2 默認(rèn)形參的值通常是不可變類型

# def func(name,hobby,hobbies=[]):

#? ? hobbies.append(hobby)

#? ? print("%s 的愛好是:%s" %(name,hobbies))

#

# func("egon",'play')

# func('lili','music')

# func("jack",'read')

'''

egon 的愛好是:['play']

lili 的愛好是:['play', 'music']

jack 的愛好是:['play', 'music', 'read']? 在同一個地址空間連續(xù)添加了'''

# def func(name,hobby,hobbies=None):

#? ? if hobbies is None:

#? ? ? ? hobbies=[]

#? ? hobbies.append(hobby)

#? ? print("%s 的愛好是:%s" %(name,hobbies))

#

# func("egon",'play')

# func('lili','music')

# func("jack",'read')

'''

egon 的愛好是:['play']

lili 的愛好是:['music']

jack 的愛好是:['read']? 先設(shè)置一個None 每次調(diào)用函數(shù)都生成一個新的列表空間'''

# 3 默認(rèn)形參的值只在函數(shù)定義階段被賦值一次鲁豪,函數(shù)定義之后的改變對默認(rèn)形參沒有影響

# m=333

def func(x,y=333):# y=333

? ? print(x,y)

y=44444

func(1)# 如果不在實(shí)參中直接修改潘悼,默認(rèn)的形參是不會改變的

def register(name,age,gender='male'):

print(name)

print(age)

print(gender)

register('egon',18,)

register('jack',20,)

register('tom',21,)

register('鄭秀文',18,'female')# 針對不同類型的需求來定義函數(shù)可以減少代碼量

2.函數(shù)

'''

1.什么是函數(shù)

? ? 具備某一功能的工具===》函數(shù)

工具的使用:

? ? ? ? 事先準(zhǔn)備好工具=====》函數(shù)的定義

? ? ? ? 遇到需要的運(yùn)用場景就拿來用=====》函數(shù)的調(diào)用2.為什么要有函數(shù)? 1.程序的組織結(jié)構(gòu)不清晰律秃,可讀性差? 2.如果要用到重復(fù)的功能,只能拷貝功能的實(shí)現(xiàn)代碼===》代碼冗余? 3.可擴(kuò)展性差3.如何使用函數(shù)

函數(shù)的使用原則:先定義治唤,后調(diào)用

? ? 定義函數(shù)? ? ? ? def 函數(shù)名(參數(shù)1棒动,參數(shù)2,參數(shù)3宾添。船惨。。缕陕。掷漱。)’‘’

? ? ? ? 文檔注釋‘’‘

? ? ? ? 代碼? ? ? ? return 返回值

調(diào)用函數(shù):

? ? ? ? 函數(shù)名(值1,值2榄檬,值3卜范。。鹿榜。海雪。)'''

# 定義函數(shù):申請內(nèi)存空間把函數(shù)體代碼保存下來,然后把內(nèi)存地址綁定給函數(shù)名===》函數(shù)名 = 函數(shù)內(nèi)存地址

# def sayhi():

#? ? print('='*10)

#? ? print('hello')

#? ? print('='*10)

# print(sayhi) # 打印的是函數(shù)名的內(nèi)存地址

# 二:調(diào)用函數(shù):函數(shù)名()===》函數(shù)的內(nèi)存地址()舱殿,會觸發(fā)函數(shù)體代碼的運(yùn)行

x =10

print(x)

# sayhi()

# 二:定義函數(shù)的三種格式

# 2.1:無參函數(shù)

# def login():

#? ? inp_name=input("your name: ").strip()

#? ? inp_pwd=input("your pwd: ").strip()

#? ? if inp_name == "egon" and inp_pwd == "123":

#? ? ? ? print('login successful')

#? ? else:

#? ? ? ? print('login error')

#

# login()

# def sayhi():

#? ? print('='*100)

#? ? print('hello')

#? ? print('='*100)

#

# sayhi()

# 2.2:有參函數(shù)

def sayhi(s, n):

print(s * n)

print('hello')

print(s * n)

sayhi('&', 10)

def max(x, y):

if x > y:

print(x)

else:

print(y)

max(10, 20)

# 2.3:空函數(shù)

def func():

pass

# 三:函數(shù)的調(diào)用

# return:

# 函數(shù)內(nèi)可以有多個return奥裸,但只要執(zhí)行一次函數(shù)就立刻結(jié)束,并把return后的值當(dāng)作本次調(diào)用的結(jié)果返回

# 函數(shù)可以有三種形式的返回值

# 1.return 值:返回的就是值本身

# 2.return 值1沪袭,值2湾宙,值3...:返回一個元組

# 3.沒有return:默認(rèn)返回None

def func():

print(1)

return 123

res = func()

print(res)

# 四:函數(shù)調(diào)用的三種格式

# 4.1 語句形式:單純地調(diào)用一下函數(shù)就完了

# def sayhi(s,n):

#? ? # s = '-'

#? ? # n = 20

#? ? print(s*n)

#? ? print('hello')

#? ? print(s*n)

# sayhi('*',30)

# 4.2 表達(dá)式形式:

def max2(x, y):

if x > y:

return x

else:

return y

# res=max2(11,22) * 12

# print(res)

# 4.3 可以把函數(shù)的調(diào)用當(dāng)作值傳給另外一個函數(shù)

# print(max2(11,22))

# 總結(jié)

# 函數(shù)的使用一定要分兩個階段去看:

# 1.定義階段:只檢測語法,不執(zhí)行代碼

# 2.調(diào)用階段:執(zhí)行函數(shù)代碼體

# 如果發(fā)生語法錯誤冈绊,定義階段會立馬檢測出來

# def func():

#? ? print('hello'

# 如果是邏輯錯誤侠鳄,只能在調(diào)用階段檢測到

# def func():

#? ? xxx

# func()

# 示范1:

def bar():

print('from bar')

def foo():

print('from foo')

bar()

foo()

# 示范2:

def foo():

print('from foo')

def bar():

print('from bar')# 雖然這個函數(shù)是后定義的但是代碼還是在定義階段并不會發(fā)生錯誤

foo()# 到了調(diào)用階段找到對應(yīng)的代碼直接調(diào)用就行了

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

# 一:函數(shù)的參數(shù)分為兩大類

# 1.形參:在定義函數(shù)時酗捌,括號內(nèi)定義的變量名截型,稱之為形式參數(shù),簡稱形參==》變量名

# def func(x,y):

#? ? x = 1

#? ? y = 2

#? ? print(x)

#? ? print(y)

# 2.實(shí)參:在調(diào)用函數(shù)時哼鬓,括號內(nèi)傳入的值稱之為實(shí)際參數(shù)毅该,簡稱實(shí)參===》變量值

# func(1,2)

# 二:在python中參數(shù)的種類

# 1.位置參數(shù):

# (1)位置形參:在函數(shù)定義階段從左到右的順序依次定義形參(變量名)博秫,稱之為位置形參

# 特點(diǎn):必須被傳值

# def func(x,y):

#? ? print(x,y)

# func(1,2)

# func(1) # 少一個不行

# func(1,2,3) # 多一個也不行

# (2)位置實(shí)參:在函數(shù)定義階段從左到右的順序依次定義實(shí)參(傳入的變量值),稱之為位置實(shí)參

# 特點(diǎn):按照位置傳值眶掌,一一對應(yīng)

# func(1,2,3,4,5,6)

# 2.關(guān)鍵字實(shí)參:在函數(shù)調(diào)用階段按照key=value的形式為指定的形參傳值挡育,稱之為關(guān)鍵字實(shí)參

# 特點(diǎn):在傳值時可以完全打亂順序,但是仍然能指定形參傳值

# def func(name, age, ):

#? ? print(name, age, )

# func("egon",18)

# func(18,"egon")

# func(age=18,name="egon")? # 寫出關(guān)鍵字就可以隨意賦值

# 注意:可以混用位置實(shí)參和關(guān)鍵字實(shí)參

# 1.但是位置實(shí)參必須放在關(guān)鍵字實(shí)參的前面

# 2.不能為同一個形參重復(fù)賦值

# def func(name, age, salary):

#? ? print(name)

#? ? print(age)

#? ? print(salary)

# func('egon',salary=3.1,age=18)

# func('egon',salary=3.1,18) # 錯誤

# func('egon', 18, salary=3.1)? # 錯誤

# func('egon',18,age=19,salary=3.3)? # 錯誤

# 3.默認(rèn)形參:在函數(shù)定義階段就已經(jīng)為某個形參賦值朴爬,該形參稱之為有默認(rèn)值的形參即寒,簡稱默認(rèn)形參

# 特點(diǎn):定義階段就已經(jīng)被賦值意味著在函數(shù)調(diào)用階段可以不用為其賦值

# def func(x,y=2):

#? ? print(x,y)

# func(1)

# func(1,33333)

# 注意

# 1:默認(rèn)形參放在位置形參的后面

# def func(y=2,x)? # 錯誤

#? ? pass

# 2 默認(rèn)形參的值通常是不可變類型

# def func(name,hobby,hobbies=[]):

#? ? hobbies.append(hobby)

#? ? print("%s 的愛好是:%s" %(name,hobbies))

#

# func("egon",'play')

# func('lili','music')

# func("jack",'read')

'''

egon 的愛好是:['play']

lili 的愛好是:['play', 'music']

jack 的愛好是:['play', 'music', 'read']? 在同一個地址空間連續(xù)添加了'''

# def func(name,hobby,hobbies=None):

#? ? if hobbies is None:

#? ? ? ? hobbies=[]

#? ? hobbies.append(hobby)

#? ? print("%s 的愛好是:%s" %(name,hobbies))

#

# func("egon",'play')

# func('lili','music')

# func("jack",'read')

'''

egon 的愛好是:['play']

lili 的愛好是:['music']

jack 的愛好是:['read']? 先設(shè)置一個None 每次調(diào)用函數(shù)都生成一個新的列表空間'''

# 3 默認(rèn)形參的值只在函數(shù)定義階段被賦值一次,函數(shù)定義之后的改變對默認(rèn)形參沒有影響

# m=333

def func(x,y=333):# y=333

? ? print(x,y)

y=44444

func(1)# 如果不在實(shí)參中直接修改,默認(rèn)的形參是不會改變的

def register(name,age,gender='male'):

print(name)

print(age)

print(gender)

register('egon',18,)

register('jack',20,)

register('tom',21,)

register('鄭秀文',18,'female')# 針對不同類型的需求來定義函數(shù)可以減少代碼量

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蒿叠,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蚣常,更是在濱河造成了極大的恐慌市咽,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抵蚊,死亡現(xiàn)場離奇詭異施绎,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)贞绳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門谷醉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人冈闭,你說我怎么就攤上這事俱尼。” “怎么了萎攒?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵遇八,是天一觀的道長。 經(jīng)常有香客問我耍休,道長刃永,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任羊精,我火速辦了婚禮斯够,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘喧锦。我一直安慰自己读规,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布燃少。 她就那樣靜靜地躺著掖桦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪供汛。 梳的紋絲不亂的頭發(fā)上枪汪,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機(jī)與錄音怔昨,去河邊找鬼雀久。 笑死,一個胖子當(dāng)著我的面吹牛趁舀,可吹牛的內(nèi)容都是我干的赖捌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼越庇!你這毒婦竟也來了罩锐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卤唉,失蹤者是張志新(化名)和其女友劉穎涩惑,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體桑驱,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竭恬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了熬的。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片痊硕。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖押框,靈堂內(nèi)的尸體忽然破棺而出岔绸,到底是詐尸還是另有隱情,我是刑警寧澤橡伞,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布亭螟,位于F島的核電站,受9級特大地震影響骑歹,放射性物質(zhì)發(fā)生泄漏预烙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一道媚、第九天 我趴在偏房一處隱蔽的房頂上張望扁掸。 院中可真熱鬧,春花似錦最域、人聲如沸谴分。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牺蹄。三九已至,卻和暖如春薄翅,著一層夾襖步出監(jiān)牢的瞬間沙兰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工翘魄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鼎天,地道東北人。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓暑竟,卻偏偏與公主長得像斋射,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354