Lista em loop

Olá
Será que alguém me poderia dar-me uma dica.

Estou a fazer uma select a uma tabela de uma base de dados, funciona, mas aparecem todos os registos seguidos o que torna a leitura impossível, será que poderia usar uma funcção qualquer que me listasse 10 de cada vez…em que para mudar para os seguintes 10 carregava em enter (uma ideia)

Este é o código que tenho

def getAllPerguntasDB(self):
    query = "SELECT p.id_pergunta,t.tema,d.grau,p.pergunta,p.op1,p.op2,p.op3,p.op4,p.correto FROM perguntas AS p INNER JOIN temas  AS t ON (p.id_tema = t.id_tema) INNER JOIN dificuldade AS d ON (p.id_grau = d.id_grau) ORDER BY t.tema, d.grau ASC;"
    self.cur.execute(query)
    self.result = self.cur.fetchall()
    for row in self.result:
         id_pergunta = row[0]
         tema = row[1]
         grau = row[2]
         pergunta = row[3]
         op1 = row[4]
         op2 = row[5]
         op3 = row[6]
         op4 = row[7]
         correto= row[8]
         print('---------------------------------------------------------------------------------------')
         print("id: ", id_pergunta)
         print("Tema:",tema,"\tGrau:",grau)
         print("Pergunta: ", pergunta)
         print("Opção 1: ", op1, "\tOpção 2: ", op2, "\tOpção 3: ", op3, "\tOpção 4: ", op4)
         print("Resposta Correta: ", correto)
         print('---------------------------------------------------------------------------------------')

Obrigado

Bom, já tem um tempo que você postou, conseguiu resolver?

Vou deixar uma dica, outras pessoas podem ter a mesma dúvida…

Na sua função, pode adicionar dois parâmetros…

def getAllPerguntasDB(self, inicio=1, total=10):

No sql, se sua base de dados for mysql, pode tentar algo assim…

... ORDER BY t.tema, d.grau ASC LIMIT %d, %d

Na hora de executar a query pode tentar assim…

self.cur.execute(query, (inicio, total))