一、实验题目
Python第八章实例和实战作业
二、实验目的和要求
1.熟悉Pycharm的运行环境
2.学习并掌握Python模块的运用
三、主要仪器设备
联想小新air15
硬件:AMD R7 5700U
软件:Windows11操作系统
四、实验内容
完成第八章实例01-04,8.6实战
利用Pycharm完成Python实验报告
实例01:创建计算BMI指数的模块
代码如下:
(1)创建一个用于根据身高、体重计算BMI指数的模块
1 def fun_bmi(person,height,weight): 2 '''功能:根据身高和体重计算bmi指数 3 person:姓名 4 height:身高,单位:米 5 weight:体重,单位:千克 6 ''' 7 print(person + "的身高" + str(height) + "米 \t 体重:" + str(weight) + "千克") 8 bmi = weight/(height*height) 9 print(person + "的BMI指数为:" + str(bmi)) #输出BMI指数 10 # 判断身材是否合理 11 if bmi < 18.5: 12 print("您的体重过轻 ~@_@~\n") 13 if bmi >= 18.5 and bmi <= 24.9: 14 print("正常范围,注意保持 (-_-)\n") 15 if bmi >= 24.9 and bmi < 29.9: 16 print("您的体重过重 ~@_@~\n") 17 if bmi >= 29.9: 18 print("肥胖 ^@_@^\n") 19 def fun_bmi_upgrade(*person): 20 '''功能:根据身高、体重计算BMI指数(升级版) 21 *person:可变参数该参数中需要传递带3个元素的列表, 22 分别为姓名、身高(单位:米)和体重(单位:千克) 23 ''' 24 for list_person in person: 25 for item in list_person: 26 person = item[0] # 姓名 27 height = item[1] # 身高(单位:米) 28 weight = item[2] # 体重(单位:千克) 29 print("\n" + "=" * 13, person, "=" * 13) 30 print("身高:" + str(height) + "米 \t 体重:" + str(weight) + "千克") 31 bmi = weight / (height * height) 32 print("您的BMI指数为:" + str(bmi)) # 输出BMI指数 33 # 判断身材是否合理 34 if bmi < 18.5: 35 print("您的体重过轻 ~@_@~\n") 36 if bmi >= 18.5 and bmi <= 24.9: 37 print("正常范围,注意保持 (-_-)\n") 38 if bmi >= 24.9 and bmi < 29.9: 39 print("您的体重过重 ~@_@~\n") 40 if bmi >= 29.9: 41 print("肥胖 ^@_@^\n")
(2)创建一个名称为main.py的文件
1 import bmi #导入bmi模块 2 bmi.fun_bmi("尹一伊",1.75,120) #执行模块中的fun_bmi()函数
代码运算结果如下:
实例02:导入两个包括同名函数的模块
代码如下:
(1)创建矩形模块
1 def girth(width,height): 2 '''功能:计算周长 3 参数:width(宽度)、height(高度) 4 ''' 5 return (width + height) * 2 6 def area(width,height): 7 '''功能:计算周长 8 参数:width(宽度)、height(高度) 9 ''' 10 return width * height 11 if __name__ =='__main__': 12 print(area(10,20))
(2)创建圆形模块
1 import math #导入标准模块math 2 PI = math.pi #圆周率 3 def girth(r): 4 '''功能:计算周长 5 参数:r(半径) 6 ''' 7 return round(2 * PI * r, 2) #计算周长并保留两位小数 8 def area(r): 9 '''功能:计算面积 10 参数:r(半径) 11 ''' 12 return round(PI * r * r ,2) #计算面积并保留两位小数 13 if __name__ =='__main__': 14 print(girth(10))
(3)创建一个名称为compute.py的文件
1 import rectangle as r #导入矩形模块 2 import circular as c #导入圆形模块 3 if __name__ == '__main__': 4 print("圆形的周长为:",c.girth(10)) #调用计算圆形周长的函数 5 print("矩形的周长为:",r.girth(10,20)) #调用计算矩形周长的函数
代码运行结果如下:
实例03:在指定包中创建通用的设置和获取尺寸的模块
代码如下:
(1)在settings包中,创建一个名称为size的模块
1 _width = 800 #定义保护类型的全局变量(宽度) 2 _height = 600 #定义保护类型的全局变量(高度) 3 def change(w,h): 4 global _width #全局变量(宽度) 5 _width = w #重新给宽度赋值 6 global _height #全局变量(高度) 7 _height = h #重新给高度赋值 8 def getWidth(): #获取宽度的函数 9 global _width 10 return _width 11 def getHeight(): #获取高度的函数 12 global _height 13 return _height
(2)在settings包的上一层目录中创建一个名称为main.py的文件
1 from settings.size import * #导入size模块下的全部定义 2 if __name__ =='__main__': 3 change(1024,768) #调用change()函数改变尺寸 4 print('宽度:',getWidth()) #输出宽度 5 print('高度:',getHeight()) #输出高度
代码运行结果如下:
实例04:生成由数字、字母组成的4位验证码
代码如下:
1 #----------实例04:生成由数字、字母组成的4位验证码----------# 2 import random 3 if __name__ =='__main__': 4 checkcode = '' 5 for i in range(4): 6 index = random.randrange(0,4) 7 if index != i and index + 1 != i: 8 checkcode += chr(random.randint(97,122)) 9 elif index + 1 == i: 10 checkcode += chr(random.randint(65,90)) 11 else: 12 checkcode += str(random.randint(1,9)) 13 print("验证码:",checkcode)
代码运行结果如下:
实战一:大乐透号码生成器
代码如下:
1 #-----------实战一:大乐透号码生成器----------# 2 from random import sample 3 def number(): 4 front = sample([str(i) for i in range(1,36)],5) 5 back = sample([str(i) for i in range(1,13)],2) 6 space = [" "*6] 7 group = front + space + back 8 for i in group: 9 print(i.zfill(2),end=" ") 10 print("大乐透号码生成器") 11 while True: 12 amount = int(input("请输入要生成的大乐透号码注数:")) 13 for i in range(amount): 14 number() 15 print("") 16 print("") 17 break
代码运行结果如下:
实战二:春节集五福
代码如下:
1 #----------实战二:春节集五福----------# 2 import random 3 #抽五福的方法 4 def JiWuFu(): 5 wufu = ['爱国福','富强福','和谐福','友善福','敬业福'] 6 fuka = random.sample(wufu,1) 7 return fuka 8 #打印当前拥有的所有福 9 def wufu(fuka): 10 print("当前拥有的福:") 11 for i,j in fuka.items(): 12 print(i,':',j,'\t',end = '') 13 #判断是否集齐五福 14 def wufu_ready(fuka): 15 flag = 1 16 for i,j in fuka.items(): 17 if j==0: 18 flag = 0 19 return flag 20 print('开始集福啦~~~') 21 fuka = {'爱国福':0,'富强福':0,'和谐福':0,'友善福':0,'敬业福':0} 22 count = 0 23 while wufu_ready(fuka) == 0: 24 input("\n按下<enter>键获取福卡") 25 StrFu = JiWuFu()[0] 26 print('获取了:',StrFu) 27 fuka[StrFu] += 1 28 wufu(fuka) 29 wufu_ready(fuka) 30 count += 1 31 print("\n***五福已经集齐,真是有福之人***") 32 print("一共集福",count,'次')
代码运行结果如下:
实战三:封装用户的上网行为
代码如下:
1 #----------实战三:封装用户的上网行为----------# 2 def web(time): 3 print("浏览网页:" + str(time) + "小时;") 4 return time 5 def video(time): 6 print("看视频:" + str(time) + "小时;") 7 return time 8 def playgame(time): 9 print("玩网络游戏:" + str(time) + "小时;") 10 return time 11 def study(time): 12 print("上网学习:" + str(time) + "小时;") 13 return time 14 def total(time): 15 print('今天上网共计:' +str(time) + "小时;",end = ' ' ) 16 if time >= 8: 17 print("请保护眼睛,合理安排上网时间!") 18 else: 19 print("比较合理,但也要注意休息!") 20 name ='小明' 21 print(name,"上网时间、行为统计:") 22 t1 = web(1.5) 23 t2 = video(2) 24 t3 = playgame(3) 25 t4 = study(2) 26 time =t1 + t2 + t3 + t4 27 total(time)
代码运行结果如下:
实战四:计算个人所得税
代码如下:
1 #----------实战四:计算个人所得税----------# 2 def tax(money): 3 low = 3500 4 baoxian = 7662 5 yanglao = money * 0.08 6 yiliao = money * 0.02 7 shiye = money * 0.005 8 gongjijin = money * 0.12 9 summoney = yanglao + yiliao +shiye +gongjijin 10 if summoney >= 7662: 11 summoney = 7662 12 lastmoney = money - summoney - low 13 if lastmoney <= 0: 14 taxes = 0 15 elif 0 < lastmoney < 1500: 16 taxes = lastmoney * 0.03 17 elif 1500 <= lastmoney <= 4500: 18 taxes = lastmoney * 0.1 - 105 19 elif 4500 <= lastmoney < 9000: 20 taxes = lastmoney * 0.2 - 555 21 elif 9000 <= lastmoney < 35000: 22 taxes = lastmoney * 0.25 - 1005 23 elif 35000 <= lastmoney < 55000: 24 taxes = lastmoney * 0.3 - 2002 25 elif 55000 <= lastmoney < 80000: 26 taxes = lastmoney * 0.35 - 5505 27 elif 80000 <= lastmoney: 28 taxes = lastmoney * 0.45 - 13505 29 return taxes 30 31 m = float(input("请输入月收入:")) 32 taxes = tax(m) 33 print('您应征个人所得税金额为:{:.2f}'.format(taxes))
代码运行结果如下:
标签:__,Python,bmi,第八章,height,time,print,实验报告,def From: https://www.cnblogs.com/Shing-gyl/p/16908370.html