鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 2

  [复制链接]
发表于 2018-3-24 00:07:45 | 显示全部楼层
jiexian = [0,100000,200000,400000,600000,1000000]
ticheng = [0.1,0.075,0.05,0.03,0.015,0.01]
temp = float(input("输入当月利润:"))
money = 0
suyin = len(ticheng)
for i in range(suyin):
    if temp>jiexian[-(i+1)]:
        money += (temp-jiexian[-(i+1)])*ticheng[-(i+1)]
        temp = jiexian[-(i+1)]
print(money)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-29 16:59:56 | 显示全部楼层
参考大家的写法,也贴一下

def profitInput():
    try:
        profit = float(input('请输入利润(单位为元,精确到小数点后两位,输入0退出):'))
        return profit
    except:
        print('输入有误,请重新输入')
        return profitInput()

def pushMoneyFunc():
    myProfit = profitInput()
    if myProfit <= 100000:
        return myProfit * 0.1
    elif myProfit <= 200000:
        return 100000 * 0.1 +(myProfit-100000) * 0.075
    elif myProfit <= 400000:
        return 100000 * 0.1 + 100000 * 0.075 + (myProfit-200000) * 0.05
    elif myProfit <= 600000:
        return 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (myProfit-400000) * 0.03
    elif myProfit <= 1000000:
        return 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (myProfit-60000) * 0.015
    else:
        return 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (myProfit - 1000000) * 0.01

while True:
    pushMoney = pushMoneyFunc()
    if pushMoney == 0:
        break
    else:
        print(pushMoney)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-30 19:09:47 | 显示全部楼层
我的
def profits(money):
    list=[(100,0.01),(60,0.015),(40,0.03),(20,0.05),(10,0.075),(0,0.1)]
    n=0
    for x,y in list:
        if money>x:
            n=n+(money-x)*y
            money=x
    return n

我师傅改造成递归

def jjj(n):
    list=[(100,0.01),(60,0.015),(40,0.03),(20,0.05),(10,0.075),(0,0.1)]
    if n==0:
        return 0
    for x,y in list:
        if n>x:
            s=(n-x)*y+jjj(x)
            break
    return s
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 23:28:37 | 显示全部楼层
  1. '''
  2. 企业发放的奖金根据利润提成。
  3. 利润(I)低于或等于10万元时,奖金可提10%;
  4. 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
  5. 20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;
  6. 60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,
  7. 从键盘输入当月利润I,求应发放奖金总数?
  8. '''
  9. def bonus0_10(i):
  10.     return i*0.1
  11. def bonus10_20(i):
  12.     return bonus0_10(100000)+(i-100000)*0.075
  13. def bonus20_40(i):
  14.     return bonus10_20(200000)+(i-200000)*0.05
  15. def bonus40_60(i):
  16.     return bonus20_40(400000)+(i-400000)*0.03
  17. def bonus60_100(i):
  18.     return bonus40_60(600000)+(i-600000)*0.015
  19. def bonus100_(i):
  20.     return bonus60_100(1000000)+(i-1000000)*0.01

  21. def count_bonus(i):
  22.     if i<=100000:
  23.         return bonus0_10
  24.     elif i<=200000:
  25.         return bonus10_20
  26.     elif i<=400000:
  27.         return bonus20_40
  28.     elif i<=600000:
  29.         return bonus40_60
  30.     elif i<=1000000:
  31.         return bonus60_100
  32.     else:
  33.         return bonus100_

  34. if __name__=='__main__':
  35.     i=int(input('请输入当月的利润额:\n'))
  36.     print("当月奖金为:%0.2f元。"% count_bonus(i)(i))
  37.         
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-15 13:56:56 | 显示全部楼层
def my_profit(i):
    if i>0 and i<=10:
        return(i+i*0.1)
        if i>10 and i<=20:
            return((i-10)*0.075+10*0.1)
            if i>20 and i<=40:
                return((i-20)*0.05+10*0.1+10*0.075)
                if i>40 and i<=60:
                   return((i-40)*0.03+10*0.1+10*0.075+20*0.05)
                   if i>60 and i<=100:
                       return((i-60)*0.015+20*0.03+10*0.1+10*0.075+20*0.05)
    else:
        print((i-100)*0.01+40*0.015+20*0.03+10*0.1+10*0.075+20*0.05)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-18 18:33:30 | 显示全部楼层
profit = int(input('请输入企业利润(单位:万元):'))
if profit <= 10:
    award = profit * 0.1
elif profit <= 20:
    award = (10 * 0.1) + (profit - 10) * 0.075
elif profit <= 40:
    award = (10 * (0.1 + 0.075)) + (profit - 20) * 0.05
elif profit <= 60:
    award = (10 * 0.1) + (10 * 0.075) + (10 * 0.05) + (profit - 40) * 0.03
elif profit <= 100:
    award = (10 * 0.1) + (10 * 0.075) + (10 * 0.05) + (10 * 0.03) + (profit - 60) *0.015
