Salve aspira! Bem vindo ao Marrs Guia TECH em mais um tutorial express.

Hoje você vai ver como é fácil trabalhar com funções no Python e para começar vamos deixar claro duas coisas sobre funções: 1 - Funções podem ou não retornar alguma coisa, tudo depende do que você está programando. 2 - O python não te obriga a tipagem do tipo de variável, ou seja você não é obrigado a definir isso, mas se passar errado como parâmetro da função, vai dar erro.

No Python as funções são declaradas como 'def' (na maioria das linguagens você verá function () por isso acostume-se). E você pode declarar uma função com ou sem passagem de parâmetros:

def contaAteCem():  e

def contaAteParam(valorIni, valorFim): 

Preste atenção no segundo exemplo. Se você deixar assim e passar os parâmetros, a função vai ser executada e se não passar um deles, que seja, a função retornará um erro, para evitar isso, declare a inicialização com o TIPO certo da variável.

No exemplo eu preciso passar dois inteiros então: def contaAteParam(valorIni =1, valorFim =1): 

Dessa forma se eu não passar um dos dois, ainda sim a função vai tentar executar as instruções.

Sem mais delongas vamos ao exemplo, então:

  • Não copie e cole, escreva o código
  • Não se limite ao exemplo, experimente
  • Tente entender o que está acontecendo

""" Para o nosso exemplo vamos criar um programa com 2 funções

   O programa vai permitir verificar a lista de criminosos procurados quando o programa for acionado.

   Então o programa deverá pedir o CPF ou RG da pessoa. Se essa pessoa estiver na lista de procurados

   deverá aparecer uma mensagem.

"""

#crio uma lista com cpf, rg e nome de pessoas procuradas (É só para exemplificar)

procurados=[

           ['123.321.222-1', '12.123.123', 'Alexandre Nardoni'],

           ['012.321.233-2', '32.233.333', 'Elize Araújo'],

           ['222.121.233-1', '111.222.333', 'Anna Carolina'],

]

#outra lista para depois vocễ pode fazer um loop como exercicio.

verificado = []

#variáveis para parâmetro

cpf=''

rg =''

 #vamos criar a função que vai verificar se chegou um dos documentos

def verificaDocumento(cpf='', rg=''):

   mensagem=''

   if(cpf!=''):

       for p in procurados#a lista de procurados está em nível global, então podera ser acessado de qualquer ponto do programa

           if(cpf in p[0]):

               mensagem = p[2]

               break

                #Se encontrar o cpf na lista é necessário parar o loop para não verificar o próximo, Você pode arrumar com while??

   if(rg!=''):

       for p in procurados:

           if(p[1]==rg):

               mensagem = p[2]

               break

  

   if(mensagem==''):

       regitroAbordagem()  #Vamos chamar a outra função aqui, para mostrar que uma função pode chamar outra.  

       mensagem = "Cidadão registrado. Liberar"   

  

   return mensagem #essa função retornará alguma coisa, então é necessário receber o resultado em alguma variável

 

 

#A segunda função não tem retorno e executará quando for chamada.

def regitroAbordagem():

   print("Nada foi encontrado\nCadastre o cidadão")

   verificado.append(input("Entre com o Nome: "))

 

  

 

print("###############Programa de verificação de documentos####################")

cpf = input("Digite o CPF do cidadão ou deixe em branco: ")

rg = input("Digite o RG do cidadão ou deixe em branco: ")

print("###############Programa de verificação de documentos####################\n")

consulta= verificaDocumento(cpf, rg) #a chamada da função com a passagem de parâmetros recebidos

 

#Como a lista de pessoas verificadas estava vazia, aqui tem uma verificação simples de quantidade tendo em vista

#que só um registro será feito. Você é capaz de arrumar para colocar tudo em loop?

if(len(verificado)>0):

   print("\033[1;31;42m$-"*30)

   print(verificado, '-', consulta)

   print("\033[1;31;42m$-"*30)

else:   

   print("\033[1;31;47m$-"*30)

   print("\033[1;31;47mPROCURADO PELA JUSTIÇA - ", consulta)

   print("\033[1;31;47m$-"*30)

#Pesquise pelas cores, mas para adiantar, basicamente você só precisa alterar o segundo e terceiro números para trocar a cor. 

E então, consegue fazer as alterações necessárias para transformar o programa em incremental com loop while?

Se precisar de ajuda, deixe nos comentários!

Até a próxima.