鱼C论坛

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

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

  [复制链接]
发表于 2019-3-29 19:41:59 | 显示全部楼层

确实是高手,看到数轴分界,定位就感觉和变通的IF语句叠加不同,代码相当高效!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-22 18:34:21 | 显示全部楼层
temp = int(input('请输入:'))
a =0
if temp <= 10:
    a = temp*0.1
    print(a)
elif 10 < temp <=20:
    a = 1+(temp-10)*0.075
    print(a)
elif 20 < temp <=40:
    a =1.75+(temp-20)*0.05
    print(a)
elif 40 < temp <=60:
    a = 2.75+(temp-40)*0.03
    print(a)
elif 60 < temp <=100:
    a =3.35+(temp-60)*0.015
    print(a)
else:
    a =3.95 +(temp-100)*0.01
    print(a)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-23 14:31:18 | 显示全部楼层

第三行代码什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-26 16:07:11 | 显示全部楼层
p = int(input('please enter the profit:'))
if p <= 100000:
    r = p * 0.1
elif 100000 < p <= 200000:
    r = 10000 + (p - 100000) * 0.075
elif 200000 < p <= 400000:
    r = 10000 + 7500 + (p - 200000) * 0.05
elif 400000 < p <= 600000:
    r = 27500 + (p - 400000) * 0.03
elif 600000 < p <= 1000000:
    r = 33500 + (p - 600000) * 0.015
elif p > 1000000:
    r = 39500 + (p - 1000000) * 0.01
print(r)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-29 14:56:47 | 显示全部楼层
while True:
    try:
        profit = int(input('请输入利润>'))
    except ValueError:
        print('您的输入有误,请重新输入')
    else:
        break

deduct, pro_num = 0, 0
while True:
    if profit <= 100000 or pro_num in [1, 2, 3, 4, 5]:
        if pro_num in [1, 2, 3, 4, 5]:
            deduct += 100000 * 0.1
            if pro_num == 1:
                break
        else:
            deduct = profit * 0.1
            break

    if 100000 < profit <= 200000 or pro_num in [2, 3, 4, 5]:
        if pro_num in [2, 3, 4, 5]:
            deduct += 100000 * 0.075
            if pro_num == 2:
                break
        else:
            pro_num = 1
            profit -= 100000
            deduct = profit * 0.075

    if 200000 < profit <= 400000 or pro_num in [3, 4, 5]:
        if pro_num in [3, 4, 5]:
            deduct += 200000 * 0.05
            if pro_num == 3:
                break
        else:
            pro_num = 2
            profit -= 200000
            deduct = profit * 0.05

    if 400000 < profit <= 600000 or pro_num in [4, 5]:
        if pro_num in [4, 5]:
            deduct += 200000 * 0.03
            if pro_num == 4:
                break
        else:
            pro_num = 3
            profit -= 400000
            deduct = profit * 0.03

    if 600000 < profit <= 1000000 or pro_num in [5]:
        if pro_num in [5]:
            deduct += 400000 * 0.03
            if pro_num == 5:
                break
        else:
            pro_num = 4
            profit -= 600000
            deduct = profit * 0.015

    if profit > 1000000:
        pro_num = 5
        profit -= 1000000
        deduct = profit * 0.01

