2013-07-30 62 views
-6

我在這項任務有點麻煩它關於計算員工支付它像寫一個Python程序,提示用戶每小時費率和工作小時數和計算支付金額。任何超過40小時的工作時間都是一半半(正常小時工資的1.5倍)。寫使用的if/else到目前爲止我的代碼一個版本的程序是這樣的蟒蛇如果和其他語句計算員工支付

hours = int(input('how many hours did you work? ')) 
rate = 1.50 
rate = (hours/2)+hours*(rate+1.5) 
if hours<40: 
print("you earn",rate) 
+5

至少嘗試,或說明你的問題是什麼。因爲你的問題實質上是「爲我做功課」 – gggg

+1

這個問題似乎是題外話題,因爲它是關於一個家庭作業問題,到目前爲止OP儘量少的嘗試。 – hexafraction

回答

0

一些提示:

  • 你需要提示的時薪用戶也是如此。
  • 這是rate * 1.5,而不是rate + 1.5。這個速度只適用於小時過去 40,所以對於第一個40小時,在應用常規率:

    if hours <= 40: 
        total = hours * rate 
    else: 
        total = 40 * rate + (hours - 40) * (1.5 * rate) 
    
+0

甚至不需要'if' ....只是使用:'hours * rate + max(hours - 40,0)*(1.5 * rate)' –

+0

@JonClements。不應該是'(0.5 * rate)'嗎? –

+0

@gnibbler只有當你減半加班費率? –

1

你可以使用:

pay = rate * min(hours, 40) 
if hours > 40: 
    pay += rate * 1.5 * (hours - 40) 

要調整工資計算取決於工作的小時數。

您應該熟悉this resource

+3

我希望你在將來寫下我的薪水!如果我工作1小時,你付我40分。 – tdelaney

+0

哈哈,迷惑'min'和'max'完全算是一個錯誤的錯誤吧?! –

3

如果你需要輸入兩個小時從用戶,你可以這樣做是這樣的:

hours = int(input('how many hours did you work? ')) 
rate = int(input('what is your hourly rate? ')) 

然後,一旦你擁有了這些變量,您可以通過計算加班啓動。

if hours > 40: 
    # anything over 40 hours earns the overtime rate 
    overtimeRate = 1.5 * rate 
    overtime = (hours-40) * overtimeRate 
    # the remaining 40 hours will earn the regular rate 
    hours = 40 
else: 
    # if you didn't work over 40 hours, there is no overtime 
    overtime = 0 

然後計算正常工作時間:

regular = hours * rate 

你的總薪酬爲regular + overtime

2
print("you earn", (hours + max(hours - 40, 0) * 0.5) * rate) 

或爲golfed版本

print("you earn", (hours*3-min(40,hours))*rate/2) 
+0

看起來非常相似,我做了一個稍微錯誤的評論;) –