Python学习8 函数 匿名函数 内置函数
轉(zhuǎn)換相關(guān)的方法-eval
轉(zhuǎn)換相關(guān)的方法-json
函數(shù)基本語法大綱
函數(shù)概念
示例:
題目:
函數(shù)的參數(shù)
易錯(cuò)題:
1)
2)
a=1:默認(rèn)參數(shù),位置參數(shù)
*args:可變位置參數(shù)
**args:可變關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)(**args)在位置參數(shù)(*args,a=1,a)的后面
C是對的,C中兩個(gè)參數(shù)都是位置參數(shù),前后都可以
函數(shù)的返回值
如果一個(gè)函數(shù)沒有返回值,它的返回就是 None。
沒有寫return,意味著沒有返回值
沒有返回類型,并且可以返回多個(gè)多個(gè)值:
示例為返回a/b的商和余數(shù)
函數(shù)調(diào)用函數(shù)
遞歸函數(shù)
練習(xí)1-求 [n, m) 之間所有整數(shù)之和
#1 #定義函數(shù)求 [n, m) 之間所有整數(shù)之和。 a= int(input("請輸入第一個(gè)數(shù)")) b=int(input("請輸入第一個(gè)數(shù)")) def add(n, m):count = 0for i in range(n,m - 1):count += ireturn count print(add(a,b))練習(xí)2-求 n 的階乘
#2 #定義函數(shù)求 n 的階乘。n=int(input("請輸入一個(gè)數(shù)")) def factor(n):count=1for i in range(1,n+1,1):count*=ireturn count print(factor(n))練習(xí)3-求階乘的和
#3 #計(jì)算階乘的和。如 m = 6 ? 1!+2!+3!+4!+5!+6!。 n=int(input("請輸入一個(gè)數(shù)")) def factor(n):count=1for i in range(1,n+1,1):count*=ireturn countdef sum1(n):sum1 = 0for i in range(1,n+1,1):sum1 += factor(i)return sum1print(sum1(n))局部變量和全局變量
代碼示例:
查看局部和全局變量:
在python中只有函數(shù)可以分割作用域:
只有函數(shù)里面定義的才是局部變量,其他都是全局變量
函數(shù)注釋
函數(shù)注意事項(xiàng)
匿名函數(shù)
示例:
內(nèi)置函數(shù)
內(nèi)置函數(shù) 和 內(nèi)置類 用到了 匿名函數(shù)
sorted(Iterable, key= None, reverse = False)
Iterable:排序規(guī)則(排序函數(shù)),在sorted內(nèi)部會將可迭代對象中的每個(gè)元素傳遞給這個(gè)函數(shù)的參數(shù).根據(jù)函數(shù)運(yùn)算的結(jié)果進(jìn)行排序
reverse:是否是倒序, True:倒序 False:正序 key:就可以使用匿名函數(shù)
示例:
現(xiàn)在有一個(gè)字典{‘小紅’:20,‘小明’:18,‘小魚’:19,‘小雪’:22,‘小東’:17},現(xiàn)在按照年齡排序
上面的案例中 key 就使用了匿名函數(shù)進(jìn)行排序條件的制定,即 lambda 的返回值是就是排序條件,默認(rèn)是升序
示例2;
語法: filter(function. Iterable)
function:用來篩選的函數(shù),在filter中會自動(dòng)的把iterable中的元素傳遞給function.然后根據(jù)function返回的Ture或者False來判斷你是否保留此項(xiàng)數(shù)據(jù)
iterable:可迭代對象
補(bǔ)充:
isinstance(object, classinfo) 判斷實(shí)例是否是這個(gè)類型
object是變量
classinfo 是類型(tuple,dict,int,float)
示例:
max()和min():
綜合–密碼強(qiáng)度
# 可根據(jù)自己的思路進(jìn)行擴(kuò)展,完善項(xiàng)目的功能: # 判斷密碼強(qiáng)弱:①密碼長度至少8位;②密碼含有數(shù)字;③密碼含有字母。 passw=input("the password:")num=ord('0') #是否包含數(shù)字的函數(shù) def IsWithNumber():#含有數(shù)字for i in range(len(passw)):if '0'<=chr(num+i)<='9':if passw.find(chr(num + i), 0, len(passw))!=-1:return Trueelse:return False #是否包含字母的函數(shù) alpha=ord('a') Alpha=ord('A') def IsWithAlpha():# 含有字母for i in range(len(passw)):if ('a' <= chr(alpha + i) <= 'z') or ('A' <= chr(alpha + i) <= 'Z'):if passw.find(chr(alpha + i), 0, len(passw)) != -1 or passw.find(chr(Alpha + i), 0, len(passw)) != -1 :return Trueelse:return False#判斷密碼強(qiáng)弱程度的函數(shù) def ISStrength():if (len(passw)>=8) and IsWithNumber() and IsWithAlpha():return 1elif (len(passw)>=8) and(IsWithNumber() or IsWithAlpha()):return 2elif (len(passw)>=8) or IsWithNumber() or IsWithAlpha():return 3elif (len(passw)<8) or IsWithNumber() or IsWithAlpha():return 4#將相關(guān)判斷方法封裝成一個(gè)函數(shù),如判斷密碼強(qiáng)弱程度的方法、判斷是否包含數(shù)字的方法、判斷是否包含字母的方法。 def Set():count = 3while count > 0:IsWithNumber()IsWithAlpha()ISStrength()if ISStrength() == 1 and IsWithNumber() and IsWithNumber():print('the password is quality')qurey = input('Are you sure ?[Y/N] :')if qurey == 'Y':global passwprint('the setting is ok')print('your password:' + passw)return Trueelif qurey == 'N':passw = input('input the new password:')count -= 1else:print('the password is not quality')passw = input('input the new password:')count -= 1print('end setting') Set() 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的Python学习8 函数 匿名函数 内置函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学建模3 论文排版注意点
- 下一篇: Python学习17 Turtle库绘图