print('最终提成为>', deduct)
感觉应该没有人写的比我还复杂了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-30 10:44:12 | 显示全部楼层
i = int(input('请输入月利润:'))
j = float()
while i:
    if 0 < i <= 10:
        j = 10
        print('月利润为:{0}万 ,奖金提成为:{1}%'.format(i,j))
        break
    elif 10 < i < 20:
        j = 7.5
        print('月利润为:{0}万 ,奖金提成为:{1}%'.format(i,j))
        break
    elif 20 <= i < 40:
        j = 5
        print('月利润为:{0}万 ,奖金提成为:{1}%'.format(i,j))
        break
    elif 40 <= i < 60:
        j = 3
        print('月利润为:{0}万 ,奖金提成为:{1}%'.format(i,j))
        break
    elif 60 <= j < 100:
        j = 1.5
        print('月利润为:{0}万 ,奖金提成为:{1}%'.format(i,j))
        break
    elif i >= 100:
        j = 1
        print('月利润为:{0}万 ,奖金提成为:{1}%'.format(i,j))
        break
    else:
        i = int(input('输入错误,请重新输入:'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 12:30:13 | 显示全部楼层
本帖最后由 糠爸 于 2019-7-3 12:34 编辑

小白一枚,请大师指教,先看看我的成长之路,贴出来后我会认真学习各位大神的代码,谢谢!

# 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;
# 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
# 20万到40万之间时,高于20万元的部分,可提成5%;
# 40万到60万之间时高于40万元的部分,可提成3%;
# 60万到100万之间时,高于60万元的部分,可提成1.5%,
# 高于100万元时,超过100万元的部分按1%提成,
# 从键盘输入当月利润I,求应发放奖金总数?
# 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。

I = input("请输入本期利润数额(金额精确到个位):")
temp1 = 100000
temp2 = 200000
temp3 = 400000
temp4 = 600000
temp5 = 1000000
profit = int(I)
bonus = 0

if 0 < profit <= temp1:
    step1 = profit*0.1
    bonus = int(step1)

elif temp1 < profit <= temp2:
        step1 = 100000 * 0.1
        step2 = step1 + (profit-temp1 ) *0.075
        bonus = step2

elif temp2 < profit <=temp3:
        step1 = 100000 * 0.1
        step2 = 100000 * 0.075
        step3 = step1 + step2 +(profit - temp2) * 0.05
        bonus = step3

elif temp3 < profit <=temp4:
        step1 = 100000 * 0.1
        step2 = 100000 * 0.075
        step3 = 200000 * 0.05
        step4 = step1 + step2 + step3 + (profit - temp3) * 0.03
        bonus = step4

elif temp4 < profit <= temp5:
        step1 = 100000 * 0.1
        step2 = 100000 * 0.075
        step3 = 200000 * 0.05
        step4 = 200000 * 0.03
        step5 = step1 + step2 + step3 + step4 + (profit - temp4) * 0.015
        bonus = step5

elif profit > temp5:
        step1 = 100000 * 0.1
        step2 = 100000 * 0.075
        step3 = 200000 * 0.05
        step4 = 200000 * 0.03
        step5 = 400000 * 0.015
        step6 = step1 + step2 + step3 + step4 + step5 +(profit - temp5) * 0.01
        bonus = step6

else:
        print("对不起,你没有对公司做贡献!")

print(bonus)
   
# 企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;
# 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;
# 20万到40万之间时,高于20万元的部分,可提成5%;
# 40万到60万之间时高于40万元的部分,可提成3%;
# 60万到100万之间时,高于60万元的部分,可提成1.5%,
# 高于100万元时,超过100万元的部分按1%提成,
# 从键盘输入当月利润I,求应发放奖金总数?
# 程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。


I = input("请输入本期利润数额(金额精确到个位):")
temp0 = 0
temp1 = 100000
temp2 = 200000
temp3 = 400000
temp4 = 600000
temp5 = 1000000
profit = int(I)  
base1 = 100000 * 0.1
base2 = 100000 * 0.075
base3 = 200000 * 0.05
base4 = 200000 * 0.03
base5 = 400000 * 0.015
step1 = 0.1
step2 = 0.075
step3 = 0.05
step4 = 0.03
step5 = 0.015
step6 = 0.01

if (profit - temp5) < 0:
        if (profit - temp4) < 0:
                if (profit - temp3) < 0:
                        if (profit - temp2) < 0:
                                if (profit - temp1) < 0:
                                        if (profit - temp0) <= 0:
                                                print('加油,公司期望你能做出更多贡献!')
                                                exit()
                                        bonus = profit * step1
                                        print(bonus)
                                        exit()
                                bonus = base1 + (profit - temp1) * step2
                                print(bonus)
                                exit()
                        bonus = base1 + base2 + (profit - temp2) * step3
                        print(bonus)
                        exit()
                bonus = base1 + base2 + base3 + (profit - temp3) * step4
                print(bonus)
                exit()
        bonus = base1 + base2 + base3 + base4 + (profit - temp4) * step5
        print(bonus)
        exit()
else:
        bonus = base1 + base2 + base3 + base4 + base5+(profit - temp5) * step6
        print(bonus)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-3 21:34:02 | 显示全部楼层
a=input('请输入当月利润:')
a=int(a)
if a<=100000:
    c=a*0.1
    print(c)
elif a>100000 and a<200000:
    c=a*0.1+(a-100000)*0.075
    print(c)
elif a>=200000 and a<400000:
    c=(a-200000)*0.05
    print(c)
elif a>=400000 and a<600000:
    c=(a-400000)*0.03
    print(c)
elif a>=600000 and a<1000000:
    c=(a-600000)*0.015
    print(c)
else :
    c=(a-1000000)*0.01
    print(c)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-5 16:58:08 | 显示全部楼层
def jiangjin(n):


    m = 0
    if n > 100:
        a=n-100
        m += a*0.01
        n = 100
    if n > 60:
        a=n-60
        m += a*0.015
        n = 60
    if n > 40:
        a=n-40
        m += a*0.03
        n = 40
    if n > 20:
        a=n-20
        m += a*0.05
        n = 20
    if n > 10:
        a=n-10
        m += a*0.075
        n = 10
    if n > 0:
        m += n*0.1
    return m

if __name__ == '__main__':
    i = input("当年利润:")
    n=float(i)
    print('利润:',n,'奖金:',jiangjin(n))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-5 14:44:51 | 显示全部楼层
'''题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部
分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,
可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,
求应发放奖金总数?'''
# 解法1:数据由高向低逐层计算
def answer1():
    profits = float(input("请输入利润金额(万元):"))
    bonus = 0
    if profits > 100:
        bonus += (profits - 100) * 0.01
        profits = 100
    elif profits > 60:
        bonus += (profits - 60) * 0.015
        profits = 60
    elif profits >40:
        bonus += (profits - 40) * 0.03
        profits = 40
    elif profits > 20:
        bonus += (profits - 20) * 0.05
        profits = 20
    elif profits > 10:
        bonus += (profits - 10) * 0.075
        profits = 10
    bonus += profits * 0.1
    print("应发放的奖金为%d元" % (bonus*10000))

#解法2:利用迭代方法
def answer2():
    list1 = [100,60,40,20,10,0]   #金额分级阶梯
    list2 = [0.01,0.015,0.03,0.05,0.075,0.1]  #相应利率
    profits = float(input("请输入利润金额(万元):"))
    bonus = 0
    for each in list1:
        if profits > each:
            bonus += (profits - each) * list2[list1.index(each)]
            profits = each
    print("应发放的奖金为{}元".format(bonus*10000))



if __name__ == "__main__":
    answer1()
    answer2()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-5 17:16:54 | 显示全部楼层
i = int(input("奖金(单位:万):"))
j = 0
if i > 100:
    x = i - 100
    j += x * 1.01
    i -= x
if i <= 100:
    x = i - 60
    j += x * 1.015
    i -= x
if i <= 60:
    x = i - 40
    j += x * 1.03
    i -= x
if i <= 40:
    x = i - 20
    j += x * 1.05
    i -= x
if i <= 20:
    x = i - 10
    j += x * 1.075
    i -= x
if i <= 10:
    x = i - 0
    j += x * 1.1
    i -= x

print(j)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-29 07:58:17 | 显示全部楼层
I = int(input("请输入纯利润(万):"))
if I <= 10:
     money = I * 0.1 + I
elif 10 < I <= 20:
     money = 10 * 0.1 + (I - 10) * 0.075 + I
elif 20 < I <= 40:
     money = (I - 20) * 0.05 + I
elif 40 < I <= 60:
     money = (I - 40) * 0.03 + I
elif 60 < I <= 100:
     money = (I - 60) * 0.015 + I
elif I >= 100:
     money = (I - 100) * 0.01
print("当月应发放奖金总数为:%s" % money)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-5 16:46:40 | 显示全部楼层
#10万元提成
a=100000*0.1
#10-20万元提成
b=100000*0.075
#20-40万元提成
c=200000*0.05
#40-60万元提成
d=200000*0.03
#60-100万元提成
e=400000*0.015
while True:
    I=float(input("请输入利润:"))
    if I>1000000 :
        result=a+b+c+d+e+(I-1000000)*0.01
        print(result)
    elif I>600000 and I<=1000000 :
        result=a+b+c+d+(I-600000)*0.015
        print(result)
    elif I>400000 and I<=600000 :
        result=a+b+c+(I-400000)*0.03
        print(result)
    elif I>200000 and I<=400000  :
        result=a+b+(I-200000)*0.05
        print(result)
    elif I>100000 and I<=200000 :
        result=a+(I-100000)*0.075
        print(result)
    elif I>0 and I<=100000 :
        result=I*0.1
        print(result)
    else:
        print("输入有误!")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-20 08:45:14 | 显示全部楼层

info = input('Please enter the benifit:')
while info != 'Quit':
    Benifit =  float(info)
    if Benifit<=100000:
        Bonus = Benifit*0.1
        print(Bonus)
    elif(Benifit in range(100000,200000)):
        Bonus = 100000*0.1 + (Benifit-100000)*0.075
        print(Bonus)
    elif(Benifit in range(200000,400000)):
        Bonus = 100000*0.175 + (Benifit-200000)*0.05
        print(Bonus)
    elif(Benifit in range(400000,600000)):
        Bonus = 100000*0.175 + 200000*0.05 +(Benifit-200000)*0.03
        print(Bonus)
    elif(Benifit in range(600000,1000000)):
        Bonus = 100000*0.175 + 200000*(0.05 +0.03) + (Benifit-600000)*0.015
        print(Bonus)
    elif(Benifit >1000000)):
        Bonus = 100000*0.175 + 200000*(0.05 +0.03) + 400000*0.015 +(Benifit-1000000)*0.01
        print(Bonus)
    info = input('Please enter the benifit:')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-9 20:15:48 | 显示全部楼层
lr=input ('请输入您的利润:')
lr=float (lr)
if 0<=lr<=10:
    jj=lr*0.1
elif 10<lr<=20:
    jj=10*0.1+(lr-10)*0.075
elif 20<lr<=40:
    jj=10*0.1+10*0.075+(
        lr-20)*0.05
elif 40<lr<=60:
    jj=10*0.1+10*0.075+(40-20)*0.05+(lr-40)*0.03
elif 60<lr<=100:
    jj=10*0.1+10*0.075+(40-20)*0.05+(60-40)*0.03+(lr-60)*0.015
elif lr>100:
    jj=10*0.1+10*0.075+(40-20)*0.05+(60-40)*0.03+(100-60)*0.015+(lr-100)*0.01
print(jj)
jj=str(jj)
print('您的奖金为'+jj+'万元!')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-9 18:52:11 | 显示全部楼层
profit=int(input('请输入当月的利润(元):'))
if profit <= 100000:
    bouns = profit * 0.1
elif 100000 < profit <= 200000:
    bouns=10000+(profit-100000)*0.75
elif 200000 < profit <= 400000:
    bouns = 8500 + (profit - 200000) * 0.5
elif 400000 < profit <= 600000:
    bouns = 18500 + (profit - 400000) * 0.3
elif 600000 < profit <= 1000000:
    bouns = 24500 + (profit - 600000) * 0.15
else:
    bouns = 31300 + (profit - 1000000) * 0.1
print('当月的奖金为:',bouns,'元')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-1-16 09:42:54 | 显示全部楼层
profit = int(input('利润:(单位为万元)'))
bonus = 0   
if profit>100 :
    bonus = (profit-100)/100
    profit = 100
if 60<profit<=100 :
    bonus += (profit-60)*0.015
    profit = 60
if 40<profit<=60 :
    bonus += (profit-40)*0.03
    profit = 40
if 20<profit<=40 :
    bonus += (profit-20)*0.05
    profit = 20
if 10<profit<=20 :
    bonus += (profit-10)*0.075
    profit = 10
if 0<=profit<=10 :
    bonus += profit/10
print(bonus)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 12:14:45 | 显示全部楼层
profit=int(input('当月利润为(单位为万元):'))
if profit in range(0,11):
    print(profit*0.1,'万元')
elif profit in range(10,21):
    print(10*0.1+(profit-10)*0.075,'万元')
elif profit in range(20,41):
    print(10*0.1+10*0.075+(profit-20)*0.05,'万元')
elif profit in range(40,61):
    print(10*0.1+10*0.075+20*0.05+(profit-40)*0.03,'万元')
elif profit in range(60,101):
    print(10*0.1+10*0.075+20*0.05+20*0.03+(profit-60)*0.015,'万元')
else:
    print(10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(profit-100)*0.01,'万元')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-24 13:33:18 | 显示全部楼层
a=100000*0.1
b=100000*0.075
c=200000*0.05
d=200000*0.03
e=400000*0.015
temp=input('请输入利润额:(单位:元)')
while not temp.isdigit():
    print("抱歉,输入不合法!!!")
    temp=input("请重新输入利润额:(单位:元)")
profit=int(temp)
if(profit<=100000):
    bonus=profit*0.1
elif(profit<=200000):
    bonus=a+(profit-100000)*0.075
elif(profit<=400000):
    bonus=a+b+(profit-200000)*0.05
elif(profit<=600000):
    bonus=a+b+c+(profit-400000)*0.03
elif(profit<=1000000):
    bonus=a+b+c+d+(profit-600000)*0.015
else :
    bonus=a+b+c+d+e+(profit-1000000)*0.001
print("应发放的奖金为:%d"%bonus)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 17:16:31 | 显示全部楼层
profitx = float(input('请输入企业利润:'))

if profitx <= 100000:
    bonus0 = profitx * 0.1
    bonus = bonus0
elif profitx <= 200000 and profitx > 100000:
    bonus0 = 100000 * 0.1
    bonus1 = (profitx - 100000) * 0.075
    bonus = bonus0 + bonus1
elif profitx <= 400000 and profitx > 200000:
    bonus0 = 100000 * 0.1
    bonus1 = 100000 * 0.075
    bonus2 = (profitx - 2000000) * 0.005
    bonus = bonus0 + bonus1 + bonus2
elif profitx <=600000 and profitx >400000:
    bonus0 = 100000 * 0.1
    bonus1 = 100000 * 0.075
    bonus2 = 2000000 * 0.005
    bonus3 = (profitx - 4000000) * 0.003
    bonus = bonus0 + bonus1 + bonus2 + bonus3
elif profitx <=1000000 and profitx > 600000:
    bonus0 = 100000 * 0.1
    bonus1 = 100000 * 0.075
    bonus2 = 2000000 * 0.005
    bonus3 = 2000000 * 0.003
    bonus4 = (profitx - 6000000) * 0.00015
    bonus = bonus0 + bonus1 + bonus2 + bonus3 + bonus4
elif profitx > 1000000:
    bonus0 = 100000 * 0.1
    bonus1 = 100000 * 0.075
    bonus2 = 2000000 * 0.005
    bonus3 = 2000000 * 0.003
    bonus4 = 4000000 * 0.00015
    bonus5 = (profitx -600000) * 0.0001
    bonus = bonus0 + bonus1 + bonus2 + bonus3 + bonus4 +bonus5

print('奖金总数为:%.2f' % bonus)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 18:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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