首页 > 其他分享 >第八章 模块

第八章 模块

时间:2022-12-03 10:35:47浏览次数:39  
标签:__ fu 第八章 模块 time print def

实例01:创建计算BMi指数的模块

   创建一个用于根据身高、体重计算BMI 指数的模块,命名为 bmi.py,其中 bmi为模块名,.py为扩展名。

 

代码如下:

def fun_bmi(person, height,weight) :
    '''功能:根据身高和体重计算BMI指数'''
    print(person +"的身高: " + str(height)+ "米\t体重: " + str(weight)+
          "千克")
    bmi=weight/ ( height*height)

def fun_bmi_upgrade(*person) :
#功能:根据身高和体重计算BMI指数(升级版)
# 此处省略了函数主体代码

 

 

 

实例02:导入两个包括同名函数的模块

   创建两个模块,一个是矩形模块,其中包括计算矩形周长和面积的函数;另一个是圆形,其中包括计算圆形周长和面积的函数。然后在另一个Python文件中导入这两个模块,并调用相应的函数计算周长和面积。

 

代码如下:

#rectangle.py
def girth(width, height):
    return (width + height) * 2


def area(width, height):
    return width * heightif


if __name__ == '__main__':
    print(area(10, 20))
#circular.py
import math
PI = math.pi
def girth(r):
    return round(2*PI*r, 2)

def area(r):
    return round(PI*r*r, 2)

if __name__ == '__main__':
    print(girth(10))
#compute.py
import rectangle as r
import circular as c
if __name__ == '__main__':
    print("圆形的周长为: ", c.girth(10))
    print("矩形的周长为: ", r.girth(10, 20))

 

 运行结果如下:

 

 

 

 

 

 

 

实例03:在指定包中创建通用的设置和获取尺寸的模块

  创建一个名称为settings的包,在该包下创建一个名称为size的模块,通过该模块实现设置和获取尺寸的通用功能。(1)在 settings包中,创建一个名称为size的模块,在该模块中,定义两个保护类型的全局变量,分别代表宽度和高度,然后定义一个change()函数,用于修改两个全局变量的值,再定义两个函数,分别用于获取宽度和高度。(2)在settings包的上一层目录中创建一个名称为main.py的文件,在该文件中导入.settings包下的size模块的全部定义,并且调用change()函数重新设置宽度和高度,然后再分别调用getWidth()和getHeight()函数获取修改后的宽度和高度。

 

 

代码如下:

#size.py
_width = 800
_height = 600
def change(w,h):
    global _width
    _width = w
    global _height
    _height = h

def getwidth():
    global _width
    return _width

def getHeight():
    global _height
    return _height
#main.py
from settings.size import *

if __name__ =='__main__':
    change(1024, 768)
    print('宽度: ', getwidth())
    print('高度: ', getHeight())

 

 

 运行结果如下:

 

 

 

 

 

 

 

实例04:生成由数字、字母组成的4位验证码

  在IDLE中创建一个名称为checkcode.py的文件,然后在该文件中导入 Python标准模块中的random模块(用于生成随机数),然后定义一个保仔验让码的受里,世片 1o书饮A乎书的哈证码,最后输出在该循环中,调用random模块提供的randrange()和 randint()方法生成符合要求的验证码,最后输出生成的验证码。

 

代码如下:

import random
checkcode = ""
for i in range(4):
    index = random.randrange(0, 4)
    if index != i and index + 1 != i:
        checkcode += chr(random.randint(97, 122))  # 生成a~z中的一个小写字母
    elif index + 1 == i:
        checkcode += chr(random.randint(65, 90))  # 生成A~Z中的一个大写字母
    else:
        checkcode += str(random.randint(1, 9))
print("验证码:", checkcode)

 

 

 运行结果如下:

 

 

 

 

 

 

 

 

 

 

实战一:大乐透号码生成器

  使用Random模块模拟大乐透号码生成器。选号规则为:前区在1~35的范围内随机产生不重复的5个号码,后区在1~12的范围内随机产生不重复的2个号码。效果如图8.18所示。

 

 

 

 

代码如下:

