单元5 函数应用与模块化程序设计(电子教案)_第1页
单元5 函数应用与模块化程序设计(电子教案)_第2页
单元5 函数应用与模块化程序设计(电子教案)_第3页
单元5 函数应用与模块化程序设计(电子教案)_第4页
单元5 函数应用与模块化程序设计(电子教案)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单元5函数应用与模块化程序设计

【任务5”】编写程序绘制爱心

【任务描述】

(1)在PyChann集成开发环境中创建项目UnitO5°

(2)在项目UnitO5创建Python程序文件5-l.py。

(3)编写程序绘制爱心。

【任务实施】

1.创建PyCharm项目Unit05

成功启动PyCharm后,在指定位置“D:\Pychai*mProject\",创建PyCharm项目

Unit05o

2.创建Python程序文件5・l.py

在PyCharm项目“Unil05”中,新建Pylhon程序文件“5-l.py",

同时PyCharm主窗口显示程序文件“5-1.py”的代码编辑窗口,在该程序文件的代码

编辑窗口也自动添加了模板内容。

3.编写Python程序代码

在新建文件“5-l.py”的代码编辑窗口已有模板注释内容下面输入程序代码。

importmatplotlib.pyplotaspit

importnumpyasnp

defdrawingHeartShape():

t=np.arangc(O,2*np.pi,0.1)

x=16*np.sin(t)**3

y=13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-np.cos(4*t)

