Military Time ==[ Case#4 Failed ]== | Sololearn: Learn to code for FREE!
0

Military Time ==[ Case#4 Failed ]==

This is my Military Time task testing 4 my code. My code output meet the requirements. But Failed in Case #4. Can anyone help me please! ­čą▓ And Sorry for my not good English. https://code.sololearn.com/cNrhWXgAsM8s/?ref=app

12th Nov 2021, 12:30 AM
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓ - avatar
18 Antworten
+ 5
EmptySpace his code works but more importantly is why isn't yours
12th Nov 2021, 3:22 AM
BroFar
BroFar - avatar
+ 3
try Axel_ 1:00 PM
14th Nov 2021, 5:47 AM
BroFar
BroFar - avatar
+ 2
EmptySpace They are looking for a single input and a single output Your code however requires no input and several lines of output 1:00 PM should be 13:00 remember to use split() with input()
12th Nov 2021, 1:51 AM
BroFar
BroFar - avatar
+ 2
EmptySpace did you try my above comment? It gives a key error for that kind of inputs. The reason is because there is no key that starts with 0 in the dictionary. For example, it should return 16:45 for input 04:45 PM. Your code fails to pass this type of inputs. So, you have to add another key-value pairs that contain this thing. (Spoiler: add this pair in your dictionary. "04:"16")
12th Nov 2021, 3:41 PM
Python Learner
Python Learner - avatar
+ 2
JUMP_LINK__&&__Python__&&__JUMP_LINK Learner Oh! Really thank you ­čÖé. I forgot to write for XX:XX PM condition. Thanks to all bros.
12th Nov 2021, 6:33 PM
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓ - avatar
+ 2
t = input().split() hm = t[0].split(":") h = int(hm[0]) if t[1] == "PM": h = 12 if h == 12 else h + 12 else: h = 0 if h == 12 else h print(f"{h:0>2}:{hm[1]}") # 0>2 pads to 2 digits with zeros Done
13th Nov 2021, 2:37 PM
Sunday Yemi Olanisimi ­čç│­čçČ
Sunday Yemi Olanisimi ­čç│­čçČ - avatar
+ 1
Does this answer your question? https://www.sololearn.com/Discuss/2878582/?ref=app But, we don't see any input variable in your code
12th Nov 2021, 1:03 AM
Python Learner
Python Learner - avatar
+ 1
Try this: a=input() b=a.replace("AM","").replace ("PM","") ans="" if a[-2:]=="PM": if b[1]==":": ans=str(int(b[0])+12)+b[1:] elif b[0:2]== "12": ans="12"+b[2:] else: ans=str(int(b[0:2])+12)+b[2:] else: if b[1]==":": ans="0"+b[0:] elif b[0:2]=="12": ans="00"+b[2:] else: ans=b print(ans)
12th Nov 2021, 2:48 AM
Arun Jamson
Arun Jamson - avatar
+ 1
EmptySpace did you try that code ?
12th Nov 2021, 3:03 AM
BroFar
BroFar - avatar
+ 1
BroFar Bro do you mean Arun Jamson's code or my code?
12th Nov 2021, 3:10 AM
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓ - avatar
+ 1
Don't complicate your code, as python was designed to write easy programs, try my code and you will see some tips : string = input().split() hour = string[0].split(":") h = int(hour[0]) if string[1] == "PM" : h += 12 print(("0" if h < 10 else ""), h, ":", hour[1], sep="")
12th Nov 2021, 2:52 PM
VCoder
VCoder - avatar
+ 1
EmptySpace Your attempt too complex and you choose to check every condition, excessive IMHO. I chose to treat inputs as simple as possible and work with hours only. I also could make it shorter, anyway take a look at my solution: https://code.sololearn.com/cF4X0zYyp9Nw/?ref=app
12th Nov 2021, 6:22 PM
Ilyas Bakirov
Ilyas Bakirov - avatar
+ 1
Lord_ your code would not pass
13th Nov 2021, 4:31 PM
BroFar
BroFar - avatar
0
""" < time_lst > is the user inputs for testing my code output """
12th Nov 2021, 1:09 AM
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓ - avatar
0
BroFar Here's my actual code import re usr_time = input() time = { "1":"13","2":"14","3":"15", "4":"16","5":"17","6":"18", "7":"19","8":"20","9":"21", "10":"22","11":"23","12":"00", } find = re.findall(r"\w{1,}", usr_time) if find[2] == "AM" and find[0] == "12": find[0] = time[find[0]] if find[2] == "AM" and find[0] != "12": if len(find[0]) == 1: find[0] = "0" + find[0] if find[2] == "PM" and find[0] == "12": find[0] = find[0] if find[2] == "PM" and find[0] != "12": find[0] = time[find[0]] find.insert(1, ":") find.pop() print("".join(find)) =============================== < time_lst > is the user inputs and for loop is for testing my code output from my linked code
12th Nov 2021, 1:58 AM
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓ - avatar
0
BroFar Bro please check my code and help me. I don't know how to pass the Test Case #4 according to my code. PLEASE!
12th Nov 2021, 3:30 AM
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓
­čç▓­čç▓Ôśâ´ŞĆ(0_0)Ôśâ´ŞĆ­čç▓­čç▓ - avatar
0
Hey folk why canÔÇÖt you just write smth like that https://code.sololearn.com/c2jO2gJY46GF/?ref=app
13th Nov 2021, 10:13 AM
US Department Of State
US Department Of State - avatar
0
BroFar But I wrote this code when I was solving the Militaty Time task and it had passedÔÇŽ Why do you think it would not pass? I am really interesed
14th Nov 2021, 3:46 AM
US Department Of State
US Department Of State - avatar