3

我希望在此程序中执行以下操作:

我想要求用户设置他们想要睡觉的时间范围(从他们睡觉到醒来)。然后,奖励积分与他们在该范围内的睡眠时间成正比。

请记住,我昨天开始学习 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 和其他编程语言的其他建议,因为我正在快速浏览这些材料。

4

2 回答 2

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"

然后调用你的函数。

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

于 2013-07-04T06:16:28.663 回答
1

对于您的第二部分,udacity CS101 是 Python 入门的绝佳资源。你可以从那门课程中学到很多东西。

于 2013-07-04T07:01:35.753 回答