首页 > 编程语言 >Python第八章

Python第八章

时间:2022-12-29 12:11:28浏览次数:39  
标签:fu Python random 第八章 height 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 * height


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))

运行结果:

 

 

 

 

实例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

运行结果:

 

 

 

 

实例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)

运行结果:

 

 

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

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("")

结果:

 

 

 

实战二:春节集五福

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,'次')

运行结果:

 

 

 

 

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

# 网页浏览时间统计
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)

运行结果:

 

 

 

实战四:计算个人所得税

# 根据月收入算个税模块
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,Python,random,第八章,height,time,print,def
From: https://www.cnblogs.com/zhuangzhuang123/p/17012139.html

相关文章

  • KG4Py:Python代码知识图谱和语义搜索的工具包
    如何构建Python的代码知识图谱,又该如何进行搜索呢?现在的项目程序中存在着大量重复的代码片段,尤其是在软件开发的时候。在本文中,我们提出了一个工具包(KG4Py),用于在GitHub存储......
  • Python 强大的模式匹配工具—Pampy
      https://pypi.org/project/pampy/  santinic/pampy:Pampy:ThePatternMatchingforPythonyoualwaysdreamedof.(github.com) Allthethingsyouca......
  • 【一】python学习——编码及基础
    1、编码#!/usr/bin/python#-*-coding:UTF-8-*-2、文件#打开一个文件fo=open("foo.txt","w")print"文件名:",fo.name#关闭打开的文件fo.close()......
  • Python_用pypinyin将中文名转化为英文名
    1.在处理数据的时候,很多时候采用的都是英文名的方式,避免遇到一些中文转义错误,这里用pypinyin来进行转化。2.总结大佬经验和自己的积累,目前有两种写法。3.方式:(前提,pypinyi......
  • Python图像处理丨详解图像去雾处理方法
    摘要:本文主要讲解ACE去雾算法、暗通道先验去雾算法以及雾化生成算法。本文分享自华为云社区《[Python图像处理]三十.图像预处理之图像去雾详解(ACE算法和暗通道先验去雾算......
  • 【编程实践】利用 Python 调用图灵机器人 API 实现实时语音聊天及自动回复
    前言什么是图灵机器人在人工智能技术飞速发展的今天,很多以前科幻电影里面的高科技都已经变为现实,而且充斥着我们生活的方方面面,比如说机器人,说说话就能把很多时办了。生......
  • Python进阶—Pandas
    Pandas再来一次文章目录​​一、Series和DataFrame​​​​二、选择数据​​​​三、赋值及操作(增、删、改)​​​​四、处理丢失数据​​​​五、读取并写入文件​​​​......
  • Python进阶—Numpy
    Numpy再来一遍文章目录​​一、Numpy的属性​​​​二、创建array​​​​三、Numpy的运算​​​​四、随机数生成及矩阵的统计​​​​五、Numpy索引​​​​六、合并​......
  • Python学习笔记--高阶技巧(二)
    Socket服务端开发基本步骤如下:socket客户端开发基本步骤如下:1、创建socket对象2、连接到服务器3、发送消息4、接收返回消息5、关闭连接正则表达式基础方法......
  • PYTHON用时变马尔可夫区制转换(MARKOV REGIME SWITCHING)自回归模型分析经济时间序列|附
    全文下载链接:http://tecdat.cn/?p=22617最近我们被客户要求撰写关于MRS的研究报告,包括一些图形和统计输出。本文提供了一个在统计模型中使用马可夫转换模型模型的例子,来......