Elabore uma função, denominada geraExibe, para gerar e exibir uma lista contendo 30 sublistas, cada uma indicando o número do usuário, pertencente ao intervalo [0 a 100], e a sua senha (formada por duas letras maiúsculas, seguidas por 2 dígitos, seguidos por dois caracteres pertencente a uma lista denominada especiais. A lista especiais contém os caracteres: (‘!’, ‘@’, ‘#’, ‘$’, ‘%’). Tanto os números dos usuários quanto suas senhas devem ser gerados aleatoriamente. A função deve receber como parâmetro uma lista vazia e exibir a lista gerada.
Em seguida, elabore a função busca, que recebe como parâmetros a lista gerada e um número de usuário, e retorna em que posição da lista a primeira sublista relacionada ao usuário se encontra. Caso o usuário não pertença à lista a função deve retornar -1. Você deve, ainda, completar seu programa com as chamadas às funções. Chame a função geraExibe, verifique a lista gerada e teste a função busca, solicitando que seja informado, via teclado, um número de usuário.
Obs: Na geração de caracteres aleatórios use a função choice() do módulo random.
Passo 1
E aí, chefia! Essa aqui tá pedindo um montão de coisa! OMG
Mas vamo lá, a gente precisa criar uma função, chamada geraExibe(), que gera e exibe 30 sublistas… hmmm. Bora começar com a definição da função!
E se liga que o enunciado especifica que a gente precisa usar a função choice() do módulo random… Pra gente ter acesso a essa função, vamos precisar importar o módulo. E a gente faz isso nas primeiras linhas do código, lembra? Tipo assim:
Aí sim! Vamo começar a pensar no que tem que ter dentro da nossa função...
Passo 2
Cara, a gente precisa gerar uma lista com 30 sublistas dentro! Olha, a gente até poderia escrever as 30 sublistas na mão, mas eu sugiro que a gente use um laço de repetição (e é isso que seu professor espera) hahaha. Então, bora criar um for:
Nesse código que se repete a gente quer acrescentar um item a uma lista (que eu chamei de lista, porque não sou muito criativo nem nada), assim como tá escrito no enunciado. Então, vamos gerar as sublistas com os dados aleatórios! Mas como a gente poderia usar a função choice() pra fazer isso?!
Olha, talvez você não lembre, mas a função choice recebe uma lista (ou string) e retorna um elemento dessa lista! A gente poderia fazer mais fácil com outras funções do módulo random, mas o enunciado especifica que a gente tem que usar o choice. Então, vamos criar strings com os dados que a gente precisa.
e pronto! Agora, a gente precisa do código que gera a senha e o usuário...
Passo 3
Pra gerar o usuário, a gente vai usar a função randint do módulo random…
E agora precisamos criar a senha com as especificações que o enunciado deu e, obrigatoriamente, usando a função choice() do módulo random.
Tipo assim! Reparou que a gente tá fazendo várias concatenações, ne? Na primeira linha ali a gente cria a variável senha com uma letra aleatória, usando a função choice(). E, em cada linha seguinte, a gente adiciona um caractere a mais, deixando no formato que o enunciado pediu! E agora só falta a gente juntar esse usuário e senha na lista que a gente criou pra retornar…
Pronto! Até aqui, foi… Mas o nome da função é geraExibe, e isso nos lembra que precisamos exibir essa lista gerada no fim do loop! hahaha além de retornar a lista que a gente gerou, é claro…
Pronto! Terminamos a primeira etapa, mas agora o enunciado também diz algo sobre um função de busca… Bora dar uma olhada nessa parada!
Passo 4
Mano, o formato da lista gerada pela função que a gente acabou de criar é +/- assim:
E o próximo passo da questão é escrever uma outra função, chamada busca, capaz de pesquisar por usuário e retornar o índice da sublista que contém esse usuário! Então, bora começar nossa função:
Nossa função recebe uma lista gerada e o usuário que estamos procurando… E pra gente descobrir o índice, a gente pode checar uma sublista por vez verificando se o usuário da sublista é igual ao usuário recebido e, se for, retornar o índice dessa sublista, sacou? Tipo assim:
A gente percorre toda a lista e retorna o index que tem o mesmo usuario que o parâmetro recebido, mas se a gente não achar nada no loop, então a gente retorna -1 como uma forma de dizer que não encontramos… Agora, vamos fazer o corpo do programa, testando as duas funções.
Passo 5
Aqui, o que a gente precisa fazer é criar uma lista com a função geraExibe(). Depois, perguntar um usuário com a função input(). Bora fazer isso!
Show! Agora, nossa missão é verificar se na nossa lista tem esse usuário. Se tiver a gente exibe a senha correspondente, e se não tiver a gente diz que não tem.
Pra isso, vamos precisar de um if.
Repara que eu usei uma formatação de string ali pra informar a senha correspondente ao usuário digitado, viu? E assim a gente finaliza a questão! heheh te vejo na próxima, ok?! É nóss