函數(shù)與模塊 課件 2023-2024學(xué)年高中信息技術(shù)浙教版(2019)必修1_第1頁
函數(shù)與模塊 課件 2023-2024學(xué)年高中信息技術(shù)浙教版(2019)必修1_第2頁
函數(shù)與模塊 課件 2023-2024學(xué)年高中信息技術(shù)浙教版(2019)必修1_第3頁
函數(shù)與模塊 課件 2023-2024學(xué)年高中信息技術(shù)浙教版(2019)必修1_第4頁
函數(shù)與模塊 課件 2023-2024學(xué)年高中信息技術(shù)浙教版(2019)必修1_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

3.2.5函數(shù)與模塊2自定義函數(shù)可以復(fù)用的代碼函數(shù)可分為系統(tǒng)函數(shù)和用戶自定義函數(shù)。前面使用過的print()和input()函數(shù)都是系統(tǒng)函數(shù)自定義函數(shù):一般包括函數(shù)名、參數(shù)、函數(shù)體和返回值等四部分。自定義函數(shù)的基本格式是:def函數(shù)名(參數(shù)):

函數(shù)體[return返回值]2自定義函數(shù)可以復(fù)用的代碼def函數(shù)名(參數(shù)):

函數(shù)體[return返回值]函數(shù)名:命名規(guī)則和變量名一樣參數(shù):即形式參數(shù),簡稱形參,是調(diào)用該函數(shù)需要提供的數(shù)據(jù);參數(shù)是用來向函數(shù)傳遞值的,當(dāng)有多個參數(shù)時,各個參數(shù)之間用逗號隔開函數(shù)體:是函數(shù)需要執(zhí)行的具體代碼(計算過程)函數(shù)值:函數(shù)執(zhí)行完后,由return語句將表達(dá)式值返回給調(diào)用者,結(jié)束函數(shù)。defArea(a,b,c):p=(a+b+c)/2s=(p*(p-a)*(p-b)*(p-c))**0.5returnss1=Area(3,4,5)s2=Area(5,12,13)print(s1+s2)完成函數(shù)的構(gòu)造后,在程序中就可以根據(jù)需要調(diào)用該函數(shù)。def函數(shù)名(參數(shù)):

函數(shù)體[return返回值]2自定義函數(shù)可以復(fù)用的代碼(1)無參數(shù)defx1():

s=1

foriinrange(1,5):

s=s*i

returns

print(x1())(2)無返回值defx1():

s=1

foriinrange(1,5):

s=s*i

print(x1())討論:自定義函數(shù)x1的功能以及輸出的值。2自定義函數(shù)可以復(fù)用的代碼(3)有1個參數(shù)(4)有多個參數(shù)時,參數(shù)間用逗號分隔開。def

x1(n):

s=1

foriinrange(1,n+1):

s=s*i

returns

print(x1(4))

print(x1(3)+x1(5))

def

x2(h1,h2):

s=h1*h2

returns

print(x2(2,3))

print(x2(3,4)+x2(5,6))討論:自定義函數(shù)x1、x2的功能以及輸出的值。?1、形參:在定義函數(shù)階段定義的參數(shù),叫形式參數(shù),簡稱形參(相當(dāng)于變量名)?2、實(shí)參:再調(diào)用函數(shù)的階段傳入的值,叫實(shí)際參數(shù),簡稱實(shí)參(相當(dāng)于變量值)形參和實(shí)參默認(rèn)形參:在定義階段就已經(jīng)被賦值的,稱之為默認(rèn)參數(shù)?特點(diǎn):意味著在調(diào)用階段可以不賦值默認(rèn)(行)形參deffunc(x,y=2): print(x,y)func(3)func(x=3,y=4)如果沒有傳遞實(shí)參,則會使用默認(rèn)參數(shù),當(dāng)然也可以通過傳遞實(shí)參來替換它的默認(rèn)值。3典例分析:輸入年份輸出生肖【編程】輸入一個農(nóng)歷年份(>=1900),輸出該年對應(yīng)的生肖,直到輸入0結(jié)束,運(yùn)行結(jié)果如下所示:請輸入農(nóng)歷年份,輸入0結(jié)束:2004生肖是:猴請輸入農(nóng)歷年份,輸入0結(jié)束:3典例分析:輸入年份輸出生肖defshengxiao(y):

L1=["鼠","牛","虎","兔","龍","蛇","馬","羊","猴","雞","狗","豬"]

i=(y-1900)%12

returnL1[i]

year=int(input("請輸入出生年份,輸入0結(jié)束:"))

whileyear!=0:

print("你的生肖是:",shengxiao(year))

