有没有办法简化代码
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) 我感觉这种分段记费的代码只能这样写,没有什么太好的优化方法 把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+ 吗?我是猜的 洋洋痒 发表于 2022-12-30 10:17
把print最后打印一次就行,其他的地方没找到哪里可以简化
https://thumbnail1.baidupcs.com/thumbnail/199bd450eia27d49b7c056a2d2593253?fid=1590253992-250528-724527419754510&rt=pr&sign=FDTAER-DCb740ccc5511e5e8fedcff06b081203-zhL37n%2fNR6BgqHjkeWksyYAWmkU%3d&expires=8h&chkbd=0&chkv=0&dp-logid=358534864833218770&dp-callid=0&time=1672365600&size=c1463_u915&quality=90&vuk=1590253992&ft=image&autopolicy=1 洋洋痒 发表于 2022-12-30 10:17
把print最后打印一次就行,其他的地方没找到哪里可以简化
我觉得我这个代码是最笨的那种 爱意随风起9306 发表于 2022-12-30 10:20
啊,是我错了,就是你那么写 爱意随风起9306 发表于 2022-12-30 10:20
没有 ↑同上 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) 可以一行流写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))
页:
[1]