Python 无效语法-逻辑错误
有人能检查一下这段代码吗?我得到了一个没有解释的无效语法。它需要知道8-40之间的输入何时通过加班时间=0,当输入为41-86时,它需要通过加班时间=原始时间-40Python 无效语法-逻辑错误,python,Python,有人能检查一下这段代码吗?我得到了一个没有解释的无效语法。它需要知道8-40之间的输入何时通过加班时间=0,当输入为41-86时,它需要通过加班时间=原始时间-40 while original_hours < 8 or original_hours > 40: overtime_hours = 0 elif original_hours > 41 or original_hours < 86: overtime_hours = original_hour
while original_hours < 8 or original_hours > 40:
overtime_hours = 0
elif original_hours > 41 or original_hours < 86:
overtime_hours = original_hours - 40
当原始时数<8或原始时数>40时:
加班时间=0
如果原始工时>41或原始工时<86:
加班时间=原加班时间-40
这是一个家庭作业,是一个更大的工资单程序的一部分。如果你想使用
elif
,你必须先有If
。此外,您的情况似乎很糟糕,您可以尝试以下方法:
if 8 <= original_hours <= 40:
overtime_hours = 0
elif 41 <= original_hours <= 86:
overtime_hours = original_hours - 40
注意范围(a,b)
包括a
但不包括b
。这就是为什么您应该使用范围(8,40+1)
尝试以下方法:
if 8 < original_hours < 86:
worked_hours = min(original_hours,40)
overtime_hours = max(0, original_hours-40)
# define your special cases for hours <= 8 or hours >= 86
而另一方面,
可能是一个很好的方法,可以看出有多少工作周被填满(也许你的员工每周工作8小时带薪休假,而你不知何故反对楼层划分)
语法错误不是逻辑错误——逻辑错误是语法格式正确的错误,但控制流或其他运行时效果不是预期的。不要与elif混用,链接比较可以让它更清楚:
8@MatthewTrevor我总是忘了这个功能。编辑。
if 8 < original_hours < 86:
worked_hours = min(original_hours,40)
overtime_hours = max(0, original_hours-40)
# define your special cases for hours <= 8 or hours >= 86
if condition:
do_stuff
elif other_condition:
do_other_stuff
elif ...
do_...
else:
default_case
PTO = 0
while hours_worked > 40:
PTO += 8
hours_worked -= 40