鱼C论坛

 找回密码
 立即注册
查看: 1367|回复: 7

解析纳税的过程

[复制链接]
发表于 2018-3-2 08:18:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
从3500开始纳税
超过部分中:
        不超过1500 税率为3%
   超过1500至4500税率10%
   超过4500至9000税率20%
   超过9000至35000税率25%
   超过35000至55000税率30%
   超过55000至80000税率35%
   假设没有五险一金,此税为递增税的话求编写程序写入税前工资时对应的税后工资

因为他们处在同一缩进所以当他条件允许了的时候tax+= 就不把之前的最大值给加上是吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-3-2 08:19:00 | 显示全部楼层
#coding:utf-8
salary = float(input("请输入您的工资>>>"))
#应纳税额
x = salary - 3500
#税额
tax = 0
#计算第一阶梯的税额
#1500 3%
if x>0:#4700-3500=1200
    if x<=1500:
        tax += x*0.03
    else:
        tax += 1500*0.03#这个阶最多应纳税
#计算第二阶梯
if x>1500:
    if x<=4500:
        tax += (x-1500)*0.1
    else:
        tax +=(4500-1500)*0.1
if x>4500:
    if x<=9000:
        tax += (x-4500)*0.2
    else:
        tax += (9000-4500)*0.2
if x>9000:
    if x<=35000:
        tax += (x-9000)*0.25
    else:
        tax += (35000-9000)*0.25  
if x>35000:
    if x<=55000:
        tax += (x-35000)*0.3
    else:
        tax += (55000-35000)*0.3
if x>55000:
    if x<=80000:
        tax += (x-55000)*0.35
    else:
        tax += (80000-55000)*0.35         
if x>80000:
    tax+=(x-80000)*0.45

print("您的收入是:",salary)
print("您应纳税:",tax)
print("税后您的收入是:",salary-tax)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 09:05:21 | 显示全部楼层
本帖最后由 alltolove 于 2018-3-2 09:10 编辑

这个程序我觉得用
if
elif
else
这样写比较好,程序解析的速度会快点
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 09:12:39 | 显示全部楼层
写个不用if的
  1. #coding:utf-8
  2. salary = float(input("请输入您的工资>>>"))
  3. x = salary - 3500
  4. tax = max(0, x) * 0.03 + \
  5.       max(0, x - 1500) * 0.07 + \
  6.       max(0, x - 4500) * 0.10 + \
  7.       max(0, x - 9000) * 0.05 + \
  8.       max(0, x - 35000) * 0.05 + \
  9.       max(0, x - 55000) * 0.05 + \
  10.       max(0, x - 80000) * 0.10
  11. print("您的收入是:",salary)
  12. print("您应纳税:",tax)
  13. print("税后您的收入是:",salary-tax)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-3-2 09:18:14 | 显示全部楼层
  1. incoming_tax = {
  2.         (0,1500) : 0.03,
  3.         (1500,4500) : 0.1,
  4.         (4500,9000) : 0.2,
  5.         (9000,35000) : 0.25,
  6.         (35000,55000) : 0.3,
  7.         (55000,80000) : 0.35
  8. }
  9. incoming = int(input("Input your incoming:"))
  10. for_tax = incoming - 3500
  11. if for_tax < 0:
  12.         print("No need to tax")
  13. else:
  14.         total_tax = 0
  15.         while for_tax > 0:
  16.                 for tax in incoming_tax:
  17.                         if tax[0]<for_tax<=tax[1]:
  18.                                 tmp = for_tax - tax[0]
  19.                                 for_tax = tax[0]
  20.                                 total_tax += tmp*incoming_tax[tax]
  21.                                 break
  22.         print("Your incoming: %d needs to pay %.2f for tax" % (incoming, total_tax))
复制代码

代码要简洁易懂,尽量减少用if,看着累,修改也不方便。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-2 18:36:12 From FishC Mobile | 显示全部楼层
jerryxjr1220 发表于 2018-3-2 09:18
代码要简洁易懂,尽量减少用if,看着累,修改也不方便。

没学到这里不会使用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-2 18:37:48 From FishC Mobile | 显示全部楼层
冬雪雪冬 发表于 2018-3-2 09:12
写个不用if的

我想问的事,因为同一缩进所以所有程序从上往底下一次想加么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 19:56:04 | 显示全部楼层
无情老兔兔 发表于 2018-3-2 18:37
我想问的事,因为同一缩进所以所有程序从上往底下一次想加么

是的,本来可以写在一行,为了看的清楚,分成几行写了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-28 06:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表