+ 2
I fail to pass sololearn tests
My regards to everyone. I am trying to solve every riddle in sololearn environment but I got stuck with the one called "convert date from US to EU'", particularly with passing sololearn tests. When I test it by myself in full python environment, every input gives me a desired outcome, however the code fails to pass some sololearn tests. Can you please give me a hint where to look at. Here is my code, I hope I did the right way reffing to it https://code.sololearn.com/c9UWg5Yebd2u/?ref=app
34 ответов
+ 1
You can also try this approach!!!!
import re
months = ["January", "Febuary", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
s= input()
if bool(re.search('[a-zA-Z]', s)):
n=months.index(re.findall('[a-zA-Z]+', s)[0])+1
date=s.split(',')
print(re.findall('[\d]+',date[0])[0]+'/'+str(n)+'/'+date[1].strip())
else:
n=s.split('/')
print(n[1]+'/'+str(n[0])+'/'+n[2])
+ 12
you should put a space after the comma, the input must fit the codecoach instructions
'November 01, 2010'
+ 7
Rik Wittkopp string isn't a keyword ;)
The rest I fully agree with.
+ 5
Wow, thank you very much guys for brain storming ♥️ this feeling when strangers help you to solve a problem is just amazing, if only in every domain of life it's implied
+ 5
I think that with every test just another skill of coding that we got is tested. For example, for this task they want to test us how to create a function🙆
+ 4
I think that in output2 you should print splt_string[2] instead of date[1]
output2 = '{}/{}/{}'.format(int(date[0]), month_dict[month], splt_string [2])
+ 4
Russ Thanks for the correction.
I will review........again 😁
+ 4
Not a keyword, ok 😅
+ 4
Code Crasher I thought that might be the case too🤔
+ 4
Oh, I got it, I thought there is no space in 19,2019
+ 4
Code Crasher my code is just for the challenge so I don't validate the input, but you are right in your point.
+ 3
Rik Wittkopp I converted it into a int() in case if input is '01/01/2010' and output must be '1/1/2010'. I didn't know about 'string' being a keyword, thank you for your answer
+ 3
Just go back and read the chapter again is the good idea
+ 2
no, splt_string contains ['month_name', 'date_no,', 'year'] as Russ said it.
+ 2
us=input()
def temp(month):
month=month.lower()
d={"january":1,'february':2,'march': 3,'april':4,'may':5,'june':6,'july':7,'august':8,'september':9,'october':10,'november':11,'december':12}
m=str(d[month])
return m
if "/" in us:
us=us.split('/')
eu=[]
eu.append(us[1])
eu.append (us[0])
eu.append(us[2])
eu="/".join(eu)
else:
us=us.split (' ')
eu=[]
euu=us[1].split (',')
eu.append(euu[0])
eu.append (temp(us[0]))
euuu=euu[1]
eu.append(us[2])
eu='/'.join(eu)
print(eu)
+ 1
Looking at it now
+ 1
Your code doesn't pass the second test and I think won't pass any test in that format.
In your second section, string.split() will give you
['month_name', 'day_no,', 'year']
but you seem to treat it like the day and the year will appear in the same element as each other.
+ 1
Shamil Erkenov
Ok buddy.
The main problem seems to be that when an input is something like November 17, 2009 your output does not generate the year.
Might I also suggest that you replace the word string with date.
string is a python keyword which may cause confusion with the program.
Also, I don't think you need to convert aspects of your string into integers as you are not doing any math.
See how you go.
Please excuse me for not providing a direct answer, but code coach is all about being able to resolve the problem yourself.
+ 1
Shamil Erkenov did you try what I suggested? replace date[1] with splt_string[2] in output2
output2 = '{}/{}/{}'.format(int(date[0]), month_dict[month], splt_string [2])
I don't think it's a date validation problem.
+ 1
I just tested it, SIGH!
I thought it operated like int or float, but now I know better.
Thanks guys. 😁👍