Python基礎(chǔ)教程 課件 崔鴻山 項(xiàng)目6、7 Python字典和時(shí)間日期、Python函數(shù)_第1頁
Python基礎(chǔ)教程 課件 崔鴻山 項(xiàng)目6、7 Python字典和時(shí)間日期、Python函數(shù)_第2頁
Python基礎(chǔ)教程 課件 崔鴻山 項(xiàng)目6、7 Python字典和時(shí)間日期、Python函數(shù)_第3頁
Python基礎(chǔ)教程 課件 崔鴻山 項(xiàng)目6、7 Python字典和時(shí)間日期、Python函數(shù)_第4頁
Python基礎(chǔ)教程 課件 崔鴻山 項(xiàng)目6、7 Python字典和時(shí)間日期、Python函數(shù)_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目六Python字典和時(shí)間日期任務(wù)6.1任務(wù)6.2CONTENTS目錄Python字典Python時(shí)間日期任務(wù)6.1Python字典1.直接賦值創(chuàng)建字典直接賦值創(chuàng)建字典的一般格式如下:6.1.1創(chuàng)建字典變量名={鍵1:值1,鍵2:值2,鍵3:值3,...,鍵n:值n}print("直接賦值創(chuàng)建字典")print("")#創(chuàng)建字典stu_info={′num′:′20230101′,′name′:′Limeng′,′sex′:′male′,′age′:′20′}#查看字典print(stu_info)【例6-1】創(chuàng)建一個(gè)學(xué)生信息字典,包括學(xué)生學(xué)號、姓名、性別和年齡4個(gè)元素。程序代碼如下:2.使用內(nèi)建函數(shù)dict()創(chuàng)建字典6.1.1創(chuàng)建字典print("使用內(nèi)建函數(shù)dict()創(chuàng)建字典\n")#直接賦值創(chuàng)建字典print("直接賦值創(chuàng)建字典")stu_info_1={′num′:′20230101′,′name′:′Limeng′,′sex′:′male′,′age′:′20′}print(stu_info_1)#通過其他方式創(chuàng)建字典print("\n通過其他方式創(chuàng)建字典")stu_info_2=dict(stu_info_1)print(stu_info_2)【例6-2】使用內(nèi)建函數(shù)dict()創(chuàng)建字典。程序代碼如下:6.1.1創(chuàng)建字典#通過“鍵-值”對的序列創(chuàng)建字典print("\n通過“鍵-值”對的序列創(chuàng)建字典")stu_info_3=dict([(′num′,′20230101′),(′name′,′Limeng′),(′sex′,′male′),(′age′,′20′)])print(stu_info_3)#通過關(guān)鍵字參數(shù)創(chuàng)建字典print("\n通過關(guān)鍵字參數(shù)創(chuàng)建字典")stu_info_4=dict(num=′20230101′,name=′Limeng′,sex=′male′,age=′20′)print(stu_info_4)6.1.1創(chuàng)建字典#通過dict()函數(shù)和zip()函數(shù)結(jié)合創(chuàng)建字典print("\n通過dict()函數(shù)和zip()函數(shù)結(jié)合創(chuàng)建字典")stu_info_5=dict(zip([′num′,′name′,′sex′,′age′],[′20230101′,′Limeng′,′male′,′20′]))print(stu_info_5)#判斷5個(gè)變量是否相等print("\n判斷5個(gè)變量是否相等")ifstu_info_1==stu_info_2==stu_info_3==stu_info_4==stu_info_5:print("創(chuàng)建字典的5種方式相同")#如果相同,則輸出提示符else:print("創(chuàng)建字典的5種方式不相同") #如果不相同,則輸出不相同提示符3.使用fromkeys()函數(shù)創(chuàng)建字典fromkeys()函數(shù)的語法格式如下:6.1.1創(chuàng)建字典dict.fromkeys(seq[,value])#創(chuàng)建字典,鍵序列的值默認(rèn)為None>>>stu_info_1=dict.fromkeys([′Wangwei′,′Zhangming′])>>>stu_info_1