import random
def number():
    a=[random.randint(1,35) for i in range(5)]
    list1=[]
    for i in a:
        if i not in list1:
            list1.append(i)
        else:
            i=random.randint(1,35)
            list1.append(i)
        list1.sort()
    a=[str(i) for i in list1]
    b=[random.randint(1,12) for i in range(2)]
    o=[]
    for i in b:
        if i not in o:
            o.append(i)
        else:
            i=random.randint(1,12)
            o.append(i)
        o.sort()
    b=[str(i) for i in o]
    c=[" "*5]
    for i in range(5):
        if len(a[i])==2:
            for j in range(2):
                if len(b[j])==2:
                    pass
                else:
                    b[j]='0'+b[j]
        else:
            a[i]='0'+a[i]
    g=a+c+b
    for i in g:
        print(i,end=" ")
print("大乐透号码生成器")
k=int(input("请输入要生成的大乐透号码注数:"))
for i in range(k):
    number()
    print("")

 

 

 

 运行结果如下:

 

 

 

实战二:春节集五福

  最近两年流行春节集五福活动。现编程实现模拟春节集五福的过程。效果如图8.19所示。

 

 

代码如下:

 

import random
# 抽五福的方法
def Ji_fu():
    fus = ['爱国福', '富强福', '和谐福', '友善福', '敬业福']
    fu = random.sample(fus, 1)
    return fu

# 打印当前拥有的所有福
def fus(fu):
    print('当前拥有的福:')
    # 字典的键值对遍历方法 打印福卡
    for i, j in fu.items():
        print(i, ':', j, '\t', end='')
# 判断是否集齐五福
def fu_ready(fu):
    # 设置一个集齐的标识flag,等于1表示集齐了
    flag = 1
    for i,j in fu.items():
        if j == 0:     # 有一个福卡的数量为0
            flag = 0   # 标识为0,可以继续集福
    return flag
print('开始集福了…………')
# 定义一个五福字典 保存用户的福卡
fu = {'爱国福': 0, '富强福': 0, '和谐福': 0, '友善福': 0, '敬业福': 0}
# 用一个while语句循环获取五福,直到集齐为止
count = 0   # 设置一个计数器,记录集福的次数
while fu_ready(fu) == 0:  # 集齐标识为0
    input("\n按下<enter>键获取福卡:")
    getfu = Ji_fu()[0]    # 进行抽卡
    print('获取了:', getfu)
    fu[getfu] += 1             # 将抽到的卡加入五福字典,相应数量+1
    fus(fu)               # 调用方法打印当前拥有的五福
    fu_ready(fu)          # 调用方法判断是否集齐
    count +=1
print("\n***五福已经集齐,真是有福之人***")
print("一共集福",count,'次')

 

 

 运行结果如下:

 

 

 

 

 

 

 

实战三:封装用户的上网行为

  当下很多人都会用一定的时间上网。现编程实现封装用户的上网行为,对用户的上网时间进行统计,当上网时间过长时,给出提示。效果如图8.20所示。

 

 

 

代码如下:

# 网页浏览时间统计
def web(time):
    print("浏览网页:"+str(time)+"小时;")
    return time
# 看视频时间统计
def video(time):
    print("看视频:"+str(time)+"小时;")
    return time
# 玩网络游戏时间统计
def playgame(time):
    print("玩网络游戏:"+str(time)+"小时;")
    return time
# 上网学习时间统计
def study(time):
    print("上网学习:"+str(time)+"小时。")
    return time
# 合计上网时间统计
def total(time):
    print('今天上网时间共计:'+str(time)+"小时,",end=' ')
    if time >= 8:
        print("请保护眼睛,合理安排上网时间!")
    else:
        print("比较合理,但也要注意休息!")


name = '小明'
print(name, '上网时间、行为统计……')
t1 = web(1.5)
t2 = video(2)
t3 = playgame(3)
t4 = study(2)
time = t1 + t2 + t3 + t4
total(time)

 

 

 运行结果如下:

 

 

 

 

 

 

实战四:计算个人所得税

  编写一个计算个人所得税的程序,随时掌握自己的工资需要缴纳多少个人所得税。效果如图8.21所示。

 

 

代码如下:

