嗨,我是蟒蛇初学者! 这是我遇到问题的问题!
问题:
编写一个程序,使用raw_input计算总薪酬,提示用户每小时和每小时的费率。对于工作时间超过40小时的小时工资小时工资,按小时工资计算为小时工资的40倍和1.5倍。使用45小时和每小时10.50的速度来测试程序(工资应为498.75)。您应该使用raw_input
来读取字符串,使用float()
将字符串转换为数字。不要担心错误检查用户输入 - 假设用户正确输入数字。
我的答案如下,但不能得到498.75,我不太确定它出错的地方。 请帮助:)
hrs = raw_input('Enter hours ')
h= float(hrs) #why use float?
rate = float(10.5)
if h <= 40:
pay = h*rate
elif h > 40:
pay = ((h-40)*rate*1.5)+rate*40
print "Your pay is %d" %pay
答案 0 :(得分:2)
您的计算是正确的,您只需要正确格式化输出。 %d
用于整数,因此更改为用于浮动的%f
将起到作用:
print "Your pay is %f" %pay
通过以上更改,您将获得以下输出:
Your pay is 498.750000
您可以在Python docs找到不同格式说明符的完整列表。
答案 1 :(得分:2)
您的代码是正确的,但您使用%d
来打印变量pay
的值,该值会将其转换回int
并忽略小数部分。
请尝试使用%s
或%f
或%.2f
。
答案 2 :(得分:1)
当您打印用户的付款时,使用%d
打印实际付款。要显示浮点数(例如498.75),您必须使用%f
(或更确切地说,%.2f
,因为您无法支付低于1美分的费用。
所以这将是正确的方式,使用498.75:
hrs = raw_input('Enter hours ')
h= float(hrs) #why use float?
rate = float(10.5)
if h <= 40:
pay = h*rate
elif h > 40:
pay = ((h-40)*rate*1.5)+rate*40
print "Your pay is %.2f" %pay
您可以找到有关字符串格式here
的更多信息另外,关于h= float(hrs) #why use float?
:
默认情况下,raw_input()
返回一个字符串,您必须使用float()
将此字符串解析为浮点数,并在以后的计算中使用它。
希望它会有所帮助。