else:
    award = (10 * 0.1) + (10 * 0.075) + (10 * 0.05) + (10 * 0.03) + (10 *0.015) + (profit - 100) * 0.01
print('奖金是:',award)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-19 11:52:41 | 显示全部楼层
#b-bonus,为奖金;p-profit,为利润
b = 0
p = input("请输入本月利润额:(单位为万元!)")
p = float(p)

if 0 < p <= 10:
    b = p*0.1
if 10 < p <= 20:
    b = 10*0.1 + (p-10)*0.075
if 20 < p <= 40:
    b = 10 * 0.1 + 10 *0.075 + (p-20)* 0.05
if 40 < p <= 60:
    b = 10 *0.1 + 10 * 0.075 + 20 * 0.05 + (p - 40) *0.03
if 60 < p <= 100:
    b = 10 * 0.1 + 10 *0.075 + 20*0.05 + 20 *0.03 + (p - 60) * 0.015
if p > 100:
    b = 10 * 0.1 + 10 * 0.075 + 20*0.05 + 20 *0.03 + 40 *0.015 + (p-100)*0.01

print("当月应得奖金为%s 万元." %(b))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-8 17:23:54 | 显示全部楼层
i = int(input("净利润:"))
arr = [1000000,600000,400000,200000,100000,0]
rat = [0.01,0.015,0.03,0.05,0.075,0.1]
r = 0
k = 0
for n in range (0,6):
    if i > arr[n]:
        r+=(i-arr[n])*rat[n]
        k+=1
        print((arr[6-n]),"档: ",(i-arr[6-n])*rat[6-n])
        m = arr[n]
print ("奖金总计:",r)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-12 20:13:22 | 显示全部楼层
I=int(input('利润为:'))
if I<=0:
    print('啊哦,扣你钱~~')
elif I<=100000:
    print( I*0.1)
elif 100000<I<=200000:
    print( (I-100000)*0.075+10000)
elif 200000<I<=400000:
    print( 17500+(I-200000)*0.05)
elif 400000<I<=600000:
    print( 27500*0.05+(I-400000)*0.03)
elif 600000<I<=1000000:
    print( 33500+(I-600000)*0.015)
else:
    print( 39500+(I-1000000)*0.01)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-3 10:54:17 | 显示全部楼层
c=input("请输入当月利润(元):")
i=int(c)
if i<=100000:
         salary=i*0.1
elif  100000<i<=200000:
         salary=10000+(i-100000)*0.075
elif 200000<i<=400000:
         salary=10000+7500+(i-20000)*0.05
elif 400000<i<=600000:
         salary=10000+7500+10000+(i-40000)*0.03
elif 600000<i<=1000000:
         salary=10000+7500+10000+6000+(i-60000)*0.015
else:
         salary=10000+7500+10000+6000+6000+(i-1000000)*0.01
print(salary)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-11 21:22:37 | 显示全部楼层
I = int(input('请输入本月利润:'))
if I <= 100000:
    bonuses = I * 0.1
elif I <= 200000:
    bonuses = (I - 100000) * 0.075 + 100000 * 0.1
elif I <= 400000:
    bonuses = (I - 200000) * 0.05 + (200000 - 100000) * 0.075 + 100000 * 0.1
elif I <= 600000:
    bonuses = (I - 400000) * 0.03 + (400000 - 200000) * 0.05 + (200000 - 100000) * 0.075 + 100000 * 0.1
elif I <= 1000000:
    bonuses = (I - 600000) * 0.15 + (600000 - 400000) * 0.03 + (400000 - 200000) * 0.05 + (200000 - 100000) * 0.075 + 100000 * 0.1
else:
    bonuses = (I - 1000000) * 0.15 + (1000000 - 600000) * 0.15 + (600000 - 400000) * 0.03 + (400000 - 200000) * 0.05 + (200000 - 100000) * 0.075 + 100000 * 0.1

print('本月奖金为:',bonuses)   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-12 14:57:50 | 显示全部楼层
while True:
    j = input('输入利润: ')
    if((j.isdigit() != 1)&(j != 'Q') & (j != 'q') ):
        print('非法输入,请重新输入数字-->',end = '')
        continue
    if((j == 'Q') | (j == 'q')):
        print('退出')
        break
    else:
        i = int(j)
        if i <= 100000:
            bonus = i*0.1
        elif 100000<i<=200000:
            bonus = 100000*0.1+(i-100000)*0.075
        elif 200000<i<=400000:
            bonus = 100000*0.1+100000*0.075+(i-200000)*0.05
        elif 400000<i<=600000:
            bonus = 100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03
        elif 600000<i<=1000000:
            bonus = 100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015
        elif i>1000000:
            bonus = 100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01
        else:
            bonus = 0
            
        print(bonus)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-17 14:33:25 | 显示全部楼层
I = float(input('Input the interest:'))
if I > 1000000:
    bonus = 39500.0 + (I - 1000000) * 0.01
