2014-01-31 46 views
-1

下面是問及以下問題,我將粘貼到目前爲止的代碼。任何指針都會很棒。請記住,這只是我第二週使用python(或任何編程),所以我不知道我在做什麼。你會如何編碼?無論如何,任何幫助非常感謝!Python指針/建議

我很想用%來弄清楚,而不是減去所有東西,但這兩種方法並不重要。

如果我在上午6:52離開我的房子,以輕鬆的速度(每英里8:15)跑1英里,然後再以3英里的速度(每英里7:12)和1英里再次輕鬆步伐,我什麼時候回家吃早餐?

seconds = 1 
hours = seconds/(60*60) 
seconds = seconds - hours*60*60 
minutes = seconds/60 
seconds = seconds - minutes *60 

time_left_house = 6 * hours + 52 * minutes 

miles_run_easy_pace = 2 * (8 * minutes + 15 * seconds) 

miles_run_fast_pace = 3 * (7 * minutes + 12 * seconds) 


total_time_run = miles_run_easy_pace + miles_run_fast_pace + time_left_house 

print total_time_run, "Total time run: " , hours, 'Hours: ', minutes, 'Minutes: ', seconds, 'Seconds: ‘ 

通知你,我使用python 2.7.6

+0

我同意探索'datetime'模塊和'timedelta's。 python標準庫中有相當多的將會爲你簡化這些類型的項目。 –

+0

我真的不知道你在這裏尋找什麼樣的答案。但是也許你想要codereview.stackexchange.com? –

回答

3

有可能你需要使用類從datetime模塊:http://docs.python.org/2/library/datetime.html,例如timedelta

這裏的例子:)

 
>>> from datetime import datetime, timedelta, time 
>>> time_left_house = datetime.combine(date.today(), time(hour = 6, minute = 52)) 
>>> miles_run_easy_pace = 2 * timedelta(minutes = 8, seconds = 15) 
>>> miles_run_fast_pace = 3 * timedelta(minutes = 7, seconds = 12) 
>>> total_time_run = time_left_house + miles_run_easy_pace + miles_run_fast_pace 
>>> print total_time_run 
2014-01-31 07:30:06 
>>> 
+0

除非您添加一些代碼來演示'timedelta'的使用,否則這會更好地作爲評論。 –

+0

嗯,好的。感謝您的鏈接,我會檢查出來。 – sjud9227

+0

那麼,給定的python文檔頁面有更多的例子,我可以提供:) – user3159253

1

你似乎混淆了你的代碼。開始的部分看起來像是將代碼total_time_run分成幾小時,幾分鐘和幾秒的代碼

將所有內容都計算爲秒可能是一個好主意。我已經使用大寫的轉換因子來區分它們是常量

SECONDS = 1 
MINUTES = 60 * SECONDS 
HOURS = 60 * MINUTES 

# All these results are in seconds 

time_left_house = 6 * HOURS + 52 * MINUTES 

miles_run_easy_pace = 2 * (8 * MINUTES + 15 * SECONDS) 

miles_run_fast_pace = 3 * (7 * MINUTES + 12 * SECONDS) 

total_time_run = miles_run_easy_pace + miles_run_fast_pace + time_left_house 

# So we now have a big number of seconds to split into hours/minutes/seconds 

hours = total_time_run // HOURS 

# the left over part is minutes and seconds (still in seconds) 

part_hour = total_time_run % HOURS 
minutes = part_hour // MINUTES 
seconds = part_hour % MINUTES 

print "Total time run: {}, Hours: {}, Minutes: {}, Seconds: {}".format(
    total_time_run, hours, minutes, seconds) 
+0

你太棒了!這幫助我理解了很多!我仍然對一些事情感到困惑。一,dbl到底是做什麼的?從我記得有關地板劃分的事情中,nt確定了這意味着什麼。第二,我沒有100%清楚part_hour部分。最後一個我發誓....當我運行它時,它說明了正確的答案,但總數的時間運行後,數字27006,我不知道這個數字是什麼或它如何在那裏結束。我知道我的問題可能是愚蠢的大聲笑,請記住我很新。 – sjud9227