Сбой нескольких неизвестных тестовых случаев - строковые операции - PullRequest
0 голосов
/ 15 апреля 2020

Следующий код не охватывает все тестовые случаи, и в некоторых случаях происходит сбой при преобразовании времени в формат AM / PM / час, конвертируйте его в военное (24-часовое) время.

Образец ввода: 07:05:45 PM

Образец вывода: 19: 05: 45

Все входы времени действительны.

 #!/bin/python3

import os
import sys

def timeConversion(s):
    #
    # Write your code here.
    #
    #l = len(s)
    parts = s.split(':')
    print(parts)
    finder = parts[2][2:]
    print(finder)
    parts[2]=int(parts[2][:2])
    print(parts[2])
    tail = str(parts[2])
    print(tail)
    mil = int(parts[0])
#dn = finder(2,:)
    #print(finder)
    if finder == 'PM' and mil<12:
        mil_temp = mil+12
        military = str(mil_temp)
    elif finder == 'AM' and mil<12:
        mil_temp = mil
        military = str(mil_temp)
    elif finder =='AM' and mil==12:
        military = '00'
    elif finder =='PM' and mil==12:
        military = '12'
    fin = military+':'+parts[1]+':'+tail
    return(fin)

1 Ответ

1 голос
/ 15 апреля 2020

Почему бы просто не использовать встроенный модуль datetime следующим образом:

from datetime import datetime

input_str = "07:05:45PM"

try:
    output_str = datetime.strptime(input_str, "%I:%M:%S%p").strftime("%H:%M:%S")
except ValueError:
    output_str = None

print(output_str)

ВЫХОД:

19:05:45

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...