Você está aqui: Python ::: Estruturas de Dados ::: Filas |
Como criar uma fila em Python usando um vetor de inteiros e programação orientada a objetos - A classe FilaQuantidade de visualizações: 671 vezes |
Uma fila é uma estrutura de dados do tipo FIFO (First-In-First-Out), na qual o primeiro elemento a entrar na estrutura é o primeiro a ser removido. Há inúmeras formas de se implementar uma fila em Python. Nesta dica mostrarei como podemos realizar essa tarefa usando uma classe Fila, na qual usaremos um vetor redimensionável (criado a partir de um objeto List). Note que a nossa classe Fila possui os seguintes métodos enfileirar(), desenfileirar(), is_cheia(), is_vazia() e exibir(). Veja o código completo para a classe Fila: Código para fila.py: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # definição da classe Fila class Fila: # construtor da classe def __init__(self, capacidade): # vetor usado para guardar os elementos self.elementos = [None] * capacidade # para controlar o início da fila self.inicio = 0 # para controlar o final da fila self.fim = 0 # para registrar o tamanho da fila self.tamanho = 0 # manter um registro da capacidade self.capacidade = capacidade # método que permite verificar se a fila está cheia def is_cheia(self): # a capacidade é igual ao tamanho da fila? return self.capacidade == self.tamanho # método que permite enfileirar um novo valor na fila def enfileirar(self, valor): # a fila está cheia? if self.is_cheia(): raise Exception("A fila está cheia") # insere o novo elemento no final da fila self.elementos[self.fim] = valor # ajusta a variável fim para a próxima posição self.fim += 1 # incrementa o tamanho da fila self.tamanho += 1 # mostra uma mensagem de sucesso para fins de depuração print("O valor {0} foi enfileirado.".format(valor)) # método que permite desenfileirar o elemento na frente da fila def desenfileirar(self): # a fila está vazia? if self.is_vazia(): raise Exception("A fila está vazia") # a fila não está vazia. Vamos retornar o elemento na frente valor = self.elementos[self.inicio] # inicio agora aponta para o próximo elemento self.inicio += 1 # depois da remoção a lista vai ficar vazia? if self.inicio == self.fim: self.inicio = 0 self.fim = 0 # diminuimos o tamanho da fila self.tamanho -= 1 # retorna o elemento removido return valor # método que permite verificar se a fila está vazia def is_vazia(self): # o tamanho da fila é 0? return self.tamanho == 0 # método que permite exibir o conteúdo da fila def exibir(self): if not self.is_vazia(): # varremos os elementos da fila print("Elementos na fila:", end=" ") for i in range(self.inicio, self.fim): print(self.elementos[i], end=" ") print("\nO elemento no início da fila é: {0}".format(self.elementos[self.inicio])) print("O elemento no final da fila é: {0}".format(self.elementos[self.fim - 1])) print("O índice do elemento no início da fila é: {0}".format(self.inicio)) print("O índice do elemento no final da fila é: {0}".format(self.fim - 1)) Código para principal.py: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos importar a classe Fila from fila import Fila # função principal do programa def main(): # vamos criar uma nova fila com capacidade para 10 elementos fila = Fila(10) # vamos enfileirar 4 valores if not fila.is_cheia(): fila.enfileirar(30) fila.enfileirar(19) fila.enfileirar(73) fila.enfileirar(58) else: print("A fila está cheia") # agora vamos exibir o conteúdo da fila if not fila.is_vazia(): fila.exibir() # vamos desenfileirar 3 valores if not fila.is_vazia(): valor = fila.desenfileirar() print("O valor {0} foi desenfileirado.".format(valor)) if not fila.is_vazia(): valor = fila.desenfileirar() print("O valor {0} foi desenfileirado.".format(valor)) if not fila.is_vazia(): valor = fila.desenfileirar() print("O valor {0} foi desenfileirado.".format(valor)) # agora vamos exibir o conteúdo da fila novamente if not fila.is_vazia(): fila.exibir() if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: O valor 30 foi enfileirado. O valor 19 foi enfileirado. O valor 73 foi enfileirado. O valor 58 foi enfileirado. Elementos na fila: 30 19 73 58 O elemento no início da fila é: 30 O elemento no final da fila é: 58 O índice do elemento no início da fila é: 0 O índice do elemento no final da fila é: 3 O valor 30 foi desenfileirado. O valor 19 foi desenfileirado. O valor 73 foi desenfileirado. Elementos na fila: 58 O elemento no início da fila é: 58 O elemento no final da fila é: 58 O índice do elemento no início da fila é: 3 O índice do elemento no final da fila é: 3 |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como inserir uma determinada quantidade de espaços à esquerda de um valor numérico usando PythonQuantidade de visualizações: 7412 vezes |
Este trecho de código Python mostra como definir uma quantidade de caracteres de espaço à esquerda de um valor numérico. Este exemplo funciona com inteiros. Para ponto-flutuante você deve trocar "d" por "f". Veja o código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # método principal def main(): valor = 54 # com três espaços print("O valor é %5d" % valor) # com nove espaços print("O valor é %11d" % valor) # com quatro espaços print("O valor é %6d" % valor) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- O valor é 54 O valor é 54 O valor é 54 |
Python ::: Dicas & Truques ::: Lista (List) |
Curso completo de Python - Como obter a quantidade de itens em uma lista PythonQuantidade de visualizações: 8668 vezes |
Nesta dica mostrarei como podemos usar a função len() da linguagem Python para obtermos a quantidade de itens em um objeto List. Não deixe de ver outros exemplos de List nesta mesma seção. Veja o código Python completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- def main(): # cria uma lista de nomes nomes = ['Carlos', 'Ricardo', 'Osmar'] # obtém a quantidade de elementos na lista print("A lista contém %d itens" % len(nomes)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: A lista contém 3 itens |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Controle |
Exercício Resolvido de Python - Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menorQuantidade de visualizações: 1711 vezes |
Algoritmos Resolvidos de Python - Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menor Pergunta/Tarefa: Um comerciante comprou um produto e quer vendê-lo com um lucro de 45% se o valor da compra for menor que R$ 20,00; caso contrário, o lucro será de 30%. Elabore um algoritmo que leia o valor do produto e imprima o valor de venda para o produto. Sua saída deverá ser parecida com: Informe o valor do produto: 85 O valor de venda é: 110.5 Veja a resolução comentada deste exercício usando Python: Código para principal.py: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # método principal def main(): # valor ler o valor do produto valor = float(input("Informe o valor do produto: ")) # vamos calcular o valor de venda if valor < 20: valor_venda = valor + (valor * (45.0 / 100)) else: valor_venda = valor + (valor * (30.0 / 100)) print("O valor de venda é: {0}".format(valor_venda)) if __name__== "__main__": main() |
Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica |
Densidade de um fluido Um fluido encontra-se em um recipiente com volume de 300L. Sabendo que a massa desse fluido é de 2kg, qual a sua densidade em kg/m3? A) 0,67kg/m3. B) 6,67kg/m3. C) 0,15kg/m3. D) 150kg/m3. E) 151,5kg/m3. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil |
Formas: Confecção e colocação Em relação aos materiais utilizados para formas, assinale a alternativa correta. A) A fibra de vidro é muito utilizada para pilares e vigas. B) Formas em poliestireno expandido são altamente reaproveitadas. C) Vidro é muito utilizado para concreto aparente. D) Tubos de papelão são muito usados em pilares de seção circular e em estruturas com caixão perdido. E) As tábuas são os materiais que proporcionam o maior reaproveitamento. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Ética e Legislação Profissional |
Princípios específicos do Direito do Consumidor Assinale, abaixo, a única alternativa correta. A) A informação não é direito básico do consumidor. B) O reconhecimento da vulnerabilidade do consumidor é um dos princípios do Código de Defesa do Consumidor. C) O Código de Defesa do Consumidor reconhece e dá tratamento isonômico ao consumidor e ao fornecedor. D) O Código de Defesa do Consumidor é considerado lei geral, enquanto que o Código Civil lei especial. E) É válida cláusula elaborada pelo fornecedor, onde expressamente impeça o consumidor, que venha a celebrá-lo, de reclamar seus direitos perante o Judiciário. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em |
Domínios de Deformações Vigas de concreto armado, com seções submetidas a um momento fletor e a um esforço cortante, são dimensionadas de tal forma que se determine uma armadura longitudinal para resistir ao momento fletor e uma armadura transversal para resistir ao esforço cortante. Analise as informações a seguir, a respeito da solicitação normal do tipo momento fletor: I) Solicitação de flexão simples ocorre quando a única solicitação atuante é o momento fletor. II) Solicitação de flexão composta ocorre quando, além do momento fletor, há uma força normal atuante. III) Solicitação de flexão oblíqua ocorre quando o plano de flexão compreende um eixo de simetria da seção transversal. Assinale a alternativa correta: A) Somente a afirmação I está correta. B) Somente as afirmações I e II estão corretas. C) Somente a afirmação II está correta. D) Somente a afirmação III está correta. E) Somente as afirmações II e III estão corretas. Verificar Resposta Estudar Cards Todas as Questões |
Vamos testar seus conhecimentos em Fundações |
Fundações profundas A grande vantagem das estacas moldadas in solo em relação às pré-moldadas é permitir que o comprimento estritamente necessário seja concretado. O tipo de fundação profunda constituída por concreto, moldada in loco e executada por meio de trado contínuo e injeção de concreto pela própria haste do trado, é a: A) estaca escavada mecanicamente. B) estaca injetada. C) estaca hélice contínua. D) estaca Franki. E) estaca-raiz. Verificar Resposta Estudar Cards Todas as Questões |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
Códigos Fonte |
Software de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |