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

Construa uma função que retorne se uma sequencia de caracteres (string) passado como parâmetro possui ou não apenas caracteres numéricos.
Utilizando pseudocódigo, desenvolva uma solução que apresente o fatorial de todos os números entre 0 e 10. Utilize uma função para retornar o fatorial de cada valor.
Construa um algoritmo que solicite os seguintes dados de um aluno: RA, NOME, DISCIPLINA, CARGA HORÁRIA, NOTA1, NOTA2, SUB e FREQUENCIA obtida na disciplina. Posteriormente, apresente se o aluno está ou não aprovado, considerando que a nota mínima para aprovação seja 7 e frequência mínima . Obs. Utilize procedimentos e funções.
Exercícios 3.2: Para uma determinada rampa, temos os dados da tabela abaixo. Complete a tabela e calcule o índice de subida.
Ponto Afastamento Altura
A 4 m 8 m
B 4 m
C 1 m
D 6 m
E 5 m
F 10 m