您必须使用input()读取数据,然后将其转换

时间:2019-07-15 20:31:29

标签: python python-3.x

我正在为每个人编程。 Python作业3.1

  

编写一个程序,使用输入内容来计算总工资,以提示用户每小时的小时数和费率。支付最多40小时的小时费率,以及所有40小时以上工作小时的小时费率的1.5倍。以45小时和每小时10.50的速度测试程序(工资应为498.75)。

     

您应该使用输入读取字符串,并使用float()将字符串转换为数字。不必担心错误检查用户输入-假设用户正确键入数字。

h = float(input("Enter Hours:"))
basic_rate = 10.50

if h <=40:
   pay = h * basic_rate
elif h > 40:
   pay = 40* basic_rate + (h-40)*1.5*basic_rate
else: 
   print ('wrong parameter') 
print (pay)

它引发错误-您必须使用input()读取数据,然后将其转换。

6 个答案:

答案 0 :(得分:1)

问题似乎是您直接在变量中使用10.50,而不要求用户输入。 您可以尝试

hrs = int(input('Hours: '))
rate = float(input('Rate/Hour: '))

if hrs <= 40:
pay = hrs * rate

if hrs > 40:
    a = hrs - 40
    b = rate * 1.5
    c = a * b
    pay = float(40 * rate + c)

print(pay)

答案 1 :(得分:0)

出现此错误的原因是您需要在输入字段中花几个小时和时间。

示例:       hrs= input('enter hours:') h = float(hrs) rate = input('enter rate:') r = float(rate)

通过使用这两个值,我们可以轻松地编写其余代码。 我解决了 希望它能工作:)

答案 2 :(得分:0)

在我的情况下,错误是该语句不能有多余的空间,我尝试了多种不同的方法来实现相同的过程,但仅仅是Print("Pay:", pay)而不是Print("Pay: ", pay)

答案 3 :(得分:0)

sed "s/ //g" flag29 | tr -d "\n" | tr "," "\n" | sed 's/.*\(.\)$/\1/'

答案 4 :(得分:-1)

因为很少有评论已经表明问题出在代码本身之内,而不是(可以很好地工作),而是验证代码可读性的系统。从“ 验证程序”引发的错误中,您可以假设它期望您将 input 函数返回的值保存到变量中,然后将其转换为像这样漂浮:

raw_input_hours = input("Enter Hours:")
hours = float(raw_input_hours)
...

程序的其余部分将完全正常运行。 @ncica在注释中仅给出一小条注释-您的 else 块将永远不会执行,因为您的代码已经解决了 if 中所有 h 的可能性/ em>和 elif 块。 因此,您最好将其修复为:

if h <= 40:
    pay = h * basic_rate
else:
    pay = 40* basic_rate + (h-40)*1.5*basic_rate

(我从来没有为每个人进行编程,所以我不确定分配的最终结果,但是假设您了解在修正了验证程序错误后应该继续的工作。 >朝你扔,你都准备好了:)) 祝你好运,编码愉快。

顺便说一句,找到了针对该特定任务here的解决方案。

答案 5 :(得分:-2)

小时=输入(“输入小时数:”)

h =浮点数(小时)

rate = input(“输入速率:”) r =浮动(汇率)

如果h <= 40:

pay = r * h 

elif h> 40: 薪水=((h-40)* 1.5 * r)+ 40 * r

打印(付款)