#輸出stu_info_1{′Wangwei′:None,′Zhangming′:None}#創(chuàng)建字典,鍵序列的值默認(rèn)為22>>>stu_info_2=dict.fromkeys([′Wangwei′,′Zhangming′],′22′)>>>stu_info_2 #輸出stu_info_2{′Wangwei′:′22′,′Zhangming′:′22′}示例代碼如下:1.根據(jù)“鍵”訪問“值”根據(jù)“鍵”訪問“值”的語法格式如下:6.1.2訪問字典字典變量名[鍵]#創(chuàng)建字典>>>stu_info={′num′:′20230105′,′name′:′Yangbing′,′sex′:′male′,′age′:′21′}>>>stu_info[′num′]

#根據(jù)num訪問學(xué)號′20230105′>>>stu_info[′age′]′21′>>>stu_info[′height′] #指定的“鍵”(身高)不存在,拋出異常Traceback(mostrecentcalllast):File"<pyshell#3>",line1,in<module>stu_info[′height′]KeyError:′height′示例代碼如下:2.使用get()函數(shù)訪問“值”get()函數(shù)的語法格式如下:6.1.2訪問字典dict.get(key[,default=None])>>>stu_info={′num′:′20230105′,′name′:′Yangbing′,′sex′:′male′,′age′:′21′}>>>stuinfo.get(′name′)

#使用get()函數(shù)獲取學(xué)生姓名′Yangbing′>>>stu_info.get(′age′)′21′>>>stu_info.get(′height′)

#獲取學(xué)生身高,返回值為None>>>print(stu_info.get(′height′))

#輸出返回值NoneNone>>>stu_info.get(′height′,180)

#設(shè)置返回默認(rèn)值為180180示例代碼如下:3.遍歷字典

(1)遍歷字典中所有的“鍵-值”對。遍歷字典中所有的“鍵-值”對可使用items()函數(shù)。該函數(shù)以列表形式返回可遍歷的“(鍵,值)”元組,其語法格式如下:6.1.2訪問字典dict.items()

dict.keys()(2)遍歷字典中所有的“鍵”。當(dāng)不需要使用字典中的“值”時(shí),可使用keys()函數(shù)訪問字典中的“鍵”。該函數(shù)以列表形式返回字典中所有的“鍵”,其語法格式如下:(3)遍歷字典中所有的“值”。當(dāng)需要使用字典中的“值”時(shí),可使用values()函數(shù)訪問字典中的“值”。該函數(shù)以列表形式返回字典中所有的“值”,其語法格式如下:

dict.values()1.在列表中嵌套字典

【例6-6】在列表中嵌套字典。6.1.3嵌套print("在列表中嵌套字典\n")stu_info_1={′name′:′Wangning′,′sex′:′F′,′age′:′19′}#定義字典stu_info_1stu_info_2={′name′:′Limeng′,′sex′:′F′,′age′:′20′}#定義字典stu_info_2stu_info_3={′name′:′Changxin′,′sex′:′M′,′age′:′18′}#定義字典stu_info_3student=[stu_info_1,stu_info_2,stu_info_3]#創(chuàng)建包含3個(gè)學(xué)生的列表forstuinstudent: #遍歷列表print(stu)2.在字典中嵌套列表

【例6-7】在字典中嵌套列表。6.1.3嵌套print("在字典中嵌套列表")#定義字典并賦值,字典中的“值”為列表stu_class={′Wangning′:[′C′,′Math′],′Limeng′:[′Java′,′Art′],′Changxin′:[′Python′],′Weiming′:[′Python′,′Mysql′,′Math′]}forname,clainstu_class.items():

#遍歷字典中所有的元素print("")print(name,′選的課程是:′) #輸出鍵forcincla: #遍歷列表

print(c) #輸出列表中的值3.在字典中嵌套字典

【例6-8】在字典中嵌套字典。6.1.3嵌套print("在字典中嵌套字典\n")#定義字典并賦值stu_info={′Wangning′:{′sex′:′F′,′age′:′19′},′Limeng′:{′sex′:′F′,′age′:′20′},′Changxin′:{′sex′:′M′,′age′:′18′},′Weiming′:{′sex′:′M′,′age′:′21′}}forname,stuinstu_info.items():

#遍歷字典中所有元素

print(name,′性別:′,stu[′sex′],′年齡:′,stu[′age′]) #輸出鍵和值1.添加字典元素

當(dāng)使用“字典變量名[鍵]=值”修改字典時(shí),如果字典中不存在這個(gè)“鍵”,則會在其中增加一個(gè)“鍵-值”對。6.1.4修改字典print("添加字典元素\n")stu_info={′name′:′Wangning′,′sex′:′F′}new_age=input(′請輸入學(xué)生年齡:′)stu_info[′age′]=new_ageprint(stu_info)【例6-9】添加字典元素。2.修改字典中的元素

