开发一个功能来显示没有进口的时间

时间:2015-10-11 22:50:29

标签: python time

def show_time(hour,min):
    hour = int(input())
    min = ''
    for hour in (hour,min):
        while 24 >= hour > 12:
            hour -= 12
            min == min
            return hour, ":" min,'pm'
        if hour < 12:
            if 0 <= min <= 59 
            hour == hour
            min == min
            return hour, ":" min,'am'

所以这是我的代码到目前为止。^^ 当我运行这段代码时,我一直在为一个人进行无限循环......另一件事就是......我觉得我完全不在了。顺便说一句..我试图这样做而不导入任何东西并使用字符串格式化方法。请帮忙! 这是我的指示......

def show_time(小时,分钟):接受小时的整数(0到23之间的值)和分钟
(值从0到59)。构造正确的时钟表示,例如下面的示例。 o您必须使用格式化方法。 o示例:

! show_time(9,15) → "9:15am"
! show_time(0,0) → "12:00am"
! show_time(12,0) → "12:00pm"
! show_time(22,5) → "10:05pm"

3 个答案:

答案 0 :(得分:0)

正确的代码应该是这样的:

def show_time(hour,min):
    hour = int(hour)
    min = int(min)
    if hour > 12:
        hour -= 12
        return str(hour) + ":" + str(min) + 'pm'
    else:
        return str(hour) + ":" + str(min) + 'am'

print show_time(9,15)

你应该在简单的层面上思考。 for和while循环是不必要的。

答案 1 :(得分:0)

我无法得到你想要使用循环实现的目标,但这是一个简单的解决方案。

def show_time(hour, minutes):
    if hour >= 12:
        suffix = "pm"
        if hour != 12:
            hour -= 12
    else:
        suffix = "am"
        if hour == 0:
            hour = 12
    return "{0}:{1:02}{2}".format(hour, minutes, suffix)

希望它有所帮助。

答案 2 :(得分:0)

这个怎么样:

def show_time(hour, min):
    if hour > 24 or min > 59 or hour < 0 or min < 0:
        raise ValueError("Invalid input")
    # which half of day is this?
    is_pm = (hour / 12.0) > 1
    # normalize time in 0 to 11
    hour = hour % 12
    # get the correct half of day readable form
    half_day = "pm" if is_pm else "am"
    # print it out
    print "%02d:%02d%s" % (hour, min, half_day)

在可能的情况下,总是尽量保持简单,循环很有用,但试着质疑它们是否真的有必要。