ph.plot(x,y,color='red")

plt.show()

drawingHeartShapeO

单击工具栏中【保存】按钮,保存程序文件“5-l.py”。

4.运行Python程序

在PyCharm主窗口选择[Run]菜单,在弹出的下拉菜单中选择[Run]菜单项。

在弹出的【Run】对话框中选择“5-1”选项,程序“5-l.py”开始运行。

程序5-l.py的运行结果如图5-1所示。

10

图5-1程序5・Lpy的运行结果

【任务5・2】应用日期时间函数实现倒计时功能

【任务描述】

(1)在项目Unit05创建Python程序文件5-2.py(>

(2)应用日期时间函数实现倒计时功能。

【任务实施】

1.创建Python程序文件5-2.py

在PyCharm项目“Unit05"中,新建Python程序文件“5・2.py”,

同时PyCharm主窗口显示程序文件“5-2.py”的代码编辑窗口,

在该程序文件的代码编辑窗口也自动添加了模板内容。

2.编写Python程序代码

在新建文件“5-2.py”的代码编辑窗口已有模板注释内容下面输入程序代码。

importdatetime

defcounldown(now,strDate):

countdown=datetime.datetime.strptinie(strDate,'%Y-%m-%d')

detla=countdown-now

day=detla.days

returnday

now=datctimc.datctime.todayO

print("\O33[O;31mToday")

print("\O33[O;31m{}年{}月{}R".forniat(now.year,now.month,now.day))

print("\O33[O;3Im距离:")

print。'\O33[O;34m北京冬奥会还有:"+str(countdown(now,,2022-2-4,))+"天")

单击工具栏中【保存】按钮,保存程序文件“5-2.py”.

3.运行Python程序

在PyCharm主窗口选择[Run]菜单,在弹出的下拉菜单中选择[Run]菜单项。

在弹出的[Run]对话框中选择“5-2”选项,程序“52py”开始运行。

程序5・2.py的运行结果为:

Today

2020年4月8日

距离:

东京奥运会还有:106天

北京冬奥会还有:666天

【任务5・3】定义函数计算总金额、优惠金颤和实付金额

【任务描述】

(1)在项FlUnit05创建Python程序文件5-3.py。

(2)定义函数计算总金额、优惠金额和实付金额。

【任务实施】

在PyCharm项目Uni:05中创建Python程序文件5-3.py。在程序文件5-3.py中编写程

序代码,实现所需功能。

defgetDiscountPrice(rank,price):

ifrank=="PLUS":

discountPrice=price*0.88

else:

ifrank==uFAN":

discountPrice=pricc*0.90

else:

discountPrice=price*0.92

returndiscountPrice

defgctDiscount(numbcr,price):

originallbta^nuiTiber+pnce

iforiginalTotal>=299:

discount15.00

returndiscount

defgetCashback(number,price):

originalTbtal=number*price

reduction=int(originalTotal/100)

ifreduction>0:

cashback=rsduclion*50

returncashback

defgetCarriage(payable):

#订单金额V49,收取基础运费6元:订单金额249,收取基础运费0元

ifpayable<49:

carriage=6.D0

else:

carriage=0.00

returncarriage

defprintData(*data):

print("总金额:¥'*+',(:.2f)".format(datarO]))

print(“运费:¥"+"{:.2f}".format(datallJ))

print("返现金额:-¥"+”{:.2f}”.format(data[2D)

print("优惠金额:-¥,,+"(:.2f}".format(data[3]l)

print("实付总额:¥"+,,{:.2f}".format(data[4]))

originalPrice=99.8()

number=4

originalTota^numbcr^originalPricc

rank="Ordinaryusers"

discountPrice=getDiscountPrice(rank,originalPrice)

discountAmount=number:,:discountPrice

discount=getDiscount(number,originalPrice)

cashback=getCashback(number,originalPrice)

discountTotal=discount+cashback

payablc=discountAmount-discountTotal

carriage=getCarriage(payable)

payable+=carriage

printData(discountAmoun(,carriage,cashback,discount,payable)

print("")

程序5-7.py的运行结果为:

总金额:¥367.26

运费:¥0.00

返现金额:-¥150.0。

优惠金额:-¥15.00

实付总额:¥202.26

【任务5・4】自定义函数应用多种方法对齐输出图书数据

【任务描述】

(1)在项目Unit05创建Python程序文件5-4.py。

(2)综合应用多种方法对齐输出图书数据。

【任务实施】

在PyChann项目Uni:05中创建Python程序文件5-4.py.在程序文件5-4.py中编写程

序代码,实现所需功能。

importdatetime

defgetSize(text):

iftype(text)!=str:

text=str(text)

lenText=len(text)#调用len函数计算字符串的字符数豉

lenTextUtf8=len(text.encode('UTF-8'))折十算字符串UTF-8编码的长度

ifIcnTcxt!=IcnTextUtfB:

size=int(lenTexl-(lenTextUtfB-lenText)/2)#计算字符中半角字符的数量

returnsize

else:

return0

defprintField(fieldName):

print("{0:{1}A6s)n.format(fieldName[0],chr(12288)),cnd="")#商品ID

print(H{0:{1}A20s)H.fbrmat(ficldNamc[ll,chr(12288)),cnd="")#图书名称

print("{0:{l>A14s)H.format(fieldName[2],chr(12288)),end="")#价格

print("{0:{l}A6s}".format(fieldName[3],chr(l2288)))#出版日期

defprintFonnatData(text,align,len):

iftype(text)==datetime.date:

text=datctime.datc.strftimc(tcxt,"%Y-%m-%d")

#0对应输出的字符串,1对应填空符,2对应对齐方式,3对应显示长度

print("{0:{1}{2}{3}}".format(text,chr(12288),alignJen),end=",^)

defprintBlankFill(text,endMark):

print("{0:<{I}s}".format(chr(32),str(getSize(text))),end=endMark)#chr(32)返回半角

空格

defprinlDala(bookData):

forrowinbookData:

printFormalData(row[0],"A'\"6dn)

printFormatData(row[l],"24s'1)

printBlankFill(row[l],"")

printFormatData(row[2],"A","8.2f)

printFormatData(rowl3],"A'\"12s")

printC")

fieldName=("商品ID”,“图书名称“,“价格“,“出版日期”)

#数据列表

bookData=[(1,"HTML5+CSS3移动Web开发实战”,58.00,”2019-5-1”),

(2J给Python点颜色青少年学编程”,59.80,-2019-9-1"),

(3JPPT设计从入门到精通”,79.00,“2019-1-1"),

]

printFicld(ficldNamc)

printData(bookData)

程序5-4.py的运行结果如图5-2所示。

口商品ID。口口口口口:□口口图书名称ZI口口口口口口口口口口口口匚价格口口口口口口口出版日期口

1HTML5+CSS3移动Web开发实战.1:I:□.!□58.001「2019-5-1JI

2给Python点颜色青少年学编程匚59.80K-I2019-9-1

3!.PPT设计从入门到精通IJI「匚匚口!」口”9.00:2.II2019-1-1JL!

图5-2程序5-8.py的运行结果

【任务5・5】编写程序自定义模块与函数格式输出商品信息

【任务描述】

(1)在项目Unit05创建Python程序文件5-5.py,

(2)自定义模块commonModult.py,在该模块中自定义函数printField。、

printFormatData()printBlankFill(),分别用「输出表格标题行、格式化输出商品信息,输

出填充空格。

(3)编写程序自定义模块与函数格式输出商品信息。

【任务实施】

1.创建模块文件commonModult.py

在项目文件夹PychamProjecl中创建模块文件commonModult.py,

在该模块中分别定义4个函数,名称分别为:getSize、printField、printFoimatData、

printBlankFillo

编写模块commonModult的程序代码。

importdatetime

defgctSizc(tcxt):

iflype(lext)!=str:

text=str(text)

lenText=len(text)#调用len函数计算字符串的字符数量

lenTextUtf8=len(text.encode('UTF-8'))#计算字符串UTF-8编码的长度

ifIcnTcxt!=IcnTextUtfB:

size=int(lenText-(lenTextUtf8-lenText)/2)#计算字符中半角字符的数量

returnsize

else:

return0

defprintField(fieldName):

printC(0:{l)A6s}".format(fieldName[0],chr(12288)),end='H')#商品ID

print("{0:{1}A20s}".forniat(fieklName[11,chr(12288)),end)#图书名称

print("{0:{1}A14s}".format(ficldNamc[2],chr(12288)),end="")#价格

print("{O:{l}A6s}".format(fieldName[3],chr(12288)))#出版日期

defprintFormatDa(a(text,align,len):

iftype(text)==datetinie.date:

text=da(etime.date.strftime(text,"%Y-%m-%d")

#0对应输出的字符串,1对应填充符,2对应对齐方式,3对应显示长度

print("{0:{1){2({3))".formatCtext,chr(12288),align,len),end="")

defprintBlankFill(tcxt,endMark):

print("{0:<{1}s}'\format(chr(32),str(getSize(text))),end=endMark)#chr(32)返回

半角空格

2.创建Python程序文件5-5.py

在PyCharm项目Uni:05中创建Python程序文件5-5.py。

在程序文件5-5.py中编写程序代码,实现所需功能。

fromcommonModuliimportprintFormatData,prinlBlankFill,printFicld

defprinlData(bookData):

forrowinbookData.

printFormatData(row[OJ,,,A';"6d")

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论