Question: 
Write a function to check whether a given string has a capital letter, a lower case letter, a number and specified length using lambda function.


Model's Code:
def check_string(s):
    checks = [
        (lambda s: 'String must have 1 upper case character.' if not any(c.isupper() for c in s) else None),
        (lambda s: 'String must have 1 lower case character.' if not any(c.islower() for c in s) else None),
        (lambda s: 'String must have 1 number.' if not any(c.isdigit() for c in s) else None),
        (lambda s: 'String length should be atleast 8.' if len(s) < 8 else None)
    ]
    results = [check(s) for check in checks]
    results = [result for result in results if result is not None]
    return results if results else ['Valid string.']



Sample Correct Code:
def check_string(str1):
    messg = [
    lambda str1: any(x.isupper() for x in str1) or 'String must have 1 upper case character.',
    lambda str1: any(x.islower() for x in str1) or 'String must have 1 lower case character.',
    lambda str1: any(x.isdigit() for x in str1) or 'String must have 1 number.',
    lambda str1: len(str1) >= 7                 or 'String length should be atleast 8.',]
    result = [x for x in [i(str1) for i in messg] if x != True]
    if not result:
        result.append('Valid string.')
    return result  


Asserts:
assert check_string('python')==['String must have 1 upper case character.', 'String must have 1 number.', 'String length should be atleast 8.']
assert check_string('123python')==['String must have 1 upper case character.']
assert check_string('123Python')==['Valid string.']


Tests:
Test 1 of 3: PASS
Test 2 of 3: PASS
Test 3 of 3: PASS

Test 523 of 974: 386/523 (73.80497131931166%): success