Jump to content
alphasil

Lista com limite máximo

Recommended Posts

alphasil

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

Share this post


Link to post
Share on other sites
pwseo

@alphasil

várias formas de resolver o teu problema. A solução que se segue utiliza generators (coisas interessantes da linguagem Python) e faz o que pretendes:

#!/usr/bin/python3

def nextN(xs, n = 10):
    a = iter(xs)
    while True:
        yield [ next(a) for _ in range(n) ]

for xs in nextN(range(15), n = 4):
    for x in xs:
        print(x)
    print('Press enter to continue...')
    input()

Espero ter-te ajudado.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.