Você está aqui: Python ::: Pygame ::: Gráficos |
Como desenhar o gráfico da função seno usando o Pygame do PythonQuantidade de visualizações: 852 vezes |
Nesta dica mostrarei como podemos usar a área de desenho do Pygame da linguagem Python para representar o gráfico da função seno. Este é um código muito útil pois abre possibilidades para a criação de aplicações muito interessantes. Note que, neste código, eu coloquei formas de configurar tanto a frequência da onda gerada pela função seno quanto a amplitude da onda. Linhas auxiliares também são desenhadas para dar um aspecto mais profissional ao desenho. Veja o código Pygame completo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos importar as bibliotecas necessárias import pygame, sys from pygame.locals import * # precisamos importar o módulo math import math # inicializa a biblioteca pygame.init() # obtém a superfície do jogo e define o tamanho da tela DISPLAYSURF = pygame.display.set_mode((600, 450)) # vamos definir o título da janela do jogo pygame.display.set_caption("Meu Jogo de Cartas") # vamos definir a cor de fundo para a tela do jogo do Pyagem BRANCO = (255, 255, 255) DISPLAYSURF.fill(BRANCO) # e definimos a cor para a superfície da janela # vamos obter a largura da janela largura = DISPLAYSURF.get_width() # frequencia da onda, ou seja, a quantidade de # repetições da onda frequencia = 5 # amplitude da onda amplitude = 50 # distância do gráfico em relação ao topo da janela distancia_topo_y = 150 # vamos desenhar na parte superior do gráfico, na cor azul pygame.draw.line(DISPLAYSURF, (0, 0, 255), (0, distancia_topo_y - amplitude), (largura, distancia_topo_y - amplitude), 1) # vamos desenhar no meio do gráfico, na cor vermelha pygame.draw.line(DISPLAYSURF, (255, 0, 0), (0, distancia_topo_y), (largura, distancia_topo_y), 1) # vamos desenhar na parte inferior do gráfico, na cor verde pygame.draw.line(DISPLAYSURF, ((0, 255, 0)), (0, distancia_topo_y + amplitude), (largura, distancia_topo_y + amplitude), 1) # vamos obter a quantidade de pontos do gráfico numero_pontos = largura for i in range(numero_pontos): # vamos calcular o eixo x x = (i / numero_pontos) * 2 * math.pi # vamos calcular o eixo y y = (amplitude * math.sin(x * frequencia)) + distancia_topo_y # já temos um ponto válido? if i > 0: # desenhamos a linha entre o ponto anterior e o novo ponto pygame.draw.aaline(DISPLAYSURF, (0, 0, 0), ponto_anterior, (i, y)) # registramos o novo ponto ponto_anterior = (i, y) # e aqui nós entramos no loop do game while True: # monitoramos os eventos for evento in pygame.event.get(): # se o evento foi um pedido para sair if evento.type == QUIT: # fechamos a tela do jogo pygame.quit() # e saimos do programa sys.exit() # redesenha a tela continuamente pygame.display.update() Ao executar a aplicação Pygame nós teremos o seguinte resultado: |
Link para compartilhar na Internet ou com seus amigos: |
Python ::: Pandas Python Library (Biblioteca Python Pandas) ::: DataFrame |
Como acessar uma linha específica em um DataFrame do Pandas da linguagem Python usando o método iloc()Quantidade de visualizações: 10961 vezes |
Em várias situações nós precisamos investigar o conteúdo de uma determinada linha, ou seja, um registro específico contido em um DataFrame do Pandas. Para isso podemos usar o método iloc() do objeto DataFrame. Este método recebe um valor inteiro representando o índice da linha a ser retornada. É possível também fornecer uma list contendo vários índices, e até mesmo intervalos, mas isso é assunto para outras dicas. O retorno do método é uma Series ou um DataFrame, dependendo dos parâmetros usados. Vamos ver um exemplo? Analise o código a seguir: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # importamos a biblioteca Pandas import pandas as pd def main(): # vamos carregar os dados do arquivo .csv dados = pd.read_csv("emprestimos.csv", delimiter=";") # vamos mostrar o DataFrame resultante print(dados) # agora vamos mostrar o conteúdo da terceira linha linha = dados.iloc[2] # mostramos o conteúdo da terceira linha print("\nConteúdo da terceira linha:\n") print(linha) if __name__== "__main__": main() Ao executarmos este código nós teremos o seguinte resultado: id nome idade sexo renda valor parc pont ap 0 1 HELENA508 39 F 6500 8000 6 87 S 1 2 JESSICA631 65 F 3000 500 48 2 N 2 3 FELIPE768 39 M 10200 20000 24 40 S 3 4 AMANDA515 90 F 800 1500 30 87 N 4 5 LAURA312 61 F 1800 15000 50 8 N 5 6 CARLOS291 84 M 970 11000 6 59 N 6 7 CARLOS859 64 F 970 500 12 1 N Conteúdo da terceira linha: id 3 nome FELIPE768 idade 39 sexo M renda 10200 valor 20000 parc 24 pont 40 ap S Name: 2, dtype: object Veja que o conteúdo da linha é exibido na vertical. Se quisermos exibí-lo na horizontal, basta passarmos o índice da linha como uma list. Veja: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # agora vamos mostrar o conteúdo da terceira linha linha = dados.iloc[[2]] Agora o resultado será: Conteúdo da terceira linha: id nome idade sexo renda valor parc pont ap 2 3 FELIPE768 39 M 10200 20000 24 40 S Para testarmos se o retorno do método iloc() foi mesmo uma Series, basta usarmos a função type() do Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # vamos checar o retorno do método iloc() linha = dados.iloc[[2]] print("Tipo do retorno:", type(linha)) Este código exibirá um resultado parecido com: Tipo do retorno: <class 'pandas.core.frame.DataFrame'> |
Python ::: Dicas & Truques ::: Data e Hora |
Como adicionar dias à uma data em Python usando a função timedelta() da classe datetimeQuantidade de visualizações: 8927 vezes |
Nesta dica mostrarei como é possível usar o método timedelta() da classe datetime do Python para adicionar um determinado número de dias a uma data. O truque aqui é fornecer apenas o dia para o método timedelta(), obter o resultado e somá-lo com a data que já temos. Veja o código completo para o exemplo: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- import datetime # função principal do programa def main(): # dias a serem adicionados quant_dias = 2 # Obtém a data de hoje hoje = datetime.date.today() print("Hoje é:", hoje) # Adiciona dias à data dias = datetime.timedelta(days=quant_dias) hoje = hoje + dias # Exibe o resultado print("Daqui à", quant_dias, "dias será", hoje) if __name__== "__main__": main() Ao executarmos este código Python nós teremos o seguinte resultado: Hoje é: 2021-03-11 Daqui à 2 dias será 2021-03-13 |
Python ::: Desafios e Lista de Exercícios Resolvidos ::: Ordenação e Pesquisa (Busca) |
Exercícios Resolvidos de Python - Como usar a Ordenação da Bolha em Python para ordenar os valores de um vetor em ordem crescente ou decrescenteQuantidade de visualizações: 517 vezes |
Pergunta/Tarefa: A Ordenação da Bolha, ou ordenação por flutuação (literalmente "por bolha"), também chamada de Bubble Sort, é um algoritmo de ordenação dos mais simples. A ideia é percorrer o array diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequência. Essa movimentação lembra a forma como as bolhas em um tanque de água procuram seu próprio nível, e disso vem o nome do algoritmo. No melhor caso, o algoritmo executa n operações relevantes, onde n representa o número de elementos do vetor. No pior caso, são feitas n2 operações. A complexidade desse algoritmo é de ordem quadrática. Por isso, ele não é recomendado para programas que precisem de velocidade e operem com quantidade elevada de dados. Escreva um programa Python que declara, constrói um vetor de 10 inteiros e peça para o usuário informar os valores de seus elementos. Em seguida use a ordenação da bolha para ordenar os elementos em ordem crescente. Sua saída deverá ser parecida com: Informe o valor para o índice 0: 84 Informe o valor para o índice 1: 23 Informe o valor para o índice 2: 9 Informe o valor para o índice 3: 5 Informe o valor para o índice 4: 11 Informe o valor para o índice 5: 3 Informe o valor para o índice 6: 50 Informe o valor para o índice 7: 7 Informe o valor para o índice 8: 2 Informe o valor para o índice 9: 73 O array informado foi: 84 23 9 5 11 3 50 7 2 73 O array ordenado é: 2 3 5 7 9 11 23 50 73 84 Veja a resolução comentada deste exercício usando Python: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- # função principal do programa def main(): # vamos declarar e construir um vetor de 10 elementos valores = [0 for x in range(10)] # vamos pedir que o usuário informe os valores for i in range(0, len(valores)): valores[i] = int(input("Informe o valor para o índice {0}: ".format(i))) # vamos mostrar o vetor informado print("\nO array informado foi:\n\n") for i in range(0, len(valores)): print(valores[i], end=" ") # vamos ordenar os elementos do vetor usando a ordenação da bolha # laço externo de trás para frente for i in range(len(valores) - 1, 0, -1): for j in range(0, i): # laço interno vai no fluxo normal if valores[j] > valores[j + 1]: # temos que trocá-los de lugar temp = valores[j] valores[j] = valores[j + 1] valores[j + 1] = temp # vamos exibir o vetor já ordenado print("\n\nO array ordenado é:\n\n") for i in range(0, len(valores)): print(valores[i], end=" ") print("\n") if __name__== "__main__": main() |
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 |