Preciso de ajuda com a seguinte questão de Python:
Crie a função func() que receberá como argumento o chaveiro (Chaveiro é uma lista com 99 chaves e 10 caracteres em cada chave) e um número inteiro. A função deverá retornar a chave, se existir, que contenha o inteiro. Crie a variável senha que guardará o valor retornado pela função func() quando passados o chaveiro e o inteiro 29 como argumentos.
Minha duvida é: como eu posso comparar esse inteiro com um trecho de uma chave que eu ainda nem sei qual é?
E o que você já fez, pode postar para sugerirmos idéias?
Eu pensei em utilizar uma sequencia de “for’s” encadeados, o for externo rodaria por todas as chaves existentes no chaveiro, enquanto o for interno rodaria nos caracteres de cada chave, a cada vez que o for interno rodasse, seria feita uma comparação do caractere com o inteiro que foi passado como parâmetro, se o teste retornar true, é guardada a chave em questão dentro da variável senha.
Eu não sei ao certo como por isso em prática, e nem se essa lógica vai funcionar para o problema, afinal sou apenas um iniciante na linguagem Python.
Desde já agradeço por qualquer ajuda!
Ajudar a gente ajuda, a questão é justamente te ajudar a continuar/concluir a partir de algum código seu entende?
Assim podemos dar idéias, dizer o que é ou não viável, se dois for’s vão ser mais rápidos do que usar coisas prontas do python (leia-se métodos e funções da api padrão) explicar as diferenças, e por ai vai…
Por exemplo, em python para encontrar um número numa string você pode simplesmente usar a função str + o operador in…
numero = 10
chave = 'ABC10DEF'
print(str(numero) in chave) # True
print(str(11) in chave) # False
A partir daí você já consegue ter uma noção se vale a pena ter dois for’s…
1 curtida
Obrigado pela ajuda, esse trecho de código me foi muito útil para resolver o problema.
O código ficou assim:
def func(chaveiro, x):
for chave in chaveiro:
if str(x) in chave:
return chave
senha = func(chaveiro, 29)