當(dāng)使用“字典變量名[鍵]=值”修改字典時(shí),如果字典中想要添加的鍵已經(jīng)存在,則該鍵對應(yīng)的值會被新值替換。6.1.4修改字典print("修改字典中的元素\n")stu_info={′name′:′Wangning′,′sex′:′F′,′age′:′20′,′height′:′180′}print("原字典中的元素為:")print(stu_info,"\n")new_height=input(′請輸入學(xué)生身高:\n′)print("修改身高后的字典元素為:")stu_info[′height′]=new_heightprint(stu_info)【例6-10】修改字典中的元素。1.del命令del命令用于刪除整個(gè)字典或字典中的某個(gè)元素。6.1.5刪除字典print("使用del命令刪除字典中的元素\n")stu_info={′name′:′Wangning′,′sex′:′F′,′age′:′20′,′height′:′180′}print(′刪除元素%s′%stu_info[′name′],′前的信息′)print(stu_info)delstu_info[′name′]print(′刪除元素%s′%stu_info[′name′],′后的信息′)print(stu_info)【例6-11】使用del命令刪除字典中的元素。2.clear()函數(shù)clear()函數(shù)用于清空字典中的所有元素。6.1.5刪除字典print("使用clear()函數(shù)清空字典中的所有元素\n")stu_info={′name′:′Wangning′,′sex′:′F′,′age′:′20′,′height′:′180′}print(′清空字典中的所有元素前:\n%s′%stu_info)stu_info.clear()print(′清空字典中的所有元素后:\n%s′%stu_info)【例6-12】使用clear()函數(shù)清空字典中的所有元素。6.1.6字典中“鍵”的特性>>>dict={′Name′:′Zhangxin′,′Age′:′18′,′Name′:′Limeng′}>>>dict{′Name′:′Limeng′,′Age′:′18′}

(1)字典中的“鍵”是唯一的,不允許同一個(gè)“鍵”出現(xiàn)兩次,如果創(chuàng)建時(shí)同一個(gè)“鍵”被賦值兩次,則后一個(gè)鍵的值會替換前一個(gè)“鍵”的“值”。示例代碼如下:6.1.6字典中“鍵”的特性>>>dict={[′Name′]:′Zhangxin′,′Age′:′18′,′Name′:′Limeng′}>>>dictTraceback(mostrecentcalllast):File"<pyshell#4>",line1,in<module>dict={[′Name′]:′Zhangxin′,′Age′:′18′,′Name′:′Limeng′}TypeError:unhashabletype:′list′

(2)字典中的“鍵”是不可變的。字典中的“鍵”可以使用數(shù)字、字符串或元組,但不能使用列表。示例代碼如下:6.1.7字典內(nèi)建函數(shù)表6-1

Python字典的內(nèi)建函數(shù)函數(shù)含義cmp(dict1,dict2)比較兩個(gè)字典元素大小len(dict)計(jì)算字典元素的個(gè)數(shù),即鍵的總數(shù)str(dict)輸出字典可打印的字符串表示type(variable)返回輸入的變量類型,如果變量是字典,則返回字典類型dict.clear()清空字典中的所有元素dict.copy()返回一個(gè)字典的淺復(fù)制dict.fromkeys(seq[,val])創(chuàng)建一個(gè)新字典,以序列seq中的元素作為字典的“鍵”,val為字典中所有“鍵”對應(yīng)的初始值6.1.7字典內(nèi)建函數(shù)表6-1

Python字典的內(nèi)建函數(shù)函數(shù)含義dict.get(key,default=None)返回指定“鍵”的“值”,如果“值”不在字典中,則返回default值dict.has_key(key)如果“鍵”在字典dict中,則返回True,否則返回Falsedict.items()以列表返回可遍歷的“(鍵,值)”元組dict.keys()以列表返回一個(gè)字典中所有的“鍵”dict.setdefault(key,default=None)與get()函數(shù)類似,但如果“鍵”不在字典中,則會添加“鍵”并將“值”設(shè)為defaultdict.update(dict2)將字典dict2的“鍵-值”對更新到字典中dict.values()以列表形式返回字典中的所有值任務(wù)6.2Python時(shí)間日期

