货物托运收费(循环)
描述
托运货物收费是根据货物重量来算的,某托运处的收费标准是:货物重量在50千克(包括)以下的,每千克0.5元,超过50千克部分每千克0.6元,
写一程序,接收用户输入货物重量,输出收费金额,每次计算并输出运费后,等待用户继续输入下一个货物重量,计算并输出相应运费,如果用户输入n或N,则程序结束,否则程序继续。
输入格式
示例:
30
60
N
输出格式
收费金额,中间空格分隔,示例如下:
货物重量: 30 收费:15.0
货物重量: 60 收费: 31.0
我写的代码:
weight=eval(input(''))
while weight !='n' or weight!='N':
if weight <= 50:
cost=weight*0.5
else:
cost=50*0.5+(weight-50)*0.6
print("货物重量:{} 收费:{:.1f}".format(weight,cost))
else:
Break
测试结果:
一直重复输出
货物重量:30 收费:15.0
货物重量:30 收费:15.0
货物重量:30 收费:15.0
货物重量:30 收费:15.0
在每循环一次的最后要重新weight=input('')输入
weight=input('')
while weight !='n' and weight!='N':
weight = float(weight)
if weight <= 50:
cost=weight*0.5
else:
cost=50*0.5+(weight-50)*0.6
print("货物重量:{} 收费:{:.1f}".format(weight,cost))
weight=input('')
或者是这样
while True:
weight=input('')
if weight =='n' or weight=='N':
break
weight = float(weight)
if weight <= 50:
cost=weight*0.5
else:
cost=50*0.5+(weight-50)*0.6
print("货物重量:{} 收费:{:.1f}".format(weight,cost))
input要在循环内。
>>> while True:
weight = eval(input(''))
if weight in ('n', 'N'):
print('Bye')
break
if weight <= 50:
cost = weight*0.5
else:
cost = 50*0.5 + (weight-50)*0.6
print("货物重量:{} 收费:{:.2f}".format(weight,cost))
25
货物重量:25 收费:12.50
30
货物重量:30 收费:15.00
35
货物重量:35 收费:17.50
55
货物重量:55 收费:28.00
60
货物重量:60 收费:31.00
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y