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()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446391.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

求兩個集合的交集

letcode原題 排序雙指針 如果兩個數組是有序的&#xff0c;則可以使用雙指針的方法得到兩個數組的交集。首先對兩個數組進行排序&#xff0c;然后使用兩個指針遍歷兩個數組。初始時&#xff0c;兩個指針分別指向兩個數組的頭部。每次比較兩個指針指向的兩個數組中的數字&#…

Python學習7 集合Set

區別 集合的基本使用 如果是空集合&#xff0c;使用set {}是字典 pop:無序&#xff0c;隨機刪除一個元素 add添加一個元素 remove移除指定元素 update合并&#xff0c;合并在原集合上 union合并到一個新的集合上 clear清空 總結&#xff1a; 集合運算 補集&#xff1a; f…

cad怎么快速算面積_用cad算面積的快捷鍵方法步驟詳細,大朗CAD培訓班

在繪圖的過程中經常需要查詢和計算圖形的面積&#xff0c;網上有不少人問這方面的問題。都市領航教育將計算面積的方法和相關命令整理一下&#xff0c;希望對初學者有幫助。 查詢圖形的面積 我們利用邊界或編輯多段線命令生成了多段線和面域&#xff0c;不需要再使用查詢面積命…

給定沒有重復數字的序列,將其全排列

