單元5 函數應用與模塊化程序設計(電子教案)_第1頁
單元5 函數應用與模塊化程序設計(電子教案)_第2頁
單元5 函數應用與模塊化程序設計(電子教案)_第3頁
單元5 函數應用與模塊化程序設計(電子教案)_第4頁
單元5 函數應用與模塊化程序設計(電子教案)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單元5函數應用與模塊化程序設計【任務5-1】編寫程序繪制愛心【任務描述】(1)在PyCharm集成開發(fā)環(huán)境中創(chuàng)建項目Unit05。(2)在項目Unit05創(chuàng)建Python程序文件5-1.py。(3)編寫程序繪制愛心。【任務實施】1.創(chuàng)建PyCharm項目Unit05成功啟動PyCharm后,在指定位置“D:\PycharmProject\”,創(chuàng)建PyCharm項目Unit05。2.創(chuàng)建Python程序文件5-1.py在PyCharm項目“Unit05”中,新建Python程序文件“5-1.py”,同時PyCharm主窗口顯示程序文件“5-1.py”的代碼編輯窗口,在該程序文件的代碼編輯窗口也自動添加了模板內容。3.編寫Python程序代碼在新建文件“5-1.py”的代碼編輯窗口已有模板注釋內容下面輸入程序代碼。importmatplotlib.pyplotaspltimportnumpyasnpdefdrawingHeartShape():t=np.arange(0,2*np.pi,0.1)x=16*np.sin(t)**3y=13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-np.cos(4*t)plt.plot(x,y,color='red')plt.show()drawingHeartShape()單擊工具欄中【保存】按鈕,保存程序文件“5-1.py”。4.運行Python程序在PyCharm主窗口選擇【Run】菜單,在彈出的下拉菜單中選擇【Run】菜單項。在彈出的【Run】對話框中選擇“5-1”選項,程序“5-1.py”開始運行。程序5-1.py的運行結果如圖5-1所示。圖5-1程序5-1.py的運行結果【任務5-2】應用日期時間函數實現倒計時功能【任務描述】(1)在項目Unit05創(chuàng)建Python程序文件5-2.py。(2)應用日期時間函數實現倒計時功能?!救蝿諏嵤?.創(chuàng)建Python程序文件5-2.py在PyCharm項目“Unit05”中,新建Python程序文件“5-2.py”,同時PyCharm主窗口顯示程序文件“5-2.py”的代碼編輯窗口,在該程序文件的代碼編輯窗口也自動添加了模板內容。2.編寫Python程序代碼在新建文件“5-2.py”的代碼編輯窗口已有模板注釋內容下面輸入程序代碼。importdatetimedefcountdown(now,strDate):countdown=datetime.datetime.strptime(strDate,'%Y-%m-%d')detla=countdown-nowday=detla.daysreturndaynow=datetime.datetime.today()print("\033[0;31mToday")print("\033[0;31m{}年{}月{}日".format(now.year,now.month,now.day))print("\033[0;31m距離:")print("\033[0;34m北京冬奧會還有:"+str(countdown(now,'2022-2-4'))+"天")單擊工具欄中【保存】按鈕,保存程序文件“5-2.py”。3.運行Python程序在PyCharm主窗口選擇【Run】菜單,在彈出的下拉菜單中選擇【Run】菜單項。在彈出的【Run】對話框中選擇“5-2”選項,程序“5-2.py”開始運行。程序5-2.py的運行結果為:Today2020年4月8日距離:東京奧運會還有:106天北京冬奧會還有:666天【任務5-3】定義函數計算總金額、優(yōu)惠金額和實付金額【任務描述】(1)在項目Unit05創(chuàng)建Python程序文件5-3.py。(2)定義函數計算總金額、優(yōu)惠金額和實付金額?!救蝿諏嵤吭赑yCharm項目Unit05中創(chuàng)建Python程序文件5-3.py。在程序文件5-3.py中編寫程序代碼,實現所需功能。defgetDiscountPrice(rank,price):ifrank=="PLUS":discountPrice=price*0.88else:ifrank=="FAN":discountPrice=price*0.90else:discountPrice=price*0.92returndiscountPricedefgetDiscount(number,price):originalTotal=number*priceiforiginalTotal>=299:discount=15.00returndiscountdefgetCashback(number,price):originalTotal=number*pricereduction=int(originalTotal/100)ifreduction>0:cashback=reduction*50returncashbackdefgetCarriage(payable):#訂單金額<49,收取基礎運費6元;訂單金額≥49,收取基礎運費0元ifpayable<49:carriage=6.00else:carriage=0.00returncarriagedefprintData(*data):print("總金額:¥"+"{:.2f}".format(data[0]))print("運費:¥"+"{:.2f}".format(data[1]))print("返現金額:-¥"+"{:.2f}".format(data[2]))print("優(yōu)惠金額:-¥"+"{:.2f}".format(data[3]))print("實付總額:¥"+"{:.2f}".format(data[4]))originalPrice=99.80number=4originalTotal=number*originalPricerank="Ordinaryusers"discountPrice=getDiscountPrice(rank,originalPrice)discountAmount=number*discountPricediscount=getDiscount(number,originalPrice)cashback=getCashback(number,originalPrice)discountTotal=discount+cashbackpayable=discountAmount-discountTotalcarriage=getCarriage(payable)payable+=carriageprintData(discountAmount,carriage,cashback,discount,payable)print("")程序5-7.py的運行結果為:總金額:¥367.26運費:¥0.00返現金額:-¥150.00優(yōu)惠金額:-¥15.00實付總額:¥202.26【任務5-4】自定義函數應用多種方法對齊輸出圖書數據【任務描述】(1)在項目Unit05創(chuàng)建Python程序文件5-4.py。(2)綜合應用多種方法對齊輸出圖書數據。【任務實施】在PyCharm項目Unit05中創(chuàng)建Python程序文件5-4.py。在程序文件5-4.py中編寫程序代碼,實現所需功能。importdatetimedefgetSize(text):iftype(text)!=str:text=str(text)lenText=len(text)#調用len函數計算字符串的字符數量lenTextUtf8=len(text.encode('UTF-8'))#計算字符串UTF-8編碼的長度iflenText!=lenTextUtf8:size=int(lenText-(lenTextUtf8-lenText)/2)#計算字符中半角字符的數量returnsizeelse:return0defprintField(fieldName):print("{0:{1}^6s}".format(fieldName[0],chr(12288)),end="")#商品IDprint("{0:{1}^20s}".format(fieldName[1],chr(12288)),end="")#圖書名稱print("{0:{1}^14s}".format(fieldName[2],chr(12288)),end="")#價格print("{0:{1}^6s}".format(fieldName[3],chr(12288)))#出版日期defprintFormatData(text,align,len):iftype(text)==datetime.date:text=datetime.date.strftime(text,"%Y-%m-%d")#0對應輸出的字符串,1對應填空符,2對應對齊方式,3對應顯示長度print("{0:{1}{2}{3}}".format(text,chr(12288),align,len),end="")defprintBlankFill(text,endMark):print("{0:<{1}s}".format(chr(32),str(getSize(text))),end=endMark)#chr(32)返回半角空格defprintData(bookData):forrowinbookData:printFormatData(row[0],"^","6d")printFormatData(row[1],"<","24s")printBlankFill(row[1],"")printFormatData(row[2],"^","8.2f")printFormatData(row[3],"^","12s")print("")fieldName=("商品ID","圖書名稱","價格","出版日期")#數據列表bookData=[(1,"HTML5+CSS3移動Web開發(fā)實戰(zhàn)",58.00,"2019-5-1"),(2,"給Python點顏色青少年學編程",59.80,"2019-9-1"),(3,"PPT設計從入門到精通",79.00,"2019-1-1"),]printField(fieldName)printData(bookData)程序5-4.py的運行結果如圖5-2所示。圖5-2程序5-8.py的運行結果【任務5-5】編寫程序自定義模塊與函數格式輸出商品信息【任務描述】(1)在項目Unit05創(chuàng)建Python程序文件5-5.py。(2)自定義模塊commonModult.py,在該模塊中自定義函數printField()、printFormatData()、printBlankFill(),分別用于輸出表格標題行、格式化輸出商品信息,輸出填充空格。(3)編寫程序自定義模塊與函數格式輸出商品信息?!救蝿諏嵤?.創(chuàng)建模塊文件commonModult.py在項目文件夾PycharmProject中創(chuàng)建模塊文件commonModult.py,在該模塊中分別定義4個函數,名稱分別為:getSize、printField、printFormatData、printBlankFill。編寫模塊commonModult的程序代碼。importdatetimedefgetSize(text):iftype(text)!=str:text=str(text)lenText=len(text)#調用len函數計算字符串的字符數量lenTextUtf8=len(text.encode('UTF-8'))#計算字符串UTF-8編碼的長度iflenText!=lenTextUtf8:size=int(lenText-(lenTextUtf8-lenText)/2)#計算字符中半角字符的數量returnsizeelse:return0defprintField(fieldName):print("{0:{1}^6s}".format(fieldName[0],chr(12288)),end="")#商品IDprint("{0:{1}^20s}".format(fieldName[1],chr(12288)),end="")#圖書名稱print("{0:{1}^14s}".format(fieldName[2],chr(12288)),end="")#價格print("{0:{1}^6s}".format(fieldName[3],chr(12288)))#出版日期defprintFormatData(text,align,len):iftype(text)==datetime.date:text=datetime.date.strftime(text,"%Y-%m-%d")#0對應輸出的字符串,1對應填充符,2對應對齊方式,3對應顯示長度print("{0:{1}{2}{3}}".format(text,chr(12288),align,len),end="")defprintBlankFill(text,endMark):print("{0:<{1}s}".format(chr(32),str(getSize(text))),end=endMark)#chr(32)返回半角空格2.創(chuàng)建Python程序文

溫馨提示

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

評論

0/150

提交評論