If和语法错误python
晚上好。我是python新手,但不懂编程。我现在正在写一个程序,但我不明白为什么。如果工作小时数大于40但小于60,我想显示加班工资。不幸的是,每次我尝试使用and关键字时,程序都会出现语法错误。有人能解释一下我做错了什么吗If和语法错误python,python,syntax,Python,Syntax,晚上好。我是python新手,但不懂编程。我现在正在写一个程序,但我不明白为什么。如果工作小时数大于40但小于60,我想显示加班工资。不幸的是,每次我尝试使用and关键字时,程序都会出现语法错误。有人能解释一下我做错了什么吗 wage = eval(input("Enter in the employees hourly wage: ")) #get wage hours_worked = eval(input("Enter in the number of hours worked: "))
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)
wage=eval(输入(“输入员工时薪:”)#获取工资
工作小时数=评估(输入(“输入工作小时数:)#获取小时数
工资=工资*工作时间#计算工资
加班费=((工作时数-40)*(1.5)*工资)+(工资*40)
双倍=((工作时数-40)*(2)*工资)+(工资*40)
#计算加班工资
如果(工作时间为40小时且<60小时):
打印(ot)
如果(工作小时数>=60):
打印(双)
如果(工作小时数>40,工作小时数<60):
如果(工作小时数>40和<60):
打印(ot)
应该是
if (hours_worked > 40 and hours_worked < 60):
print (ot)
if(工作小时数>40,工作小时数<60):
打印(ot)
相反。Python还不支持在按位if
条件之间重复变量。第11行
if (60 > hours_worked > 40):
if(工作小时数>40和40,工作小时数<60):
或者用一种较短的方式来写:
如果(40
在python来自的语言背景中,和
操作符不需要匹配值,它需要条件。因此,它试图将<60
解释为一种条件,而不是你所说的更符合模式的构造。您需要将其转换为条件,将其替换为
hours\u worked<60
您刚刚忘记了在第二个条件中包含hours\u worked
hours_worked > 40 and hours_worked < 60
hours\u worked>40和hours\u worked<60
这是因为解释器无法理解此语法。它解析第一个条件,然后找到一个“and”。因此,它期待着另一种情况。相反,正如其他人所说,它会找到',您可以使用
if (hours_worked > 40 and hours_worked < 60):
if(工作小时数>40,工作小时数<60):
或
如果(40
我还应该指出,在第一行中实际上不需要eval()。您真正想在那里使用的函数是int()。如果您发布此代码供公众使用,人们可能会编写恶意代码,这些代码将通过eval()函数执行 错误也会告诉你它发生在哪里;也许这会有所帮助(你可以把它添加到你的问题中)。在Python(以及我能想到的所有其他语言)中,你必须在“and”的两边都给出一个条件
if(hours\u worked>40和hours\u worked<60)本身就是一个语法错误。没有必要在if条件周围加括号(即使这里的每个答案都有)。请参阅(任何)教程。有趣的事实:在Python中,如果40
,你可以做你想做的事。这是你遇到问题的第二个if语句。感谢大家的帮助,这是一个非常简单的修复。我不知道我必须在and之后第二次包含变量。在返回插入它之后,它工作得非常好。谢谢收获。很好,你很快乐。享受吧!
hours_worked > 40 and hours_worked < 60
if (hours_worked > 40 and hours_worked < 60):
if (40 < hours_worked < 60):