Martin P. Hellwig wrote:
candide wrote:
To add to your implementations; a readable version:

+++file parantheses.py+++
"""Parentheses Module Test"""

def parentheses_are_paired(input_string):
"Check if 'input_string' contains paired parentheses, if so return True."
    parenthesis_count = 0
    parenthesis_open = '('
    parenthesis_close = ')'

    for character in input_string:
        if character == parenthesis_open:
            parenthesis_count += 1
        elif character == parenthesis_close:
            parenthesis_count -= 1


    if parenthesis_count == 0:
        return(True)
    else:
        if parenthesis_count < 0:
            error_text = 'More closing parantheses than opening ones'

        elif parenthesis_count > 0:
            error_text = 'More opening parantheses than closing ones'

        raise(ValueError(error_text))

if __name__ == '__main__':
    TEST_TRUE = 'zx4er(1(er(Yy)ol)ol)ik'
    TEST_ERROR = 'zx(4er(1(er(Yy)ol)ol)ik'

    print(parentheses_are_paired(TEST_TRUE))

    try:
        print(parentheses_are_paired(TEST_ERROR))
    except(ValueError):
        print(False)

---file parantheses.py---


However as Mr. Roggisch commented this wouldn't check if it is on the right spot, by moving the check that at any time you can not have more closing ones than opening ones within the loop you will get those exceptions too.

--
MPH
http://blog.dcuktec.com
'If consumed, best digested with added seasoning to own preference.'
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to