1
resposta

Nome único para a imagem contornando cache

Saudações,

Acredito que a aula contornando cache foi equivocada, por enquanto estou na aula contornando cache e ainda não sei se nas próximas será resolvido, mas seguindo a lógica de:

if f"capa{id}" in nome_arquivo: 

percebo que haverá problemas quando o nome da capa for "capa1", "capa10" ou "capa100". A lógica não saberá qual dos arquivos escolher pois todos contém "capa1" na palavra.

Esse problema estava previsto? se sim, retiro o que disse kk

1 resposta

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!