嗨,我是蟒蛇初学者!这是我有问题的问题!
问题:
编写一个程序,提示用户使用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发布于 2016-06-15 06:49:47
打印用户的薪资时,使用%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您可以找到有关字符串格式这里的更多信息。
另外,对于h= float(hrs) #why use float?:默认情况下,raw_input()返回一个字符串,您必须使用float()将该字符串解析为浮点数,并在以后的计算中使用它。
希望能帮上忙。
发布于 2016-06-15 06:44:16
您的代码是正确的,但是您正在使用%d打印变量pay的值,该变量将其转换回int,小数部分将被忽略。
因此,尝试使用%s、%f或%.2f。
发布于 2016-06-15 06:44:05
您的计算是正确的,您只需要正确格式化输出。%d用于整数,因此将其转换为用于浮点数的%f将起到以下作用:
print "Your pay is %f" %pay通过上面的更改,您将得到以下输出:
Your pay is 498.750000您可以从Python文档中找到不同格式说明符的完整列表。
https://stackoverflow.com/questions/37827824
复制相似问题