Construa uma função que retorne VERDADEIRO ou FALSO quanto ao critério de uma senha passado por parâmetro. A senha deverá ter de 8 a 12 caracteres e possuir ao menos um caractere numérico, ao menos um caractere especial, ao menos um caractere de letra minúscula e ao menos um caractere de letra maiúscula.

Passo 1

Beleza, vamos lá! Você precisa criar uma função que verifica se uma senha atende a certos critérios. A senha deve ter entre 8 e 12 caracteres, ter pelo menos um número, um caractere especial, uma letra minúscula e uma letra maiúscula. Para resolver isso, vamos usar conceitos básicos de programação como manipulação de strings e uso de expressões regulares.

Passo 2

Primeiro, vamos definir a função. Vamos chamar ela de validar_senha e ela vai receber uma senha como parâmetro.

Passo 3

Dentro da função, vamos verificar se o tamanho da senha está entre 8 e 12 caracteres. A gente pode usar a função len() para isso.

Passo 4

Agora, precisamos verificar se há pelo menos um número na senha. Podemos fazer isso usando uma expressão regular que procura por dígitos de 0 a 9.

Passo 5

Em seguida, vamos conferir se existe pelo menos um caractere especial. Caractere especial pode ser qualquer símbolo que não seja uma letra ou número. Usamos outra expressão regular para isso.

Passo 6

Depois, vamos verificar se tem pelo menos uma letra minúscula na senha. Mais uma vez, uma expressão regular vai ajudar a encontrar se há alguma letra de ‘a’ a ‘z’.

Passo 7

Por fim, vamos checar se tem pelo menos uma letra maiúscula, usando uma expressão regular que busca por letras de ‘A’ a ‘Z’.

Passo 8

Se a senha passar por todas essas verificações, a função retorna True (VERDADEIRO). Caso contrário, retorna False (FALSO).

Resposta

import re

def validar_senha(senha):
    # Verifica o tamanho da senha
    if len(senha) < 8 or len(senha) > 12:
        return False
    # Verifica se há pelo menos um número
    if not re.search(r'\d', senha):
        return False
    # Verifica se há pelo menos um caractere especial
    if not re.search(r'[^A-Za-z0-9]', senha):
        return False
    # Verifica se há pelo menos uma letra minúscula
    if not re.search(r'[a-z]', senha):
        return False
    # Verifica se há pelo menos uma letra maiúscula
    if not re.search(r'[A-Z]', senha):
        return False
    return True

# Exemplos de uso:
print(validar_senha("Senha123!"))  # Deve retornar True
print(validar_senha("senha"))      # Deve retornar False

Exercícios relacionados