時(shí)間戳(Tick)表示從1970年1月1日00:00:00開始,到當(dāng)前時(shí)間,一共經(jīng)歷了多少秒。

time()函數(shù)用于返回當(dāng)前時(shí)間戳,其語法格式如下:6.2.1時(shí)間戳time.time()importtime #導(dǎo)入時(shí)間模塊print("時(shí)間戳的使用\n")ticks=time.time()print("從1970年1月1日00:00:00開始的時(shí)間戳(單位為秒):",ticks)【例6-13】時(shí)間戳的使用。時(shí)間元組是一個(gè)struct_time類型的對象,可以通過gmtime()函數(shù)、localtime()函數(shù)和strptime()函數(shù)等獲得。6.2.2時(shí)間元組importtime

#導(dǎo)入時(shí)間模塊print("時(shí)間元組的使用\n")print("gmtime()函數(shù)的使用\n")struct_time_1=time.gmtime()print(struct_time_1)print("localtime()函數(shù)的使用\n")struct_time_2=time.localtime()print(struct_time_2)【例6-14】時(shí)間元組的使用。程序代碼如下:strftime()函數(shù)的語法格式如下:6.2.3獲取格式化的時(shí)間importtimeprint("獲取格式化的時(shí)間\n")#格式化為2023-03-2723:59:59形式print("格式化為2023-03-2723:59:59形式")print(time.strftime("%Y-%m-%d%H:%M:%S",time.localtime()))#格式化為MonMar2723:59:592023形式print("\n格式化為MonMar2723:59:592023形式")print(time.strftime("%a%b%d%H:%M:%S%Y",time.localtime()))print("\n將格式字符串轉(zhuǎn)換為時(shí)間戳")#將格式字符串轉(zhuǎn)換為時(shí)間戳time_word="MonMar2723:59:592023"print(time.mktime(time.strptime(time_word,"%a%b%d%H:%M:%S%Y")))【例6-15】獲取格式化的時(shí)間。time.strftime(format[,t])表6-4

Time模塊的函數(shù)及其含義6.2.4Time模塊函數(shù)含義time.altzone()返回格林尼治西部的夏令時(shí)地區(qū)的偏移秒數(shù)time.asctime([tupletime])接收時(shí)間元組并返回一個(gè)可讀形式為“MonMar2723:59:592023”(2023年3月27日周一23時(shí)59分59秒)的24個(gè)字符的字符串time.clock()以浮點(diǎn)數(shù)計(jì)算的秒數(shù)返回當(dāng)前的CPU時(shí)間,用于衡量不同程序的耗時(shí),相較之下優(yōu)于time.time()time.ctime([secs])把一個(gè)時(shí)間戳(按秒計(jì)算的浮點(diǎn)數(shù))轉(zhuǎn)換為time.asctime()形式,未給參數(shù)相當(dāng)于asctime(localtime(secs))time.gmtime([secs])接收時(shí)間戳(1970紀(jì)元后經(jīng)過的浮點(diǎn)秒數(shù))并返回格林尼治天文時(shí)間下的時(shí)間元組time.localtime([secs])接收時(shí)間戳(1970紀(jì)元后經(jīng)過的浮點(diǎn)秒數(shù))并返回當(dāng)?shù)貢r(shí)間下的時(shí)間元組表6-4

Time模塊的函數(shù)及其含義6.2.4Time模塊函數(shù)含義time.mktime(tupletime)接收時(shí)間元組并返回時(shí)間戳(1970紀(jì)元后經(jīng)過的浮點(diǎn)秒數(shù))time.sleep(secs)推遲調(diào)用線程的執(zhí)行,secs為秒數(shù)time.strftime(fmt[,tupletime])接收時(shí)間元組并返回以可讀字符串表示的當(dāng)?shù)貢r(shí)間,格式由fmt決定time.strptime(str,fmt=′%a%b%d%H:%M:%S%Y′)根據(jù)fmt的格式把一個(gè)時(shí)間字符串解析為時(shí)間元組time.time()返回當(dāng)前時(shí)間的時(shí)間戳(1970紀(jì)元后經(jīng)過的浮點(diǎn)秒數(shù))time.tzset()根據(jù)環(huán)境變量TZ重新初始化時(shí)間相關(guān)設(shè)置通過一些函數(shù)可以獲取年歷和月歷,默認(rèn)星期一是每周的第一天,星期天是每周的最后一天。例如,輸出2023年3月份和4月份的日歷。6.2.5獲取日期importcalendarprint("獲取日期\n")calendar_0=calendar.month(2023,3)calendar_1=calendar.month(2023,4)print("2023年3月\n")print(calendar_0)print("\n2023年4月\n")print(calendar_1)【例6-16】獲取日期。表6-5