elif 600000 < I <= 1000000:
    bonus = 33500.0 + (I - 1000000) * 0.01
elif 400000 < I <= 600000:
    bonus = 27500.0 + (I - 400000) * 0.03
elif 200000 < I <= 400000:
    bonus = 17500.0 + (I - 200000) * 0.05
elif 100000 < I <= 200000:
    bonus = 10000.0 + (I - 100000) * 0.075
elif 100000 >= I > 0:
    bonus = I * 0.1
else:
    print('没钱!')
    bonus = 0
if bonus > 0:
    print(bonus)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-26 14:37:03 | 显示全部楼层
def profit(x):
    d={0:0.1,10:0.075,20:0.05,40:0.03,60:0.015,100:0.01}#建立区间字典
    sum=0
    for i in d.keys():#遍历字典的键
        if i<x:#得到小于x的键
            sum+=(x-i)*d[i]#累加(键*键值)
    return sum
if __name__=="__main__":
    print(profit(101))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 17:08:51 | 显示全部楼层
学习学习下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-31 17:14:45 | 显示全部楼层
amount = int(input('請輸入利潤額:'))

if amount <= 100000:
             bonus = amount * 0.1
elif 100000 < amount <= 200000:
             bonus = 100000 * 0.1 + (amount - 100000) * 0.075
elif 200000 < amount <= 400000:
             bonus = 100000 * 0.1 + 100000 * 0.075 + (amount - 200000) * 0.05
elif 400000 < amount <= 600000:
             bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (amount - 400000) * 0.03
elif 600000 < amount <= 1000000:
             bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (amount - 600000) * 0.015
elif amount > 1000000:
             bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.15 + (amount - 1000000) * 0.01
print('年度利潤額是: ' , amount , '元整' , ',換算核發獎金為: ' , bonus , '元整')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-5 09:17:32 | 显示全部楼层
I = int(input('请输入本月利润(万元):'))
if I <= 10:
    print('应发总奖金%s万元' %(I + I * 0.1))
elif  10 < I <= 20 :
    if  I <= 10:
        print('应发总奖金%s万元' %(I + I * 0.1))
    else:
        print('应发总奖金%s万元' %(I + I * 0.075))
elif 20 < I <= 40:
     print('应发总奖金%s万元' %(I + I * 0.05))
elif 40 < I <= 60:
    print('应发总奖金%s万元' %(I + I * 0.03))
elif 60 < I <= 100:
    if 60 < I:
        print('应发总奖金%s万元' %(I + I * 0.015))
elif I > 100:
        print('应发总奖金%s万元' %(I + (I - 100) * 0.01))
新手不知道对不对
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-6 11:36:25 | 显示全部楼层
I = int(input("please input the profit:"))

if I <= 10:
        bonus = I * 0.1
elif I <= 20:
        bonus = 1 + ( I - 10 ) * 0.075
elif I <= 40:
        bonus = 1 + 0.75 + ( I - 20 ) * 0.05
elif I <= 60:
        bonus = 1 + 0.75 + 1 + ( I - 40 ) * 0.03
elif I <= 100:
        bonus = 1 + 0.75 + 1 + 0.6 + ( I - 60 ) * 0.015
else:
        bonus = 1 + 0.75 + 1 + 0.6 + 0.6 + ( I - 100 ) * 0.01
       
print("应当发放奖金总数:%0.2f" % bonus + "万元")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-11 14:04:11 | 显示全部楼层
I = float(raw_input ('当月利润为;'))
result = 0
if I > 1000000:
    result = (I-1000000)*0.01+100000*0.1+200000*0.05+200000*0.03+400000*0.015+100000*0.075
elif I>600000 and I <=1000000:
    result = (I-600000)*0.015+100000*0.1+200000*0.05+200000*0.03+100000*0.075
elif I>400000 and I <=600000:
    result = (I-400000)*0.03+100000*0.1+200000*0.05+100000*0.075
elif I>200000 and I<=400000:
    result = (I-200000)*0.05+100000*0.1+100000*0.075
elif I>100000 and I<=200000:
    result = (I-100000)*0.075+100000*0.1
else:
    result = I*0.1
print '奖金为:', result
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-21 17:33:35 | 显示全部楼层
x= int(input('please input your profit number (the unit is ten thousand):' ))
y=0
if x <= 10 :
        y = x * 0.1
elif 10 <x <= 20 :
        y= (x-10)*0.075+10*0.1
elif 20<x<=40:
        y=(x-20)*0.05+(x-10)*0.075+10*0.1
elif 40<x<=60:
        y=(x-40)*0.03+(x-20)*0.05+(x-10)*0.075+10*0.1
elif 60<x<=100:
        y=(x-60)*0.015+(x-40)*0.03+(x-20)*0.05+(x-10)*0.075+10*0.1
elif 100 < x :
        y=(x-100)*0.01+(x-60)*0.015+(x-40)*0.03+(x-20)*0.05+(x-10)*0.075+10*0.1

print(y)


费脑。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 02:35

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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