leetcode題目 void backtrack(vector<vector<int>>& res, vector<int>& output, int first, int len){if (firstlen){res.push_back(output);}for (int i first; i < len; i) {std::swap(output[first],output[i]);backtrack(res,output,first1,…

Java web后端4 會話 Cookie Session

會話 會話&#xff1a;指的是一個客戶端&#xff08;瀏覽器&#xff09;與Web服務器之間連續發生的一系列請求和響應的過程。 客戶端和服務器的請求和響應的過程&#xff08;對話雙方只要有一方發生變化&#xff0c;都屬于不同的會話&#xff09; 超時間隔【距離上一次請求的…

將安全信息應用到以下對象時發生錯誤 拒絕訪問_手機資訊:拒絕「京東金融」事件再次發生|如何避免iPhone 應用私自獲取照片...

如今使用IT數碼設備的小伙伴們是越來越多了&#xff0c;那么IT數碼設備當中是有很多知識的&#xff0c;這些知識很多小伙伴一般都是不知道的&#xff0c;就好比最近就有很多小伙伴們想要知道拒絕「京東金融」事件再次發生|如何避免iPhone 應用私自獲取照片&#xff0c;那么既然…

走臺階一共有多少種走法

可以走1臺階 2臺階 3臺階 long long MoveStairs(int total){if (total < 4) {return total 3 ? 4 : total;}int a 1, b 2, c 4;for (int i 4; i < total; i) {int temp (a b) % 1000000007 c;a b;b c;c temp % 1000000007;}return c; }

C/C++藍橋杯1 備賽準備

藍橋杯信息 算法基礎學習 1.學習C基礎語法 2. 3.做藍橋杯的真題 賽題&#xff1a;情況 賽題&#xff1a;國賽 賽題&#xff1a;暴力數學練習 暴力的題目類型

手機qq表白代碼大全可復制_街機游戲大全~手機版

街機游戲大全~手機版安卓&#xff1a;街機游戲大全~手機版1、街機游戲2、經典游戲游戲介紹安卓手機街機游戲1500合集&#xff0c;街機模擬器街機游戲可以說是一代80、90后的童年回憶&#xff0c;此合集收錄1500多款街機經典游戲&#xff0c;僅限安卓系統&#xff0c;這么多游戲…

C++面試 語言基礎

指針和引用之間的區別 指針是一個新的變量&#xff0c;指向一個變量的地址。可以通過這個地址來修改另一個變量&#xff1b;引用是變量的別名&#xff0c;對引用的操作就是對變量本身的操作。int a 996; int *p &a;//p是指針&#xff0c;&在此是求地址運算 int &…

中科大 計算機網絡13 FTP文件傳輸協議

FTP FTP&#xff1a;文件傳輸協議 早期分享文件采用FTP方式 客戶端&#xff1a;下載文件 服務器&#xff1a;上傳文件 FTP:控制連接 先建立控制連接【調用一系列Socket API】&#xff0c;服務器守候在21端口;進行身份認證【用戶名和口令&#xff0c;明文傳輸】&#xff1b;…

ulead gif animator_搞笑GIF趣圖:這風看來很大啊,今天回不來家了7

原標題&#xff1a;搞笑GIF趣圖&#xff1a;這風看來很大啊&#xff0c;今天回不來家了7每天更新搞笑GIF趣圖&#xff0c;歡迎關注。這風看來很大啊&#xff0c;今天回不來家了&#xff0c;哈哈狗生最痛苦的事一 灘 貓過個生日 又少了個朋友找到單身的理由了這咋還往回炸爆笑GI…

圖像放大 問題 即 二維數組放大

參考鏈接 參考鏈接 #include <iostream> #include <vector>int N0,K0;int main(){std::cin>>N>>K;std::vector<std::vector<int>>input(N,std::vector<int>(N, 0)); // std::cout << N << " " << K…

pictureselector 圖片路徑_AI圖片無損放大軟件

?不知道大家有沒有使用過下面的AI智能圖片放大網站&#xff0c;他的圖片放大效果整體尚可&#xff0c;但是在高倍放大需要收費&#xff0c;且對圖片尺寸和文件大小有一定的限制&#xff0c;今天給大家推薦一款Topaz Labs公司開發的圖片無損放大軟件(免費使用的哦)。軟件介紹這…

中科大 計算機網絡14 EMail SMTP簡單郵件傳輸協議 POP3郵件傳輸協議 IMAP消息訪問協議 HTTP超文本傳輸協議

EMail&#xff1a;電子郵件 協議包括發送和拉取的協議 發送的協議&#xff1a;SMTP簡單郵件傳輸協議 拉取的協議&#xff1a;POP3郵件傳輸協議,IMAP消息訪問協議,HTTP超文本傳輸協議 HTTP超文本傳輸協議&#xff1a; 可以上載POST和下載GET文件; 用戶代理&#xff1a;撰寫發…

人工智能工程師需具備的技能_2020年軟件測試工程師需要具備的技能--需要學什么--面試題有哪些(靈魂拷問)...

一、2020年軟件測試行業的現狀2020年開年&#xff0c;一不小心&#xff0c;【新冠】黑天鵝從頭上飄過&#xff0c;持續影響全國乃至全球的經濟&#xff0c;軟件行業公司也迎來了不少的沖擊&#xff0c;那么一直打算入行軟件測試行業&#xff0c;或者已經在軟件測試行業耕耘多年…

C++ 標準庫 書籍學習記錄筆記 第5章

5.3 迭代器 前置式遞增比后置式遞增效率更高&#xff0c;因為后者需要一個額外的臨時對象&#xff0c;因為他需要存儲一個迭代器原本的位置并將其進行返還&#xff0c;因此最好使用pos&#xff0c;而不是pos&#xff1b; 5.3.1 關聯式容器的運用實例 修改map默認的遞增的方式…

中科大 計算機網絡15 DNS域名解析系統

DNS的必要性 DNS域名解析系統&#xff1a;不是直接給人使用的&#xff0c;而是給其他應用使用的 域名到IP地址的轉換【使用&#xff1a;web應用&#xff0c;FTP應用。。。】 在應用層跑的基礎設施&#xff0c;為其他應用而使用 網絡層的工作的設備使用IP地址&#xff0c;用來…

面試題目匯總

1&#xff0c;for循環的時間復雜度 兩層for循環 第二層中 的循環變量繼承與上層變量時間復雜度是O(n^2)for循環時間復雜度算法理解_bingkxin的專欄-CSDN博客_for循環時間復雜度 for(int i0;i<N;i) {for(int ji;j<N;j){//此處運行次數:NN-1N-2...1123...NN(N1)/2} } for(…

C++基礎1 數據類型 常量

使用Dev CPP作為編程環境、 注意dev cpp5.4.0沒有格式化代碼功能&#xff0c;不要再設置了 設置的常用快捷鍵 CtrE:多行注釋 CtrlShiftE:取消多行注釋 CtrlZ&#xff1a;撤銷 CtrlShiftZ:取消撤銷 CtrlL:折疊函數 CtrlShifL:取消折疊函數 設置Dev Cpp Dev C初始化&#xf…