1
resposta

Coloca 'return' em loop em uma def

Eu estou tentando uma forma de retornar os dados organizados, se eu printar no Main, funciona de boa, mas qdo eu jogo numa def e tenta criar um loop usando o return, o return não entra em loop, não tem erro, mas ele só me traz a primeira busca, esse é o trecho em questão:

def format(self): for d in range(0, len(self.data)): return f"Title: {self.data['Search'][d]['Title']}\n" f"Year: {self.data['Search'][d]['Year']}\n" f""

Se quiser testar, são três arquivos:

primeiro arquivo nomeie 'main.py'

import API_Movies

m = str(input('Type a movie: '))

movie = API_Movies.Search_Movie(m)
print(movie)

segundo arquivo nomeie 'API_Movies.py'

import re
import requests
import API_Key

class Search_Movie:

    def __init__(self, movie):
        movie = str(re.sub(' ', '+', movie)).lower().strip()
        if self.request(movie):
            self.movie = movie
        else:
            raise ValueError('Invalid Name')

    def __str__(self):
        return self.format()

    def request(self, movie):
        try:
            data = requests.get(f'http://www.omdbapi.com/?s={movie}&apikey={API_Key.API_key}')
            self.data = data.json()
            return self.data
        except:
            raise ValueError('Invalid or not found name')

    def format(self):
        for d in range(0, len(self.data)):
            return f"Title:     {self.data['Search'][d]['Title']}\n" \
                   f"Year:      {self.data['Search'][d]['Year']}\n" \
                   f""

terceiro arquivo nomeie 'API_key.py'

API_key = 'c60ebd9f'
1 resposta
Removido a pedido do usuario.