2014-01-31 48 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