Você está aqui: Python ::: Pygame ::: Gráficos

Como desenhar o gráfico da função seno usando o Pygame do Python

Quantidade 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 datetime

Quantidade 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 decrescente

Quantidade 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
Resposta/Solução:

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

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware 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 funcionalidadesControle 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
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 70 usuários muito felizes estudando em nosso site.