我的代码片段需要一些帮助。我的字符串范围是0到24。
如果我有显示13
的字符串,我想将其转换为12小时,以使字符串显示1
而不是13
。
for program_end_time in self.program_end_time:
program_stop_hours = str(program_end_time.hour)
#Now I would like to convert it to 12 hours instead of 24
我想将24小时转换为12小时的原因是因为我想减少代码而不是:
if program_stop_hours == "0":
program_stop_hours = "12"
program_AM_PM = 'AM'
elif program_stop_hours == "1":
program_stop_hours = "1"
program_AM_PM = 'AM'
elif program_stop_hours == "2":
program_stop_hours = "2"
program_AM_PM = 'AM'
elif program_stop_hours == "3":
program_stop_hours = "3"
program_AM_PM = 'AM'
elif program_stop_hours == "4":
program_stop_hours = "4"
program_AM_PM = 'AM'
elif program_stop_hours == "5":
program_stop_hours = "5"
program_AM_PM = 'AM'
elif program_stop_hours == "6":
program_stop_hours = "6"
program_AM_PM = 'AM'
elif program_stop_hours == "7":
program_stop_hours = "7"
program_AM_PM = 'AM'
elif program_stop_hours == "8":
program_stop_hours = "8"
program_AM_PM = 'AM'
elif program_stop_hours == "9":
program_stop_hours = "9"
program_AM_PM = 'AM'
elif program_stop_hours == "10":
program_stop_hours = "10"
program_AM_PM = 'AM'
elif program_stop_hours == "11":
program_stop_hours = "11"
program_AM_PM = 'AM'
elif program_stop_hours == "12":
program_stop_hours = "12"
program_AM_PM = 'PM'
elif program_stop_hours == "13":
program_stop_hours = "1"
program_AM_PM = 'PM'
elif program_stop_hours == "14":
program_stop_hours = "2"
program_AM_PM = 'PM'
elif program_stop_hours == "15":
program_stop_hours = "3"
program_AM_PM = 'PM'
elif program_stop_hours == "16":
program_stop_hours = "4"
program_AM_PM = 'PM'
elif program_stop_hours == "17":
program_stop_hours = "5"
program_AM_PM = 'PM'
elif program_stop_hours == "18":
program_stop_hours = "6"
program_AM_PM = 'PM'
elif program_stop_hours == "19":
program_stop_hours = "7"
program_AM_PM = 'PM'
elif program_stop_hours == "20":
program_stop_hours = "8"
program_AM_PM = 'PM'
elif program_stop_hours == "21":
program_stop_hours = "9"
program_AM_PM = 'PM'
elif program_stop_hours == "22":
program_stop_hours = "10"
program_AM_PM = 'PM'
elif program_stop_hours == "23":
program_stop_hours = "11"
program_AM_PM = 'PM'
我想让它像这样显示:
if program_stop_hours >= 0 and if program_stop_hours <= 12:
program_stop_hours = str(program_stop_hours, convert_to_12_hours)
program_AM_PM = 'AM'
else:
program_stop_hours = str(program_stop_hours, convert_to_12_hours)
program_AM_PM = 'PM'
你能告诉我一个如何在python中做到这一点的例子吗?
答案 0 :(得分:3)
你真的只需要测试两种情况:program_stop_hours小于或等于12或者大于12.您可以这样做:
program_stop_hours = input("Enter program stop hours: ")
if program_stop_hours >= 0 and program_stop_hours <= 12:
program_stop_hours = str(program_stop_hours)
program_AM_PM = 'AM'
else:
program_stop_hours = str(program_stop_hours - 12)
program_AM_PM = 'PM'
print program_stop_hours
print program_AM_PM
确保正确处理各种条件,例如program_stop_hours:小于零;正好12(确保它在那种情况下做你想要的);超过24(你不测试);并且恰好是24(以确保它按照您的意图处理该情况)。
答案 1 :(得分:0)
这样做,你将需要修改它以适应你的formattig需要,但它很短
>>> def convert24(x):
am = "AM" if x < 12 else "PM"
r = 12 if not x%12 else x%12
return "{:0>2d}:00 {}".format(r, am)
>>> convert24(0)
'12:00 AM'
>>> convert24(13)
'01:00 PM'
>>> convert24(23)
'11:00 PM'