Você está aqui: Python ::: Estruturas de Dados ::: Lista Ligada Simples |
Como excluir um nó no início de uma lista singularmente encadeada em PythonQuantidade de visualizações: 733 vezes |
Nesta dica mostrarei como podemos escrever um método remover_inicio() que remove e retorna o nó no início de uma lista encadeada simples em Python. É importante observar que o método exclui o primeiro nó e o retorna completo, inclui o valor que está incluído nele. Se a lista estiver vazia o método retorna o valor None para indicar lista vazia. Vamos começar então com o código para a classe No da lista singularmente ligada (que salvei em um arquivo no_lista_singularmente_ligada.py): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # classe No para uma lista singularmente encadeada ou # ligada - Singly Linked List class No: # construtor da classe No def __init__(self, info, proximo): self.info = info self.proximo = proximo # método que permite definir o conteúdo do nó def set_info(self, info): self.info = info # método que permite obter a informação de um nó def get_info(self): return self.info # método que permite definir o campo próximo deste nó def set_proximo(self, proximo): self.proximo = proximo # método que permite obter o campo próximo deste nó def get_proximo(self): return self.proximo # retorna True se este nó apontar para outro nó def possui_proximo(self): return self.proximo != None Veja que o código para a classe Nó não possui muitas firulas. Temos apenas um campo info, que guardará o valor do nó, e um campo próximo, que aponta para o próximo nó da lista, ou null, se este for o único nó ou o último nó da lista ligada. Veja agora o código para a classe ListaLigadaSimples (lista_ligada_simples.py), com os métodos inserir_inicio(), remover_inicio() e exibir(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importa a classe No from no_lista_singularmente_ligada import No # classe ListaLigadaSimples class ListaLigadaSimples: # construtor da classe def __init__(self): self.inicio = None # nó inicial da lista # método que deleta um nó no início de uma lista ligada # este método retorna o nó excluído def remover_inicio(self): # a lista está vazia? if self.inicio == None: return None else: # vamos excluir e retornar o primeiro nó da lista removido = self.inicio # a lista possui apenas um nó? if self.inicio.get_proximo() == None: # a lista agora ficará vazia self.inicio = None else: # o segundo nó passa a ser o início da lista self.inicio = self.inicio.get_proximo() # retorna o nó removido return removido # método que permite inserir um novo nó no início da lista def inserir_inicio(self, info): # cria um novo nó contendo a informação e que # não aponta para nenhum outro nó novo_no = No(info, None) # a lista ainda está vazia? if self.inicio == None: # o novo nó será o início da lista self.inicio = novo_no else: # o novo nó aponta para o início da lista novo_no.set_proximo(self.inicio) # o novo nó passa a ser o início da lista self.inicio = novo_no # método que permite exibir todos os nós da lista # ligada simples (lista singularmente encadeada) def exibir(self): # aponta para o início da lista no_atual = self.inicio # enquanto o nó não for nulo while no_atual != None: # exibe o conteúdo do nó atual print(no_atual.get_info()) # pula para o próximo nó no_atual = no_atual.get_proximo() E agora o código main() que insere alguns valores no início da nossa lista singularmente encadeada e testa o método remover_inicio(): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importa a classe ListaLigadaSimples from lista_singularmente_ligada import ListaLigadaSimples # método principal def main(): # cria uma nova lista encadeada simples lista = ListaLigadaSimples() print("Insere o valor 12 no início da lista") lista.inserir_inicio(12) print("Conteúdo da lista: ") lista.exibir() print("Insere o valor 30 no início da lista") lista.inserir_inicio(30) print("Conteúdo da lista: ") lista.exibir() print("Remove um nó no início da lista") removido = lista.remover_inicio() if removido == None: print("Não foi possível remover. Lista vazia") else: print("Nó removido:", removido.get_info()) print("Conteúdo da lista: ") lista.exibir() if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: c:\estudos_python>python estudos.py Insere o valor 12 no início da lista Conteúdo da lista: 12 Insere o valor 30 no início da lista Conteúdo da lista: 30 12 Remove um nó no início da lista Nó removido: 30 Conteúdo da lista: 12 |
![]() |
Python ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como calcular o cosseno de um ângulo em Python usando a função cos() do módulo Math - Calculadora de cosseno em PythonQuantidade de visualizações: 2477 vezes |
Como calcular o cosseno de um ângulo em Python usando a função cos() do módulo Math - Calculadora de cosseno em Python Em geral, quando falamos de cosseno, estamos falando do triângulo retângulo de Pitágoras (Teorema de Pitágoras). A verdade é que podemos usar a função cosseno disponível nas linguagens de programação para calcular o cosseno de qualquer número, mesmo nossas aplicações não tendo nenhuma relação com trigonometria. No entanto, é sempre importante entender o que é a função cosseno. Veja a seguinte imagem: ![]() Veja que temos um triângulo retângulo com as medidas já calculadas para a hipotenusa e os dois catetos, assim como os ângulos entre eles. Assim, o cosseno é a razão entre o cateto adjascente e a hipotenusa, ou seja, o cateto adjascente dividido pela hipotenusa. Veja a fórmula: \[\text{Cosseno} = \frac{\text{Cateto adjascente}}{\text{Hipotenusa}} \] Então, se dividirmos 30 por 36.056 (na figura eu arredondei) nós teremos 0.8320, que é a razão entre o cateto adjascente e a hipotenusa (em radianos). Agora, experimente calcular o arco-cosseno de 0.8320. O resultado será 0.5881 (em radianos). Convertendo 0.5881 radianos para graus, nós obtemos 33.69º, que é exatamente o ângulo em graus entre o cateto adjascente e a hipotenusa na figura acima. Pronto! Agora que já sabemos o que é cosseno na trigonometria, vamos entender mais sobre a função cos() da linguagem Python. Esta função, que faz parte do módulo Math, recebe um valor numérico float e retorna um valor float, ou seja, também numérico) entre -1 até 1 (ambos inclusos). Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos importar o módulo Math import math as math def main(): # vamos calcular o cosseno de três números print("Cosseno de 0 = %f" % math.cos(0)) print("Cosseno de 1 = %f" % math.cos(1)) print("Cosseno de 2 = %f" % math.cos(2)) if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Cosseno de 0 = 1.000000 Cosseno de 1 = 0.540302 Cosseno de 2 = -0.416147 Note que calculamos os cossenos dos valores 0, 1 e 2. Observe como os resultados conferem com a curva da função cosseno mostrada abaixo: ![]() |
Python ::: Dicas & Truques ::: Matemática e Estatística |
Como testar se um número é primo em PythonQuantidade de visualizações: 3707 vezes |
O Número Primo é o número maior que 1 e que só pode ser dividido por 1 e por ele mesmo, ou seja, números primos não podem ser divididos por outros números, a não ser por ele mesmo e pelo número 1. Dessa forma, 2, 3, 5, 7, 11, 13, 17, etc, são todos números primos. É importante observar que 0 e 1 não são números primos, e que o número 2 é o único número primo par. Veja agora um código Python completo que pede para o usuário informar um número inteiro positivo e mostra uma mensagem indicando se o número informado é primo ou não: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- def main(): primo = True # vamos assumir que o número é primo # vamos solicitar um número inteiro positivo numero = int(input("Informe um número inteiro positivo: ")) # o número é negativo? if numero < 0: print("Número inválido.") # é 0 ou 1? elif (numero == 0) or (numero == 1): print("Número válido, mas não é primo.") # passou até aqui. Vamos testar se o número é primo else: for i in range(2, int((numero / 2))): # se passar no teste, não é primo if numero % i == 0: primo = False # recebe false break if primo: print("O número informado é primo") else: print("O número informado não é primo") if __name__== "__main__": main() Ao executar este código Python nós teremos o seguinte resultado: Informe um número inteiro positivo: 9 O número informado não é primo |
Python ::: NumPy Python Library (Biblioteca Python NumPy) ::: Passos Iniciais |
Machine Learning para iniciantes - Como usar a biblioteca NumPy em seus programas PythonQuantidade de visualizações: 2169 vezes |
Criada em 2005 por Travis Oliphant, a biblioteca NumPy é uma biblioteca Python que, embora escrita parcialmente em código Python, possui trechos de código C ou C++, principalmente as partes que requerem processamento ou computação mais veloz. Estudiosos, entusiastas e desenvolvedores de soluções envolvendo Data Science, Deep Learning, Machine Learning e Inteligência Artificial (IA) em geral, encontram nessa biblioteca muitas funções úteis para a criação e manipulação de vetores e matrizes, além de funções para trabalhar no domínio de algebra linear e transformação fourier. A biblioteca NumPy (Numerical Python) é um projeto open source e pode ser usada livremente em qualquer programa Python. Uma das razões para a sua adoção é a substituição das listas Python pelos vetores e matrizes NumPy, já que estes últimos são 50 vezes mais rápidas que as listas Python, que muitas vezes fazem o papel de arrays. Minha instalação do Python já possui a biblioteca NumPy? A melhor forma de descobrir se a NumPy já está disponível para os seus códigos Python é rodando o seguinte trecho de código: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a bibliteca NumPy import numpy as np def main(): # construimos um vetor de cinco elementos vetor = np.array([20, 3, 87, 4, 120]) # imprimimos seu conteúdo print(vetor) if __name__== "__main__": main() Se você vir o resultado abaixo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- [ 20 3 87 4 120] então sua instalação do Python já contém a biblioteca NumPy e você está pronto(a) para experimentar as demais dicas e truques dessa seção. Porém, se você ainda não tiver a NumPy, a seguinte mensagem de erro será exibida: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Exception has occurred: ModuleNotFoundError No module named 'numpy' File "C:\estudos_python\estudos.py", line 2, in <module> import numpy as np Não se desespere. Basta abrir uma janela de prompt e disparar o comando abaixo: pip install numpy Aguarde alguns minutos para que o Pip baixe e instale a biblioteca. Em seguida tente executar o código acima novamente. Agora é só aproveitar tudo que a biblioteca NumPy tem a nos oferecer. |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
JavaScript - Como usar objetos Set em seus códigos JavaScript |
Códigos Fonte |
![]() 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 |
![]() 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 |