寻找指导继续我的第一个计划

时间:2013-07-04 05:52:16

标签: python

我希望在此计划中执行以下操作:

我想让用户设定他们想睡觉的时间范围(从他们进入睡眠状态直到他们醒来的时间)。然后,奖励积分与他们在该范围内睡觉的小时数成比例。

请记住,我昨天开始学习Python,之前没有任何编程语言的经验。

这是我到目前为止所得到的:

# Timeslot(TS) of hours slept.
TS_start_sleep = int(raw_input("What time did you go to sleep last night:"))
TS_end_sleep = int(raw_input("What time did you wake up this morning:"))

def sleep_TS(points):
    if

此外,这是我的计划的第一部分(如果它有助于显示我的知识水平)。这部分工作正常(我调试了所有内容),但请随意提出可以使其更好/更有效的方法。

points = 0      # Beginning points.

# SLEEP

# Amount of hours slept.
hrs_slept = int(raw_input("Hours slept today:"))

def sleep_length(points):
    if hrs_slept == 8:
        points += 50
    elif 9 <= hrs_slept <= 17:
        points = -10 * hrs_slept + 120
    elif 4 <= hrs_slept <= 7:
        points = 10 * hrs_slept - 40
    elif 0 <= hrs_slept <= 3:
        points = 10 * hrs_slept - 50
    else:
        print "Invalid input. Valid hours are between 0 and 17."
    points_sleep_length = points
    print "+", points, "points"

    sleep_length(points)

感谢您阅读!

编辑:另外,到目前为止,我一直在使用Codeacademy来学习python。但是,我也有兴趣听听社区推荐学习python和其他编程语言的其他内容,因为我很快就会阅读这些材料。

2 个答案:

答案 0 :(得分:2)

我在这里没有看到一个问题,是否有某些具体的问题困扰你?

你可能会考虑的一件事是:目前它看起来像是先输入小时数,然后你根据他们输入的内容调用你的函数。直到函数结束时才会告诉他们小时是否无效,然后你必须再次运行程序。一旦有效输入完成,最好只进行调用。

例如:

hrs_slept = input("Hours Slept Today:")
while hrs_slept not in xrange(0, 18):
    print "Invalid input. Valid hours are between 0 and 17"
    print "Please try again"
    hrs_slept = input(Hours Slept Today:")
print "You slept for " + str(hrs_slept) + " hours"

然后调用你的函数。

请注意,这仅适用于整个小时。如果您想允许他们输入小时的十进制值,您将需要使用另一种策略。

答案 1 :(得分:1)

对于你的第二部分,udacity CS101是开始使用python的绝佳资源。你可以从那门课程中学到很多东西。