鱼C论坛

 找回密码
 立即注册
查看: 3684|回复: 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)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-12-30 10:16:02 | 显示全部楼层
我感觉这种分段记费的代码只能这样写,没有什么太好的优化方法
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


但我觉得你代码写错了可能,你检查一下确定是20000+        40000+          60000+      100000+ 吗?我是猜的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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


                               
登录/注册后可看大图
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

我觉得我这个代码是最笨的那种
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

啊,是我错了,就是你那么写
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-31 13:34:58 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-31 19:36:15 | 显示全部楼层
↑同上
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-5 16:33:18 | 显示全部楼层
  1. n=int(input())
  2. if n<100000:
  3.     q=n*0.1
  4. elif n<200000:
  5.     q=10000+(n-100000)*0.075
  6. elif n<400000:
  7.     q=20000+(n-200000)*0.05
  8. elif n<600000:
  9.     q=40000+(n-400000)*0.03
  10. elif n<1000000:
  11.     q=60000+(n-600000)*0.015)
  12. else:
  13.     q=100000+(n-1000000)*0.01
  14. print('%.1f' % q)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-12 09:10:23 | 显示全部楼层
可以一行流写
  1. n=int(input())
  2. 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
  3. print('%.1f' % q)
复制代码

或者
  1. n=int(input())
  2. 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))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-25 04:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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