第十一天 第八章 实战

 一、大乐透号码生成器

以下代码在MyModular同级目录中,文件名为:demo.py

 

# 导入sys模块是python内置的
import sys
# 导入自定义模块所在的目录 路径为模块路径
sys.path.append(r"D:\Python\python0\python0")
# 导入模块
import MyModular
# Greatnumber=[]
print('大乐透号码生成器')
# 提示用户输入要随机大乐透的数量 并获取输入的内容
time=input('请输入要生成的大乐透号码注数:')
# 根据注数获取 大乐透号码
Greatnumber=MyModular.Great_lotto(int(time))
# 循环打印每个号码
for i in range(0,int(time)):
    # 打印的时候 根据格式 显示号码
    print('{} {} {} {} {}       {} {}'.format(Greatnumber[i][0],Greatnumber[i][1],Greatnumber[i][2],Greatnumber[i][3],Greatnumber[i][4],Greatnumber[i][5],Greatnumber[i][6]))

 

以下代码在MyModular文件夹中,文件名为:__init__.py

# 导入随机模块
import  random
# 大乐透号码生成
def Great_lotto(times):
  # 创建返回的号码空列表
  Greatnumber = []
  # 根据随机注释 循环
  for i in range(0,times):
    #创建空列表
    numbers = []
    # 创建数字为1到35的红色球列表
    roselist = list(range(1, 36))
    # 在红球列表中选取5个元素,生成红色球.
    numberred=random.sample(roselist, 5)
    # 创建数字为1到12的蓝色球列表
    bulelist=list(range(1,13))
    # 在蓝色球列表中 选取2个蓝色球,生成蓝色球
    numberbulle=random.sample(bulelist, 2)
    # 按照大小号排序 红球
    numberred.sort()
    # 按照大小号 排序蓝球
    numberbulle.sort()
    # 蓝球红球 组成随机的号码 列表
    numbers=numberred+numberbulle
    # 循环随机的号码
    for n in range(len(numbers)):
        # 判断号码是否<10
        if numbers[n]<10:
            # 当号码小于10的时候在数字前添加0
            numbers[n]='0'+str(numbers[n])
    # 添加到返回的号码列表中
    Greatnumber.append(numbers)
  # 返回得到的数据
  return Greatnumber

 

二、春节集五福

以下代码在JiFu同级目录中,文件名为:demo.py

# 导入sys模块是python内置的
import sys
# 导入自定义模块所在的目录 路径为模块路径
sys.path.append(r"D:\Python\python0\python0")
# 导入模块
import JiFu
print('开始集福啦~~~')
# 五福字典 保存拥有的五福数据
fu={'爱国福':0,'富强福':0,'和谐福':0,'友善福':0,'敬业福':0}
# 判断是否集齐五福
while  JiFu.five_blessings(fu)==0:
    # 没有集齐五福提示用户
    input('\n按下<Enter>键获取五福')
    # 获取福卡
    Strfu=JiFu.Ji_Fu()[0]
    # 提示用户获取的的五福卡
    print('获取到:' +Strfu)
    # 在五福字典中 为获取到的福卡加1
    fu[Strfu] += 1
    # 打印拥有的福卡
    JiFu.fus(fu)
print('\n恭喜您集成五福!!!')

以下代码在JiFu文件夹中,文件名为:__init__.py

# 导入随机模块
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='')
# 判断五福是否集齐方法 集齐返回1
def five_blessings(fu):
    # 拥于判断是否集齐的标识 1代表集齐
    type=1
    # 循环 福卡字典 判断副卡是否集齐
    for i, j in fu.items():
        # 当有副卡是0张的时候不能合成五福
        if j==0:
          #不能集成五福的时候返回0
          type=0
    # 返回 判断是否集齐标识
    return type;

 

三、封装用户的上网行为

以下代码在Net同级目录中,文件名为:demo.py

# 导入sys模块是python内置的
import sys
# 导入自定义模块所在的目录 路径为模块路径
sys.path.append(r"D:\Python\python0\python0")
# 导入税额模块
import Net
# 导入随机模块
import  random
# 上网用户
name='小明'
# 上网总时间
time=0;
print(name,'上网时间、行为统计:')
# 打印用户上网时间行为,返回上网时间
time += Net.net_play(1.5)
time += Net.Watch_videos( 2)
time += Net.Play_game( 3)
time += Net.Study(2)
# 根据上网时间超出8小时提示用户注意休息
Net.times(time)

以下代码在Net文件夹中,文件名为:__init__.py

# 浏览网页
def net_play(time):
  print('浏览网页',str(time)+'小时')
  return time
# 看视频
def Watch_videos(time):
    print( '看视频',str(time)+'小时')
    return time
# 网游戏
def Play_game(time):
    print('玩网络游戏',str(time)+'小时')
    return time
# 学习
def Study(time):
    print( '上网学习',str(time)+'小时')
    return time
# 计算上网时间,上网时间达到或者多余8小时给出提示
def times(time):
    if time>=8:
       print('今天上网时间共计'+str(time)+'小时,请保护眼睛,合理安排上网时间!')
    return time

四、计算个人所得税

以下代码在tax同级目录中,文件名为:demo.py

# 导入sys模块是python内置的
import sys
# 导入自定义模块所在的目录 路径为模块路径
sys.path.append(r"D:\Python\python0\python0")
# 导入税额模块
import tax
# 提示用户输入工资
monthMoney=int(input("请输入月收入:"))
# 通过税收计算模块计算税额 并打印
print("应纳个人所得税税额为%.2f" % tax.tax(monthMoney))

以下代码在tax文件夹中,文件名为:__init__.py

# 根据月收入计算税额
def tax(monthMoney):
    # 扣除标准
    # 最低工资额 3500往下不扣税
    ds = 3500
    # 三险一金上线
    threeInsurancesUp = 7662
    # 养老保险
    yangLao = monthMoney * 0.08
    # 医疗保险
    yiLiao = monthMoney * 0.02
    # 失业保险
    shiYe = monthMoney * 0.005
    # 住房公积金
    homeMoney = monthMoney * 0.12
    # 计算应扣除 的 三险一金
    threeInsurances = yangLao + yiLiao + shiYe + homeMoney
    # 判断是否超出三险一金 上线
    if threeInsurances > threeInsurancesUp:
        # 超出等于默认值
        threeInsurances = threeInsurancesUp
    # 应纳税所得额= 扣除三险一金  - 扣除最低月收入 的收入部分
    payable = monthMoney - threeInsurances - ds
    # 初始化应交税
    single = 0
    # 根据收入判断 不同级别收入 扣除不同的税
    if payable < 1500:
        single = payable * 0.03 - 0
    elif payable >= 1500 and payable < 4500:
        single = payable * 0.1 - 105
    elif payable >= 4500 and payable < 9000:
        single = payable * 0.2 - 555
    elif payable >= 9000 and payable < 35000:
        single = payable * 0.25 - 1005
    elif payable >= 35000 and payable < 55000:
        single = payable * 0.3 - 2002
    elif payable >= 55000 and payable < 80000:
        single = payable * 0.35 - 5505
    elif payable >= 80000:
        single = payable * 0.45 - 13505
    # 如果 计算的single等于负数 返回0 证明收入不满3500
    if single < 0:
        single = 0
    # 返回应交的个税
    return single

 

posted @ 2020-08-24 08:48  Zack6688  阅读(502)  评论(0编辑  收藏  举报