我希望在此计划中执行以下操作:
我想让用户设定他们想睡觉的时间范围(从他们进入睡眠状态直到他们醒来的时间)。然后,奖励积分与他们在该范围内睡觉的小时数成比例。
请记住,我昨天开始学习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和其他编程语言的其他内容,因为我很快就会阅读这些材料。
答案 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的绝佳资源。你可以从那门课程中学到很多东西。