yangzhixiaohuli 发表于 2023-12-20 15:04:39

请问你知道NEUQer现在在做什么吗?

NEUQer同学是今年将要大学入学的准新生,在知道我们的新生编程训练营后就计划参加训练营学习编程,为了夯实指法基础,还参加了NEUQer指法训练营第四期。他了解到计算机专业对英语基础要求很高,所以还每天计划学习英语。因此,在开学前的这一个月内,他每天的学习任务是英语、指法和编程。为了了提高学习效率,他计划早6点前晚6点后在家里休息,早上6点至7点、中午12点至1点、下午5点至6点是每天的就餐时间,其余时间在分配在三项学习任务上。

请问你知道NEUQer现在在做什么吗?

(本题要求不使用 if语句和switch语句)

输入格式:
一行中给出当天的一个时间点,形如:HH:MM:SS,HH表示小时,MM表示分,SS表示秒,全天时间采用24小时制表示。

输出格式:
根据不同情况,输出一行文本,确定在休息输出:resting;确定在就餐时段则输出:eating;确定在学习状态就输出:studying;两段时间交接处不确定在干什么时输出:on the way。

输入样例1:
20:10:20
输出样例1:
resting
输入样例2:
06:00:00
输出样例2:
on the way
输入样例3:
08:00:00
输出样例3:
studying
输入样例4:
17:30:00
输出样例4:
eating


这题怎么做

FishC 发表于 2023-12-20 15:04:50

NEUQer同学计划的时间段是早6点前晚6点后休息,在6点至7点、12点至1点和5点至6点这三个时间段就餐,其余时间学习。我们可以先根据给定的时间判断是否在休息时间段内,再判断是否在就餐时间段内,最后判断是否在学习时间段内。

首先,我们可以判断给定的时间是否早于6点或晚于18点:
time_str = input()# 输入时间
hour = int(time_str.split(':'))# 获取小时部分

if hour < 6 or hour >= 18:
    print('resting')

接下来,如果不在休息时间段内,再判断是否在就餐时间段内:
elif (hour == 6 and 0 <= minute <= 59) or (hour == 12 and 0 <= minute <= 59) or (hour == 17 and 0 <= minute <= 59):
    print('eating')

最后,如果既不在休息时间段,也不在就餐时间段内,则说明在学习时间段内:
else:
    print('studying')

最后一个问题是如何判断两段时间交接处的情况?
我们可以将早上6点和晚上6点之间的时间段独立出来,即6:00:00到17:59:59之间的情况:
elif 6 <= hour < 17:
    print('on the way')

将以上代码整合起来,就可以解决这个问题了。完整代码如下:

time_str = input()# 输入时间
hour, minute, second = map(int, time_str.split(':'))# 获取小时、分钟和秒

if hour < 6 or hour >= 18:
    print('resting')
elif (hour == 6 and 0 <= minute <= 59) or (hour == 12 and 0 <= minute <= 59) or (hour == 17 and 0 <= minute <= 59):
    print('eating')
elif 6 <= hour < 17:
    print('on the way')
else:
    print('studying')

希望能帮到你,祝NEUQer同学学习顺利!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 请问你知道NEUQer现在在做什么吗?