2013-08-05 188 views
1

所以我假設寫一篇關於如何計算繳納該工作近40任何員工支付在時間和一半的員工代碼,以便聽到我的代碼if和else語句時半

hours = int(input('how many hours did you work')) 
hour = int(input('how many hours did you work overtime')) 
rate = 1.50 
pay = hours*rate 

if hours>40: 
    pay = 40*1.5+hour*(1.5*rate) 
else: 
    40<hours 

print('you earned',pay) 

我哥哥表示,其想問問你一次不那麼兩次幫助也許

+2

'其他:40 Nemoden

+0

我編輯爲python會解釋的內容,所以很明顯這裏有一個錯誤。正確使用縮進或精確格式化,你在你的代碼寫的...如果你它是寫'ELIF 40 <小時意,「如果別人」:' –

+1

你需要做更多的Python教程。在我看來,你正在或多或少地編寫代碼,並希望它能起作用。編程不能這樣工作, –

回答

1

如果你知道加班是什麼,過去的40個小時,你可以比較小時的人合作,以40搞清楚加班量的數量,而不是請求用戶分別加班。

1

你可以意識到這是hours - 40或爲零,取較大者計算加班。此外,正常工作時間的上限爲40小時。所以minmax將是有益的位置:

hours = int(input('how many hours did you work')) 
wageRate = 1.50 
overtimeRate = wageRate * 1.5 
pay = min(40, hours) * wageRate   # regular hours 
pay += max(hours - 40, 0) * overtimeRate # add overtime 
print('you earned',pay) 
+0

這個答案有什麼問題,以便我可以修復它? – jh314

+0

它的速率= 1.5這就是問題所在你的計算應(速率*分鐘(40小時))+(MAX(0,小時 - 40)* 1.5 *率)。 @Nirks下面的答案是使用'rate'來表示加班費,總是1.5。也許稱其爲OT而不是「率」將清除了 – theodox

+0

我只是有兩個單獨的行(一個工資正常,一個用於加班)只的情況下 – jh314

1
hours = int(input('how many hours did you work? ')) 
rate = 1.5 # or whatever normal pay rate is 
pay = rate * (hours + 0.5 * max(hours-40,0)) 
1

只是爲了澄清@ jh314的問題。

hours = float (input('how many hours did you work?')) # < hours can be fractional 
OT = 1.5  # OT calculation in US. A constant for this purpose 
WAGES = 16.00 # hourly rate, also usually a float! 
pay = min(hours, 40) * WAGES 
pay += max(hours - 40, 0) * WAGES * OT 
print "You earned $ %0.2f " % pay 

對於一個真正的應用程序,你可能會計算它使用員工的具體率:

def calc_wages(hrs, rate): 
    OT = 1.5 
    pay = min(hours, 40) * rate 
    pay += max(hours - 40, 0) * rate * OT 
    return pay 
+0

好像@jh和我決鬥......編輯答案現在除了有效我加浮動處理和2位小數打印相同 – theodox