Calendar模塊的函數(shù)及其含義6.2.6日歷(Calendar)模塊函數(shù)含義calendar.calendar(year,w=2,l=1,c=6)返回一個(gè)多行字符串格式的year年年歷,3個(gè)月一行,間隔距離為c。每日寬度間隔為w字符;每行長度為21×w+18+2×c;l是每星期行數(shù)calendar.firstweekday()返回當(dāng)前每周起始日期的設(shè)置。默認(rèn)情況下,首次載入Calendar模塊時(shí)返回0,即星期一calendar.isleap(year)若是閏年,則返回True,否則返回Falsecalendar.leapdays(y1,y2)返回在y1、y2兩年之間的閏年總數(shù)calendar.month(year,month,w=2,l=1)返回一個(gè)多行字符串格式的year年month月日歷,標(biāo)題有兩行,一周一行。每日寬度間隔為w字符;每行的長度為7×w+6;l為每星期的行數(shù)calendar.monthcalendar(year,month)返回一個(gè)整數(shù)的單層嵌套列表。每個(gè)子列表裝載代表一個(gè)星期的整數(shù)。year年month月外的日期都設(shè)為0;范圍內(nèi)的時(shí)間由該月第幾日表示,從1開始表6-5

Calendar模塊的函數(shù)及其含義6.2.6日歷(Calendar)模塊函數(shù)含義calendar.monthrange(year,month)返回兩個(gè)整數(shù)。第一個(gè)是該月的星期幾,第二個(gè)是該月有幾天。日從0(星期一)到6(星期日),月從1(一月)到12(十二月)calendar.prcal(year,w=2,l=1,c=6)相當(dāng)于print(calendar.calendar(year,w=2,l=1,c=6))calendar.prmonth(year,month,w=2,l=1)相當(dāng)于print(calendar.calendar(year,month,w=2,l=1))calendar.setfirstweekday(weekday)設(shè)置每周的起始日期碼,從0(星期一)到6(星期日)calendar.timegm(tupletime)和time.gmtime相反,它接收一個(gè)時(shí)間元組形式,返回該時(shí)刻的時(shí)間戳(1970紀(jì)元后經(jīng)過的浮點(diǎn)秒數(shù))calendar.weekday(year,month,day)返回給定日期的日期碼,日從0(星期一)到6(星期日),月從1(一月)到12(十二月)謝謝您的欣賞項(xiàng)目七Python函數(shù)任務(wù)7.2任務(wù)7.3CONTENTS目錄函數(shù)調(diào)用函數(shù)的嵌套任務(wù)7.4任務(wù)7.5任務(wù)7.1函數(shù)的定義遞歸函數(shù)和匿名函數(shù)變量作用域任務(wù)7.1函數(shù)的定義函數(shù)是組織好的,可重復(fù)使用的,用于實(shí)現(xiàn)單一或相關(guān)功能的代碼段。它能夠提高程序的模塊化和代碼的重復(fù)利用率。7.1.1函數(shù)的概念print("*")print("***")print("*****")print("*******")這段代碼使用了多個(gè)print()函數(shù)輸出一個(gè)三角形。如果需要在一個(gè)程序的不同位置輸出同樣的三角形,那么每次都使用多個(gè)print()函數(shù)輸出的做法是不可取的。為了提高程序編寫的效率及代碼的重用性,編程人員可以把具有獨(dú)立功能的代碼塊組織成一個(gè)小模塊,即函數(shù)。自定義函數(shù)的語法格式如下:7.1.2自定義函數(shù)def函數(shù)名([參數(shù)列表]):#函數(shù)_文檔字符串函數(shù)體return表達(dá)式自定義函數(shù)具有一定的規(guī)則,如下:(1)函數(shù)代碼塊以def開頭,后面是函數(shù)名和圓括號。(2)函數(shù)名的命名規(guī)則與變量的命名規(guī)則是一樣的,即只能是字母、數(shù)字和下畫線的組合,而不能以數(shù)字開頭,并且不能與保留字重名。(3)函數(shù)的參數(shù)必須放在圓括號中。(4)文檔字符串是對函數(shù)的說明,能提高函數(shù)的可讀性。(5)函數(shù)內(nèi)容以冒號開始,并保持一定的空格縮進(jìn)。(6)return表達(dá)式用于結(jié)束函數(shù),可返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回None。任務(wù)7.2函數(shù)調(diào)用當(dāng)編程人員定義一個(gè)函數(shù)后,該函數(shù)就相當(dāng)于有了一段具有特定功能的代碼,要想執(zhí)行這些代碼,就需要調(diào)用函數(shù)。函數(shù)調(diào)用的一般形式為函數(shù)名([實(shí)際參數(shù)列表])7.2.1簡單的函數(shù)調(diào)用如果函數(shù)帶有參數(shù),則實(shí)際參數(shù)列表(簡稱實(shí)參)中應(yīng)給出要傳入函數(shù)內(nèi)部的具體值。1.return語句返回1個(gè)值【例7-3】編寫函數(shù)實(shí)現(xiàn)求兩數(shù)中的較小值。程序代碼如下:print("求兩數(shù)中的較小值\n")defmin_xy(x,y):

