create a function that will validate if given parameters are valid geographical coordinates valid coordinates look like the following 23 32353342 32 543534534 the return value should be either true or false latitude which is first float can be between 0 and 90 positive or negative longitude which is second float can be between 0 and 180 positive or negative coordinates can only contain digits or one of the following symbols including space after comma there should be no space between the minus sign and the digit after it here are some valid coordinates 23 25 43 91343345 143 4 3 and some invalid ones 23 234 23 4234 n23 43345 e32 6457 6 325624 43 34345 345 0 1 2 i ll be adding my attempt as well as my friend s solution took us 1 hour my attempt friends solutions using regular expression i ll be adding my attempt as well as my friend s solution took us 1 hour my attempt friends solutions using regular expression
import re
def is_valid_coordinates_0(coordinates):
    for char in coordinates:
        if not (char.isdigit() or char in ['-', '.', ',', ' ']):
            return False
    l = coordinates.split(", ")
    if len(l) != 2:
        return False
    try:
        latitude = float(l[0])
        longitude = float(l[1])
    except:
        return False
    return -90 <= latitude <= 90 and -180 <= longitude <= 180


def is_valid_coordinates_1(coordinates):
    try:
        lat, lng = [abs(float(c)) for c in coordinates.split(',') if 'e' not in c]
    except ValueError:
        return False

    return lat <= 90 and lng <= 180


def is_valid_coordinates_regular_expression(coordinates):
    return bool(re.match("-?(\d|[1-8]\d|90)\.?\d*, -?(\d|[1-9]\d|1[0-7]\d|180)\.?\d*$", coordinates))