鱼C论坛

 找回密码
 立即注册
查看: 3039|回复: 9

有没有办法简化代码

[复制链接]
发表于 2022-12-30 10:11:57 | 显示全部楼层 |阅读模式

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

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

x
n=int(input())
if n<100000:
    q=n*0.1
    print('%.1f'%q)
elif 100000<=n<200000:
    q=10000+(n-100000)*0.075
    print('%.1f' % q)
elif 200000<=n<400000:
    q=20000+(n-200000)*0.05
    print('%.1f' % q)
elif 400000<=n<600000:
    q=40000+(n-400000)*0.03
    print('%.1f' % q)
elif 600000<=n<1000000:
    q=60000+(n-600000)*0.015
    print('%.1f' % q)
elif n>=1000000:
    q=100000+(n-1000000)*0.01
    print('%.1f' % q)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-30 10:16:02 | 显示全部楼层
我感觉这种分段记费的代码只能这样写,没有什么太好的优化方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-30 10:17:10 | 显示全部楼层
把print最后打印一次就行,其他的地方没找到哪里可以简化
n=int(input())
if n<100000:
    q=n*0.1
elif 100000<=n<200000:
    q=10000+(n-100000)*0.075
elif 200000<=n<400000:
    q=20000+(n-200000)*0.05
elif 400000<=n<600000:
    q=40000+(n-400000)*0.03
elif 600000<=n<1000000:
    q=60000+(n-600000)*0.015
elif n>=1000000:
    q=100000+(n-1000000)*0.01
print('%.1f' % q)

但我觉得你代码写错了可能,你检查一下确定是20000+        40000+          60000+      100000+ 吗?我是猜的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-30 10:20:37 | 显示全部楼层
洋洋痒 发表于 2022-12-30 10:17
把print最后打印一次就行,其他的地方没找到哪里可以简化


                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-30 10:23:31 | 显示全部楼层
洋洋痒 发表于 2022-12-30 10:17
把print最后打印一次就行,其他的地方没找到哪里可以简化

我觉得我这个代码是最笨的那种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-30 10:26:08 | 显示全部楼层

啊,是我错了,就是你那么写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-31 13:34:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-31 19:36:15 | 显示全部楼层
↑同上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-5 16:33:18 | 显示全部楼层
n=int(input())
if n<100000:
    q=n*0.1
elif n<200000:
    q=10000+(n-100000)*0.075
elif n<400000:
    q=20000+(n-200000)*0.05
elif n<600000:
    q=40000+(n-400000)*0.03
elif n<1000000:
    q=60000+(n-600000)*0.015)
else:
    q=100000+(n-1000000)*0.01
print('%.1f' % q)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-12 09:10:23 | 显示全部楼层
可以一行流写
n=int(input())
q = n*0.1 if n<100000 else 10000+(n-100000)*0.075 if 100000<=n<200000 else 20000+(n-200000)*0.05 if 200000<=n<400000 else 40000+(n-400000)*0.03 if 400000<=n<600000 else 60000+(n-600000)*0.015 if 600000<=n<1000000 else 100000+(n-1000000)*0.01
print('%.1f' % q)
或者
n=int(input())
print('%.1f' % (n*0.1 if n<100000 else 10000+(n-100000)*0.075 if 100000<=n<200000 else 20000+(n-200000)*0.05 if 200000<=n<400000 else 40000+(n-400000)*0.03 if 400000<=n<600000 else 60000+(n-600000)*0.015 if 600000<=n<1000000 else 100000+(n-1000000)*0.01))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-24 23:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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