日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python学习8 函数 匿名函数 内置函数

發布時間:2023/12/13 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python学习8 函数 匿名函数 内置函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉換相關的方法-eval

轉換相關的方法-json




函數基本語法大綱

函數概念

示例:

題目:

函數的參數


def f(x,y=1,*z,**abc):print(x,y,z,abc,sep="\n")f(1,4,5,3,a=1,b=2,c=3) #1 # 4 # (5, 3) # {'a': 1, 'b': 2, 'c': 3}

易錯題:
1)

2)
a=1:默認參數,位置參數
*args:可變位置參數
**args:可變關鍵字參數

關鍵字參數(**args)在位置參數(*args,a=1,a)的后面
C是對的,C中兩個參數都是位置參數,前后都可以

def f(y=1,*z):pass def f(*z,y=1):pass

函數的返回值

如果一個函數沒有返回值,它的返回就是 None。
沒有寫return,意味著沒有返回值

沒有返回類型,并且可以返回多個多個值:
示例為返回a/b的商和余數

函數調用函數

遞歸函數

練習1-求 [n, m) 之間所有整數之和

#1 #定義函數求 [n, m) 之間所有整數之和。 a= int(input("請輸入第一個數")) b=int(input("請輸入第一個數")) def add(n, m):count = 0for i in range(n,m - 1):count += ireturn count print(add(a,b))

練習2-求 n 的階乘

#2 #定義函數求 n 的階乘。n=int(input("請輸入一個數")) def factor(n):count=1for i in range(1,n+1,1):count*=ireturn count print(factor(n))

練習3-求階乘的和

#3 #計算階乘的和。如 m = 6 ? 1!+2!+3!+4!+5!+6!。 n=int(input("請輸入一個數")) 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中只有函數可以分割作用域:
只有函數里面定義的才是局部變量,其他都是全局變量

函數注釋

函數注意事項

匿名函數





示例:

list1 = [{"a": 10, "b": 20}, {"a": 20, "b": 20}, {"a": 50, "b": 20}, {"a": 6, "b": 20}, {"a": 9, "b": 20}]# 那個列表中的a最大 max_value = max(list1, key=lambda x: x["a"]) print(max_value)

內置函數

內置函數 和 內置類 用到了 匿名函數

sorted(Iterable, key= None, reverse = False)
Iterable:排序規則(排序函數),在sorted內部會將可迭代對象中的每個元素傳遞給這個函數的參數.根據函數運算的結果進行排序
reverse:是否是倒序, True:倒序 False:正序 key:就可以使用匿名函數

示例:
現在有一個字典{‘小紅’:20,‘小明’:18,‘小魚’:19,‘小雪’:22,‘小東’:17},現在按照年齡排序

dict1 = {'小紅':20,'小明':18,'小魚':19,'小雪':22,'小東':17} order_dict = sorted(dict1.items(),key=lambda s:s[1]) print(dict(order_dict)) # order_dict 是一個列表[('小東', 17), ('小明', 18), ('小魚', 19), ('小紅', 20), ('小雪', 22)],所以需要轉成字典

上面的案例中 key 就使用了匿名函數進行排序條件的制定,即 lambda 的返回值是就是排序條件,默認是升序
示例2;

# 按照數量排序 goods = [('防脫發洗發水', 60, 3), ('格子襯衫', 156, 1), ('牛仔褲', 99, 7), ('運動鞋', 299, 2)] goods = sorted(goods, key=lambda g: g[2], reverse=True) # 設置成降序 print(goods)



語法: filter(function. Iterable)
function:用來篩選的函數,在filter中會自動的把iterable中的元素傳遞給function.然后根據function返回的Ture或者False來判斷你是否保留此項數據
iterable:可迭代對象


補充:

isinstance(object, classinfo) 判斷實例是否是這個類型
object是變量
classinfo 是類型(tuple,dict,int,float)




from functools import reducelist1 = [1, 2, 3, 4, 5, 6, 7] value = reduce(lambda x, y: x + y, list1) print(value) # 28 = 1+2+3+4+5+6+7





示例:
max()和min():

dict1 = {'小紅':20,'小明':18,'小魚':19,'小雪':22,'小東':17} result = max(dict1.items(),key=lambda s:s[1]) print(result)result = min(dict1.items(),key=lambda s:s[1]) print(result)

綜合–密碼強度

# 可根據自己的思路進行擴展,完善項目的功能: # 判斷密碼強弱:①密碼長度至少8位;②密碼含有數字;③密碼含有字母。 passw=input("the password:")num=ord('0') #是否包含數字的函數 def IsWithNumber():#含有數字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 #是否包含字母的函數 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#判斷密碼強弱程度的函數 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#將相關判斷方法封裝成一個函數,如判斷密碼強弱程度的方法、判斷是否包含數字的方法、判斷是否包含字母的方法。 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() 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Python学习8 函数 匿名函数 内置函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。