#自定義求兩數(shù)中的較小值函數(shù)ifx>y: #如果x>y成立,則返回y的值returnyelse: #否則返回x的值returnxa=float(input("輸入數(shù)值1:")) #接收a的值b=float(input("輸入數(shù)值2:")) #接收b的值c=min_xy(a,b) #調(diào)用函數(shù),將較小值賦給cprint("兩數(shù)中的較小值為:",c) #輸出c的值7.2.2參數(shù)傳遞2.return語句返回多個(gè)值【例7-4】編寫程序,要求輸入字符串,計(jì)算字符串中大寫字母和小寫字母的個(gè)數(shù)并輸出,計(jì)算過程用函數(shù)實(shí)現(xiàn)。程序代碼如下:print("計(jì)算字符串中大寫字母和小寫字母的個(gè)數(shù)\n")defletter_cal(s):#定義函數(shù)a=0 #變量a用于存儲大寫字母的個(gè)數(shù)b=0 #變量b用于存儲小寫字母的個(gè)數(shù)forchins:

#循環(huán)判斷字符串中的每個(gè)字母ifch.isupper(): #調(diào)用isupper()函數(shù)判斷是否為大寫字母a+=1 #如果是大寫字母,則a加1elifch.islower(): #調(diào)用islower()函數(shù)判斷是否為小寫字母b+=1 #如果是小寫字母,則b加1returna,b

#返回a和b的值7.2.2參數(shù)傳遞2.return語句返回多個(gè)值【例7-4】編寫程序,要求輸入字符串,計(jì)算字符串中大寫字母和小寫字母的個(gè)數(shù)并輸出,計(jì)算過程用函數(shù)實(shí)現(xiàn)。程序代碼如下:str=input("請輸入字符串\n") #輸入字符串c=letter_cal(str) #調(diào)用函數(shù)返回a和b的值給變量cprint(c,type(c),"\n")

#輸出變量c及變量c的類型print("大寫字母的個(gè)數(shù)為:",c[0],"\n") #輸出結(jié)果print("小寫字母的個(gè)數(shù)為:",c[1]) #輸出結(jié)果7.2.2參數(shù)傳遞1.必備參數(shù)【例7-5】當(dāng)調(diào)用下面的print_text()函數(shù)時(shí),必須傳遞一個(gè)參數(shù),否則會出現(xiàn)語法錯(cuò)誤。程序代碼如下:print("當(dāng)調(diào)用帶參數(shù)的函數(shù)時(shí),必須傳遞一個(gè)參數(shù),否則會出現(xiàn)語法錯(cuò)誤。\n")defprint_text(str):#輸出任何傳入的字符串print(str)return#調(diào)用print_text()函數(shù),傳遞一個(gè)字符串print("\n調(diào)用函數(shù),傳遞字符串參數(shù)時(shí),輸出字符串\n")text="Hello!WelcometoPython!"print_text(text)#輸出字符串#調(diào)用print_text()函數(shù),不傳遞字符串print("\n調(diào)用函數(shù),沒有傳遞字符串參數(shù)時(shí),會出現(xiàn)如下語法錯(cuò)誤\n")print_text()7.2.3函數(shù)調(diào)用的參數(shù)類型2.默認(rèn)值參數(shù)【例7-6】默認(rèn)值參數(shù)。程序代碼如右:print("默認(rèn)值參數(shù)的應(yīng)用\n")defprint_info(name,age=35):#定義函數(shù),輸出傳入的字符串print("名字:",name)print("年齡:",age)return#調(diào)用print_info()函數(shù)print("默認(rèn)值參數(shù)為")print(print_info.__defaults__,"\n")#輸出默認(rèn)值參數(shù)print("----------------------")name_1="Zhangming"print_info(name_1,28)#顯式賦值print("----------------------")print("使用默認(rèn)值參數(shù)輸出的結(jié)果為\n")print_info(name_1) #使用默認(rèn)值參數(shù)7.2.3函數(shù)調(diào)用的參數(shù)類型定義帶有默認(rèn)值參數(shù)的函數(shù)語法格式如下:def函數(shù)名(形參名=默認(rèn)值):函數(shù)體3.關(guān)鍵字參數(shù)【例7-7】關(guān)鍵字參數(shù)。程序代碼如下:print("關(guān)鍵字參數(shù)的應(yīng)用\n")defprint_info(name,age):

