詳解python while 函數(shù)及while和for的區(qū)別
1.while循環(huán)(只有在條件表達(dá)式成立的時(shí)候才會(huì)進(jìn)入while循環(huán))
while 條件表達(dá)式:
pass
while 條件表達(dá)式:
pass
else:
pass
不知道循環(huán)次數(shù),但確定循環(huán)條件的時(shí)候用while
# 如果說年利率是6%,存入1000到第幾年本錢翻倍 money = 10000 year = 0 while money < 20000: money = money*(1+0.06) year += 1 print('第 {0} 年本錢翻倍了,總共有 {1} 元'.format(year,money))
1.函數(shù) :一個(gè)函數(shù)實(shí)現(xiàn)一個(gè)功能
規(guī)則:def 函數(shù)名([形參]):
pass
命名規(guī)則:注意不要使用大駝峰,默認(rèn)小駝峰,大駝峰命名只用于類的命名
1.函數(shù)的參數(shù)與返回值 返回值:函數(shù)執(zhí)行的結(jié)果1.函數(shù)參數(shù)的定義與使用
def hello(name): print("你好嗎,{}".format(name)) return "函數(shù)中止執(zhí)行,后面不管有多少句代碼都不會(huì)被執(zhí)行" print("這句話不會(huì)被執(zhí)行") person = 'Tom' hello(person) rst = hello("John") #函數(shù)也可以這么調(diào)用,如果有返回值會(huì)將返回值賦值給變量
函數(shù)的返回值
表示函數(shù)執(zhí)行的結(jié)果,如果函數(shù)中沒有return系統(tǒng)自動(dòng)返回None,函數(shù)一旦執(zhí)行return語句,則無條件返回,意味著return下面的語句將不再執(zhí)行,只要遇到return,函數(shù)自動(dòng)中止執(zhí)行。
參數(shù)詳解:普通參數(shù) 默認(rèn)參數(shù) 收集參數(shù) 關(guān)鍵字參數(shù)
- 普通參數(shù):定義的時(shí)候直接定義變量名,平時(shí)用的最多的參數(shù)
def 函數(shù)名(參數(shù)1, 參數(shù)2, ....):
調(diào)用: 函數(shù)名(參數(shù)1, 參數(shù)2, ...)
- 默認(rèn)參數(shù): 函數(shù)中默認(rèn)給定義好的參數(shù),參數(shù)有默認(rèn)值
def 函數(shù)名(value1, canshu = value2): 其中的canshu = value2 就是默認(rèn)參數(shù),典型的例子就是 print(value1, value2, ...,sep=" ", end= '\n',..)
調(diào)用的時(shí)候,如果沒有特殊要求 ,默認(rèn)參數(shù)可以不用進(jìn)行傳值
def hello(name, gender = 'boy'): if gender = 'boy': print("welcome,{0},you are a good {1}".format(name, gender)) else: print("welcome,{0},you are a good {1}".format(name, gender)) hello('Tom') hello('Siri', 'girl') - 關(guān)鍵字參數(shù):注意與默認(rèn)參數(shù)區(qū)分,好處就是實(shí)參與形參位置可以不用一一對(duì)應(yīng) def fun(p1=v1, p2=v2, ...): pass fun(p1=value1, p2=value2, ....) def student(name=None, age=None, gender=None): print("我是一個(gè)學(xué)生,我的名字是 {0}, 我今年 {1} 歲, 我是個(gè) {3}生") name = 'Tom' age = 12 gender = '男' student(age=age, gender=gender, name=name) - 收集參數(shù): 把沒有位置,不能和定義時(shí)的參數(shù)位置相對(duì)應(yīng)的參數(shù),放入一個(gè)特定的數(shù)據(jù)結(jié)構(gòu)中 def fun(*args): pass 調(diào)用:fun(p1, p2, p3, ...) 參數(shù)名可以不用 args,但推薦這么用,約定俗成. 注意前面的 " * " 不能省略, 調(diào)用的時(shí)候可以不傳入?yún)?shù)值 收集參數(shù)傳參的時(shí)候不能直接傳入關(guān)鍵字參數(shù),例如 fun(name='Tom'Z) def stu( *args ): print("大家好, 簡單自我介紹一下:") for i in args: print(i, end='=>') stu("小明", 18, "山東省") stu('小紅') - 收集參數(shù)之關(guān)鍵字收集參數(shù) 把關(guān)鍵字參數(shù)以字典的形式放入收集參數(shù), 訪問kwargs需要用訪問字典的方式 def fun( **kwargs ): pass #調(diào)用 fun(p1=v1, p2=v2, ....)
2.各種類型參數(shù)混合使用的順序問題:
使用的規(guī)則一般是:普通參數(shù) 關(guān)鍵字參數(shù)優(yōu)先
定義的時(shí)候一般找普通參數(shù) , 收集參數(shù)(args),關(guān)鍵字參數(shù), 收集參數(shù)(kwargs)
def stu(name, age, *args, hobby='沒有', **kwargs): print('大家好') print("我叫 {0}, 我今年 {1} 大了.".format(name, age)) if hobby == '沒有': print('我沒有愛好') else: print("我的愛好是{0}".format(hobby)) for i in args: print(i) for k, v in kwargs.items(): print(k, ' ------', v) name = 'tom' age = 19 stu(name, age, '王曉靜', '小紅', hobby='sing', addr='beijing', phone='123213') def stu(**kwargs): print(大家好,我先自我介紹一下) # 對(duì)于字典的訪問,Python2 與 Python3 有區(qū)別 for k,v in kwargs.items(): print(k,'--------', v) stu(name='wangxiaojjing', age=10, addr='北京') 收集參數(shù)的解包問題(unpack) - 把參數(shù)放入list或者dict中,直接把list/dict中的值放入收集參數(shù)中 def stu(*args): for i in args: print(i) l = list() l.append('aafd') # 在列表的最后插入值 l.append(1321) stu(l) # 打印的結(jié)果是['aafd', 1321] 不是理想中的結(jié)果 stu(*l) # 解包符號(hào) * 加上以后就是理想中的結(jié)果 對(duì)于dict類型的收集參數(shù)一樣可以解包,但是需要加兩個(gè) *, ## 返回值 函數(shù)和過程的區(qū)別就是: 有無返回值,如果函數(shù)中沒有顯式返回值,即return value 則默認(rèn)返回None 例如: def func1(): print('aaa') return 1 def func2(): print('a') f1 = func1() # 結(jié)果是 1 f2 = func2() # 結(jié)果是 None 建議所有的函數(shù)不管有沒有返回值在最后都加上一個(gè)return # 函數(shù)文檔 - 用來解釋函數(shù)的作用以及利用方式 - 文檔的寫法: 在函數(shù)內(nèi)部開始的第一行使用三引號(hào)括起來 一般具有特定格式 例如 def stu(name, age): '''這是 文檔 ''' print(name, age) return None - 查看文檔的方式: 使用help(函數(shù)名) 使用 函數(shù)名._doc_
下面看下Python中while和for的區(qū)別
在c、c++、Java、C#等語言中,while和for的用法是基本一致的,但是在Python中,這兩個(gè)循環(huán)還是存在一定的差別的
當(dāng)遍歷序列或數(shù)組時(shí), 只能用for,while用來遍歷會(huì)出現(xiàn)死循環(huán)
總結(jié)
以上所述是小編給大家介紹的python while 函數(shù)及while和for的區(qū)別,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
python 用pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能
這篇文章主要介紹了python 用pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12Python Django 命名空間模式的實(shí)現(xiàn)
這篇文章主要介紹了Python Django 命名空間模式的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用詳解
這篇文章主要介紹了Python實(shí)例方法、類方法、靜態(tài)方法的區(qū)別與作用,結(jié)合實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中實(shí)例方法、類方法、靜態(tài)方法的概念、原理、用法及相關(guān)操作技巧,需要的朋友可以參考下2019-03-03Python機(jī)器學(xué)習(xí)入門(三)之Python數(shù)據(jù)準(zhǔn)備
這篇文章主要介紹了Python機(jī)器學(xué)習(xí)入門知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Python根據(jù)字典的值查詢出對(duì)應(yīng)的鍵的方法
這篇文章主要介紹了Python根據(jù)字典的值查詢出對(duì)應(yīng)的鍵的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09react中useLayoutEffect 和useEffect區(qū)別
本文主要介紹了react中useLayoutEffect 和useEffect區(qū)別,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12