# 根据月收入算个税模块
def tax(monthmoney):
    # 最低起征点3500
    ds = 3500
    baoxian = 7662
    # 养老保险
    yanglao = monthmoney * 0.08
    # 医疗保险
    yiliao = monthmoney * 0.02
    # 失业保险
    shiye = monthmoney * 0.005
    # 公积金
    housem = monthmoney * 0.12
    # 计算三险一金总额,如超过上限按上限算
    demoney = yanglao + yiliao + shiye + housem
    if demoney >= 7662:
        demoney = 7662
    # 计算应征税额
    lastmoney = monthmoney - demoney - ds
    # 按不同档次征税,定义税额taxes
    if lastmoney <= 0:
        taxes = 0
    elif 0< lastmoney < 1500:
        taxes = lastmoney * 0.03
    elif 1500 <= lastmoney < 4500:
        taxes = lastmoney * 0.1 - 105
    elif 4500 <= lastmoney < 9000:
        taxes = lastmoney * 0.2 - 555
    elif 9000 <= lastmoney < 35000:
        taxes = lastmoney * 0.25 - 1005
    elif 35000 <= lastmoney < 55000:
        taxes = lastmoney * 0.3 - 2002
    elif 55000 <= lastmoney < 80000:
        taxes = lastmoney * 0.35 - 5505
    elif 80000 <= lastmoney:
        taxes = lastmoney * 0.45 - 13505
    # if lastmoney < 0:
    #     taxes = 0
    return taxes


m = float(input("请输入您的月收入总额:"))
taxes = tax(m)
print('您应征个人所得税金额为:{:.2f} 元'.format(taxes))

 

 

 

 运行结果如下:

 

 

标签:__,fu,第八章,模块,time,print,def
From: https://www.cnblogs.com/diana77/p/16920595.html

相关文章

  • 组件化与模块化
    单文件组件创建项目在cmd输入npminitvite-appvue3_demovue3_demo是文件夹名(项目名)在vscode中打开,开发项目写代码都在src目录下面写再进入项目中下载依赖npmi......
  • SpringBoot Maven多模块项目 mapper.xml 文件扫描不到问题
    项目使用的是SpringBoot+MybatisPlus,maven多模块项目,其中有多个模块的resource下面有Mapper.xml文件。这点是问题的前提。。。。。在配置文件里面也指定了mybatis-plus......
  • 学习心得 | 温度检测工程模块划分总结与案例分析
    很多朋友在学习FPGA的时候会发现模块划分很令人头大,今天我就通过明德扬温度检测工程来与大家分享一下本人的划分思路。明德扬温度检测工程是基于FPGA的一个实用项目,可以在明......
  • 什么是SFP光模块?光模块知识介绍!
    光模块(opticalmodule)由光电子器件、功能电路和光接口等组成,光电子器件包括发射和接收两部分。简单的说,光模块的作用就是光电转换,发送端把电信号转换成光信号,通过光纤传送......
  • 光模块的正确安装方法和使用须知
    光模块(opticalmodule)由光电子器件、功能电路和光接口等组成,光电子器件包括发射和接收两部分。简单的说,光模块的作用就是光电转换,发送端把电信号转换成光信号,通过光纤传送......
  • 河北稳控科技VM系列振弦采集模块全频段扫频
    河北稳控科技VM系列振弦采集模块全频段扫频根据起始频率与终止频率范围,频率由低向高向传感器发送渐进的扫频激励信号,直到传感器产生共振并返回共振电流信号。在输出激励信......
  • 模块化开发RequireJS之shim配置
    模块化开发RequireJS之shim配置weixin_33971130于 2017-12-0711:31:00 发布185 收藏 1文章标签: javascript ViewUI 一、shimrequirejs使用AMD......
  • gatk中的 GenomicsDBImport 模块
     官网:https://gatk.broadinstitute.org/hc/en-us/articles/5358869876891-GenomicsDBImport 001、一般用法,变异检测库gatk--java-options"-Xmx4g-Xms4g"Genomic......
  • ES6模块化语法规范
    3种方式导入语法导出语法作用注意事项es6基础语法-按需导入 import{接收名,接收名,...}from'模块'           另外一种方式  ......
  • kotlin和java混合开发项目,多模块,分模块开发,分module,组件化开发
    #picture_dx#欢迎能来到这里客服机器人美洽第三方完美接入魔窗 该demo用了组件化为什么要组件化近年来,为什么这么多团队要进行组件化实践呢?组件化究竟能给我们的工程、代......