Olá Davi, como você está?
Peço desculpas pela demora em obter um retorno.
Você está correto em apontar que a comparação feita na condição if f'capa{id}' in nome_arquivo
pode gerar conflitos quando existem arquivos com nomes semelhantes, como 'capa1', 'capa10' e 'capa100'. No entanto, é importante destacar que o return
dentro do if
garante que a função retorne o primeiro arquivo encontrado que contém a string 'capa{id}'
, resolvendo assim esse problema. Ou seja, em um caso onde o id é 10 e temos as capas 10, 100 e 1000, a primeira ocorrência será enviada, neste caso, o 10, que corresponde o nosso id. O mesmo ocorre para os outros números.
Indo para um teor mais prático, verifique como a função se comporta com o return
e com a ausência dele:
Função sem retorno:
def recupera_imagem(id):
nomes_arquivos = ['capa1.jpg', 'capa2.jpg', 'capa10.jpg', 'capa100.jpg']
for nome_arquivo in nomes_arquivos:
if f'capa{id}' in nome_arquivo:
print("Imagem Recuperada: " + nome_arquivo)
id = 10
imagem = recupera_imagem(id)
Resultado:
Imagem Recuperada: capa10.jpg
Imagem Recuperada: capa100.jpg
Função com retorno:
def recupera_imagem(id):
nomes_arquivos = ['capa1.jpg', 'capa2.jpg', 'capa10.jpg', 'capa100.jpg']
for nome_arquivo in nomes_arquivos:
if f'capa{id}' in nome_arquivo:
return nome_arquivo
id = 10
imagem = recupera_imagem(id)
print("Imagem recuperada: " + imagem)
Resultado:
Imagem recuperada: capa10.jpg
Espero ter ajudado. Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Em caso de dúvidas estou à disposição.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!