24-часовое преобразование времени на 12-часовые часы (ProblemSetQuestion) на Python

Я начинающий программист в Python, и я не знаю, как продолжить следующий вопрос. Там есть тонна подобных вопросов, однако нет никакого отношения к коду Python.

Я попытался сравнить строки, но я не уверен, как сделать сравнение. Я уверен, что мне нужно взять первые два числа (часы) и разделить на 12, если их больше 12 … но это создает проблемы.

Вопрос:

Преобразование времени (от 24 часов до 12 часов)

Напишите функцию, которая позволит пользователю конвертировать 24-часовой формат времени в 12-часовой формат (с добавлением «am», «pm»). Пример: от «1400» до «2:00 pm». Все строки, переданные в качестве параметра, будут иметь длину 4 и будут содержать только цифры.

Примеры (тесты / вызовы):

>>> convertTime('0000') '12:00am' >>> convertTime('1337') '1:37pm' >>> convertTime('0429') '4:29am' >>> convertTime('2359') '11:59pm' >>> convertTime('1111') '11:11am' 

Любой вход или разные методы были бы замечательными!

2 Solutions collect form web for “24-часовое преобразование времени на 12-часовые часы (ProblemSetQuestion) на Python”

Вы можете использовать модуль datetime, но тогда вам также придется иметь дело с датами (вы можете вставить туда, где хотите). Наверное, проще просто разобрать его.


Обновление: поскольку @JonClements указали в комментариях к исходному вопросу, это можно сделать с помощью одного лайнера:

 from datetime import datetime def convertTime(s): print datetime.strptime(s, '%H%M').strftime('%I:%M%p').lower() 

Вы можете разделить входную строку в часах и минутах следующим образом:

 hours = input[0:2] minutes = input[2:4] 

Затем проанализируйте значения, чтобы получить целое число:

 hours = int(hours) minutes = int(minutes) 

Или, чтобы сделать это более питоническим способом:

 hours, minutes = int(input[0:2]), int(input[2:4]) 

Затем вам нужно решить, находится ли время утром ( hours от 0 до 11) или днем ​​( hours от 12 до 23). Также не забудьте обработать специальный случай за hours==0 :

 if hours > 12: afternoon = True hours -= 12 else: afternoon = False if hours == 0: # Special case hours = 12 

Теперь у вас есть все, что вам нужно, и что осталось – отформатировать и распечатать результат:

 print '{hours}:{minutes:02d}{postfix}'.format( hours=hours, minutes=minutes, postfix='pm' if afternoon else 'am' ) 

Оберните его функцией, возьмите несколько ярлыков, и у вас останется следующий результат:

 def convertTime(input): h, m = int(input[0:2]), int(input[2:4]) postfix = 'am' if h > 12: postfix = 'pm' h -= 12 print '{}:{:02d}{}'.format(h or 12, m, postfix) convertTime('0000') convertTime('1337') convertTime('0429') convertTime('2359') convertTime('1111') 

Результаты в:

 12:00am 1:37pm 4:29am 11:59pm 11:11am 

Некоторые подсказки int («2300») возвращают целое число 2300 2300 – это PM. время> = 1200 – время PM между 0000 и 1200 – это AM.

Вы можете сделать функцию, которая принимает строку, оценивает ее как целое, а затем проверяет, больше она или меньше указанных выше условий и возвращает печать.

  • Редактирование csv-файла для редактирования подсетей, чтобы не было перекрытия в диапазонах IP (модуль ipaddress в Python 3.3)
  • Фильтр шаблонов Django strip_tags добавляет пространство
  • Как выбрать строки, которые содержат определенное значение, по крайней мере, в одном из элементов в строке?
  • Как читать и упорядочивать текстовые файлы, разделенные по ключевым словам
  • Конец поддержки для python 2.7?
  • Эквивалентно опции -R python, которая влияет на хэш ints
  • Альтернатива execfile в Python 3?
  • Python3 urllib.request не будет закрывать соединения немедленно
  • Соответствие регулярных выражений между двумя строками?
  • Завершить потоки GObject.Mainloop () вместе с основными
  • Введенный график Matplotlib в Tkinter падает на Python 3.5
  •  
    Interesting Posts for Van-Lav

    Как проверить, существует ли схема PostgreSQL с помощью SQLAlchemy?

    Как преобразовать текстовый файл в список в Python

    Добавление макросов в Python

    Двойное подчеркивание для метода Python * аргумент *

    Проверка словаря с использованием точечной нотации

    Python неживые регулярные выражения

    Правильный способ создания функций, расширяемых пользователем

    Запуск команд оболочки Windows с помощью python

    Поиск почтового ящика IMAP для сообщений от отправителя specefic и использования wild cards?

    Проверьте дополнительные символы в буфере терминала Linux

    Как выполнить запрос на основе даты и времени с использованием SQLite в Python?

    Определение того, перенаправляется ли stdout для процесса Python

    Каков наилучший способ заменить тернарный оператор в Python?

    Как автоматически получить номер порта. аппаратного обеспечения в python serial communcation?

    Запоминающая библиотека Python в памяти

    Python - лучший язык программирования в мире.