wage = eval(input("Enter in the employees hourly wage: ")) #get wage
hours_worked = eval(input("Enter in the number of hours worked: ")) #get hours
pay = wage * hours_worked # calculate pay
ot = ((hours_worked - 40 ) * (1.5) * wage) + (wage * 40)
double = ((hours_worked - 40 ) * (2) * wage) + (wage * 40)
#calculate overtime pay
if (hours_worked <= 40):
print (pay)
if (hours_worked > 40 and < 60):
print (ot)
if (hours_worked >= 60):
print (double)
答案 0 :(得分:4)
if (hours_worked > 40 and hours_worked < 60):
答案 1 :(得分:2)
if (60 > hours_worked > 40):
答案 2 :(得分:2)
正如其他人所说,你可以使用
if (hours_worked > 40 and hours_worked < 60):
或
if (40 < hours_worked < 60):
我还应该指出,你并不需要在第一行中使用eval()。你真正想要使用的函数是int()。如果您发布此代码供公众使用,人们可能会编写将使用eval()函数执行的恶意代码。
答案 3 :(得分:1)
第11行
if (hours_worked > 40 and <60):
这在python中不起作用。您可以这样写:
if (hours_worked > 40 and hours_worked < 60):
或者更简短的写作方式是:
if (40 < hours_worked < 60):
答案 4 :(得分:1)
在python来自的语言背景中,and
运算符不需要匹配值,它需要条件。因此,它试图将< 60
解释为条件,而不是将其视为更多模式匹配风格的构造。
您需要将其替换为hours_worked < 60
。
答案 5 :(得分:0)
if (hours_worked > 40 and < 60):
print (ot)
应该是
if (hours_worked > 40 and hours_worked < 60):
print (ot)
代替。 Python还不支持在按位if
条件之间重复变量。
答案 6 :(得分:0)
你忘记在第二个条件中包含hours_worked
hours_worked > 40 and hours_worked < 60
这是因为解释器无法理解这种语法。它解析第一个条件,然后它找到一个“和”。因此,它期待另一个条件。相反,它找到'&lt;'符号。