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"
答案 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)
在可能的情况下,总是尽量保持简单,循环很有用,但试着质疑它们是否真的有必要。