year=int(input("請輸入出生年份,輸入0結(jié)束:"))3.2.5函數(shù)與模塊模塊(庫)的導(dǎo)入及應(yīng)用2導(dǎo)入模塊(庫)可以復(fù)用的代碼庫(模塊):Python的一大特色是其豐富的模塊,基本上只要你能想到的常見開發(fā)需求,都能找到別人已經(jīng)實(shí)現(xiàn)的庫直接使用,或者相關(guān)的工具/框架來輔助實(shí)現(xiàn)。import庫名import庫名as別名1.導(dǎo)入庫(模塊)2.指定別名:使用簡短的別名,讓你使用更方便。importmathimportmath

asm語法:import模塊名(文具在哪個文具盒,相當(dāng)于導(dǎo)入的是一個文具盒,是相對路徑)import語句from-import語句語法:from模塊名import函數(shù)名(文具盒中哪個文具,是絕對路徑)from模塊名

import**是通配符,表示導(dǎo)入文具盒中的全部文具,和import模塊名效果相同。2導(dǎo)入模塊(庫)4math庫(模塊)math庫中的常用常數(shù)函數(shù)與函數(shù)名稱含義math.e自然常數(shù)emath.pi圓周率πmath.ceil(x)對x向上取整,如x=1.2,返回2math.floor(x)對x向下取整,如x=1.2,返回1math.pow(x,y)指數(shù)運(yùn)算,返回x的y次方(返回值為浮點(diǎn)型)math.log(x)對數(shù)運(yùn)算,默認(rèn)基底為emath.sin(x)/math.cos(x)正弦函數(shù)/余弦函數(shù)math.tan(x)正切函數(shù)math.degrees(x)弧度轉(zhuǎn)換成角度math.radians(x)角度轉(zhuǎn)換成弧度4math庫(模塊)試試這個:importmathx=int(input("number:"))x=math.sqrt(x)print("squarerootingx:",x)試試這個:frommathimportsqrtx=int(input("number:"))x=sqrt(x)print("squarerootingx:",x)輸入半徑求圓面積importmathr=float(input("半徑:"))p=math.pis=print("面積是:",str(s))4math庫(模塊)frommathimportpir=float(input("半徑:"))s=print("面積是:",str(s))p*math.pow(r,2)pi*(r**2)4典例分析:【快遞收費(fèi)】快遞重量(千克)快遞運(yùn)費(fèi)1千克以下(包含1千克)9元1千克以上3千克以下(包含3千克)11元3千克以上5千克以下(包含5千克)14元5千克以上5千克以內(nèi)(含5千克)收14元,超過5千克部分,每千克加收2元,不足1千克按1千克計算某快遞公司為計算快遞運(yùn)費(fèi)編寫了Python程序,當(dāng)用戶輸入快遞重量“單位是千克)后,根據(jù)快遞公司的收費(fèi)標(biāo)準(zhǔn),計算出快遞運(yùn)費(fèi)??爝f公司的具體收費(fèi)標(biāo)準(zhǔn)如下表所示4典例分析:【快遞收費(fèi)】importmath

weight=float(input("請輸入快遞質(zhì)量(kg:)"))ifweight<=1:

money=9

elifweight<=3:

money=11

elifweight<=5:

money=14

else:

money=14+2*

print("你需支付的快遞運(yùn)費(fèi)是:",money,"元")math.ceil(weight-5)5random庫(模塊)

random庫(模塊):用來生成隨機(jī)數(shù)。random庫中的常用函數(shù)名稱含義random.random()隨機(jī)生成一個【0,1)范圍內(nèi)的實(shí)數(shù)random.uniform(a,b)隨機(jī)生成一個【a,b】范圍內(nèi)的實(shí)數(shù)random.randint(a,b)隨機(jī)生成一個【a,b】范圍內(nèi)的整數(shù)random.choice(seq)從序列的元素中隨機(jī)挑選一個元素如:random.choice(range(10)),即從0到9中隨機(jī)挑選一個整數(shù)random.sample(seq,k)從序列中隨機(jī)挑選k個元素random.shuffle(seq)將序列的所有元素隨機(jī)排序importrandomcla=['(2)班','(3)班','(4)班','(5)班','(6)班']random.shuffle(cla)forcincla:print(c,end='')5random庫(模塊)

random庫(模塊):用來隨機(jī)安排出場順序importrandomxs=["小紅","小藍(lán)","小綠","小花","老張","老王","老李","老趙"]n=int(input("想抽幾個人:"))print("1人:",random.choice(xs))print(n,"人:",random.sample(xs,n))random.shuffle(xs)foriinxs:print(i,",",end='')5random庫(模塊)

