鱼C论坛

 找回密码
 立即注册
查看: 1322|回复: 3

[已解决]大佬救救我

[复制链接]
发表于 2020-7-14 11:47:26 | 显示全部楼层 |阅读模式

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

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

x
profit = float(input("请输入今年的利润:"))
    
if profit <= 100000:
    reward = profit * 0.1
elif 100000 < profit <= 200000:
    reward = 100000 * 0.1 + (profit - 100000) * 0.075
elif 200000 < profit <= 400000:
    reward = 100000 * 0.1 + 100000 * 0.075 + (profit - 200000) * 0.05
elif 400000 < profit <= 600000:
    reward = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (profit - 400000) * 0.03
elif 600000 < profit <= 1000000:
    reward = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (profit - 600000) * 0.015
else:
    reward = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (profit - 1000000) * 0.01
    
print("应该发放的奖金总数是:", reward, sep='')
以上代码为什么要把数据转化成浮点数,是因为python只能计算浮点数吗?另外我在elif当中可以不用再次使用变量而是直接使用money吗,见下
money = float(input("请输入今年的利润"))

if money <= 100000:
     print("应该发放的奖金总数是:",0.1(money))
elif 100000 < money <= 200000:
     print("应该发放的奖金总数是:",10000 + 0.75(money-100000))
elif 200000 < money <= 400000:
     print("应该发放的奖金总数是:",85000+0.05(money-200000))
elif 400000 < money <= 600000:
     print("应该发放的奖金总数是:",95000 + 0.03(money-400000))
elif 600000 < money <= 1000000:
     print("应该发放的奖金总数是:",155000 + 0.015(money-600000))
elif 1000000 <= money:
     print("应该发放的奖金总数是:",161000 + 0.01(money - 1000000))
     
最佳答案
2020-7-14 18:07:25
1. 因为需要用户输入一个浮点数,所以要用 float() 将一个字符串转化为浮点数,如果用 int() 只能将字符串转化为整数或者将浮点数转化为整数,不能将字符串转化为浮点数。

2. 可以不使用新变量,但你的写法错了,少了乘号,应该这样:
money = float(input("请输入今年的利润"))

if money <= 100000:
    print("应该发放的奖金总数是:", 0.1 * money)
elif 100000 < money <= 200000:
    print("应该发放的奖金总数是:", 10000 + 0.75 * (money - 100000))
elif 200000 < money <= 400000:
    print("应该发放的奖金总数是:", 85000 + 0.05 * (money - 200000))
elif 400000 < money <= 600000:
    print("应该发放的奖金总数是:", 95000 + 0.03 * (money - 400000))
elif 600000 < money <= 1000000:
    print("应该发放的奖金总数是:", 155000 + 0.015 * (money - 600000))
elif 1000000 <= money:
    print("应该发放的奖金总数是:", 161000 + 0.01 * (money - 1000000))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-7-14 11:49:16 | 显示全部楼层


是因为 int 不支持将小数字符串转化为数字,会报错,而 float 不会报错

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

使用道具 举报

发表于 2020-7-14 11:51:18 | 显示全部楼层
1,不是的,因为输入的是浮点数,转化也要转化成浮点数。
2,可以不用变量,但你的写法怎么变成数学了...这样是不可以的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-14 18:07:25 | 显示全部楼层    本楼为最佳答案   
1. 因为需要用户输入一个浮点数,所以要用 float() 将一个字符串转化为浮点数,如果用 int() 只能将字符串转化为整数或者将浮点数转化为整数,不能将字符串转化为浮点数。

2. 可以不使用新变量,但你的写法错了,少了乘号,应该这样:
money = float(input("请输入今年的利润"))

if money <= 100000:
    print("应该发放的奖金总数是:", 0.1 * money)
elif 100000 < money <= 200000:
    print("应该发放的奖金总数是:", 10000 + 0.75 * (money - 100000))
elif 200000 < money <= 400000:
    print("应该发放的奖金总数是:", 85000 + 0.05 * (money - 200000))
elif 400000 < money <= 600000:
    print("应该发放的奖金总数是:", 95000 + 0.03 * (money - 400000))
elif 600000 < money <= 1000000:
    print("应该发放的奖金总数是:", 155000 + 0.015 * (money - 600000))
elif 1000000 <= money:
    print("应该发放的奖金总数是:", 161000 + 0.01 * (money - 1000000))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 10:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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