#定義函數(shù),打印任何傳入的字符串

print("名字:",name)print("年齡:",age)return#調(diào)用print_info()函數(shù)print("----------------------")name_1="Zhangming"age_1=20print_info(age=age_1,name=name_1) #關(guān)鍵字參數(shù)傳遞7.2.3函數(shù)調(diào)用的參數(shù)類型4.不定長參數(shù)使用不定長參數(shù)的語法格式如下:print("不定長參數(shù)的應(yīng)用\n")deffunction_1(a,b,*args,**kwargs):#定義函數(shù)print(a)print(b)print(args)print(kwargs)print("----------------------")function_1("a","b",3,"c",5,x=6,z=7) #調(diào)用函數(shù)7.2.3函數(shù)調(diào)用的參數(shù)類型def函數(shù)名([形參列表,]*args,**kwargs):函數(shù)體【例7-8】不定長參數(shù)。程序代碼如下:任務(wù)7.3函數(shù)的嵌套在Python語言中,函數(shù)的嵌套是指在函數(shù)內(nèi)部可以再定義另外一個(gè)函數(shù)。print("函數(shù)的嵌套定義\n")defprint_line():

#定義print_line()函數(shù)print("-------------------------\n")defprint_text(): #嵌套定義print_text()函數(shù)print("Hello!WelcometoPython!\n")

print("*************************")print_text() #調(diào)用print_text()函數(shù)print_line()

#調(diào)用print_line()函數(shù)7.3.1函數(shù)的嵌套定義【例7-9】函數(shù)的嵌套定義。程序代碼如下:print("計(jì)算1!+2!+3!+...+n!的值\n")#定義fac函數(shù),求階乘deffac(k): i=2t=1whilei<=k:

t*=i

i=i+1returnt

#返回階乘結(jié)果7.3.2函數(shù)的嵌套調(diào)用【例7-10】計(jì)算1!+2!+3!+...+n!的值并輸出,使用函數(shù)的嵌套調(diào)用實(shí)現(xiàn)。計(jì)算階乘的累加,從大體上可以分為求階乘和求累加兩個(gè)功能模塊。程序代碼如下:#定義sum函數(shù),求累加defsum(m):s=0i=1whilei<=m:

s=s+fac(i)

#調(diào)用fac函數(shù)i+=1

returns #返回累加結(jié)果n=int(input("輸入階乘數(shù)為:\n"))sum_1=sum(n)print("-------------------------\n")print("1!+2!+3!+...+",n,"!=",sum_1) #調(diào)用sum函數(shù)7.3.2函數(shù)的嵌套調(diào)用【例7-10】計(jì)算1!+2!+3!+...+n!的值并輸出,使用函數(shù)的嵌套調(diào)用實(shí)現(xiàn)。計(jì)算階乘的累加,從大體上可以分為求階乘和求累加兩個(gè)功能模塊。程序代碼如下:任務(wù)7.4遞歸函數(shù)和匿名函數(shù)7.4.1遞歸函數(shù)圖7-11

遞歸函數(shù)調(diào)用遞歸函數(shù)調(diào)用如圖7-11所示。如果函數(shù)func()直接調(diào)用其本身,則稱為直接遞歸調(diào)用;如果函數(shù)func0()在執(zhí)行的過程中調(diào)用func1()函數(shù),而在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論