random庫(模塊):用來抽獎5典例分析【隨機(jī)點(diǎn)名】編程:隨機(jī)點(diǎn)名。同時點(diǎn)名人數(shù)由用戶輸入,當(dāng)用戶輸入0時結(jié)束程序。運(yùn)行如右圖所示:5典例分析【隨機(jī)點(diǎn)名】importrandomasrd

md=['王佳慈','蘇鑒槐','楊金蘭','李炳臻','高倩南','段金麗','張葉芳','馮趙祝滿','袁楊洋','字葉楓','趙志鋒','吳麗娟','余艷','李艷秋','楊佳馨','董璇','楊樹宏','馮佳藝','楊漾槐','倪登城','周連琪','許佳雪','馬趙琴','段姝慧','段鈺','楊禮兵','莽麗潔','和琴艷','陳璞','羅福星','陳繞青','李曉育','畢麗汝','車江欒','李榮','徐苗','史小禾','劉賢','常曉會','蘇艷聰','趙波','韓左輝','白承絢','時雪緣']

zrs=len(md)

rs=int(input("輸入隨機(jī)點(diǎn)名人數(shù)或輸入0退出:"))

whilers!=0:

b=rd.sample(range(zrs),rs)

i=0

whilei<rs:

x=b[i]

print(md[x],end="")

i+=1

print("")

rs=int(input("輸入隨機(jī)點(diǎn)名人數(shù)或輸入0退出:"))Image模塊是PIL庫中的重要模塊#獲得圖像的文件格式geshi=img.format#獲得圖像的高和寬h,w=img.size#獲得圖像的顏色模式mo=img.mode#將圖像旋轉(zhuǎn)45度后顯示img.rotate(45).show()fromPILimportImageim=Image.open('小飛象.jpg')#打開小飛象.jpg圖像文件print(im.format)

#獲取圖像文件格式print(im.size)

#獲取圖像尺寸大?。ㄒ韵袼貫閱挝槐硎緢D像的寬度和高度)print(im.mode)

#獲取圖像的顏色模式im.rotate(45).show()

#將圖像旋轉(zhuǎn)45°后顯示6Image模塊fromPILimportImageim=Image.open("pil.jpg")print(im.format)print(im.size)print(im.mode)im.rotate(45).show()6Image模塊Image模塊是PIL庫(PythonImagingLibrary)中重要的模塊1.下面程序段定義的函數(shù)fa用于計算n!,請?jiān)趧澗€處填入合適的代碼?deffa(n):i=1s=1whilei<=n:s*=ii=i+1

a=int(input("請輸入整數(shù)a的值:"))print(fa(a))若輸入的值是是5,則輸出的結(jié)果為

returns120隨堂練習(xí)2.以下程序段定義的函數(shù)reverse能夠得到整數(shù)n翻轉(zhuǎn)后的數(shù)字(例:1234翻轉(zhuǎn)后是4321)。defreverse(n):r=0whilen>0:c=n%10r=①n=②

returnra=int(input("請輸入整數(shù)a的值:"))print(reverse(a))①的程序是②的程序是若輸入的值是是20221106,則輸出的結(jié)果為

r*10+c

n//10601122021.局部變量

在一個函數(shù)內(nèi)或者語句塊內(nèi)定義的變量稱為局部變量。局部變量的作用域僅限于定義它的函數(shù)體或語句塊中。deffun1(a):x=a+10……deffun2(a,b):x,y=a,b……變量的作用域

在所有函數(shù)之外定義的變量稱為全局變量,它可以在多個函數(shù)中被引用。x=30deffunc():x=20print('x的值是',x)func()print('x的值是',x)2.全局變量變量的作用域x的值是20x的值是30defmyfun(a):print('a=',a)returna+1a=10print('a=',a)myfun(5)print('a=',a)

a=10a=5a=10在函數(shù)內(nèi)定義的變量稱為局部變量。只在函數(shù)體內(nèi)有效在函數(shù)外定義的變量稱為全局變量。跳過困難題全局變量和局部變量的區(qū)別

(簡單)defArea(a,b,c):p=(a+b+c)/2s=(p*(p-a)*(p-b)*(p-c))**0.5returns地塊面積S=Area(3,4,5)+Area(5,12,13)3121354要用到兩次海倫公式,可用函數(shù)簡化能否再定義一個函數(shù)quad(),輸入3,4,5,12,13就能計算地塊的面積呢?defquad(a,b,c,d,e):s=Area(a,b,c)+Area(c,d,e)

returns調(diào)用方法:quad(3,4,5,12,13)在函數(shù)體中,可以嵌套使用其他函數(shù)全局變量和局部變量的區(qū)別

(困難)思考:現(xiàn)在請看整個程序s=0defArea(a,b,c):p=(a+b+c)/2s=(p*(p-a)

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論