Sumário de Python

Sumário de Python #

Python é uma linguagem de programação de alto nível, amplamente utilizada devido à sua simplicidade e versatilidade. Sua sintaxe clara e legível a torna ideal para iniciantes.

Apresento aqui um material complementar às aulas ministradas em sala, para revisão da sintaxe da linguagem e auxílio nos estudos.

Website oficial #

Para download: https://www.python.org

Criação de arquivos .py #

Executamos código Python em arquivos com extensão .py. Por exemplo: primeiro_programa.py:

As regras para nomeação de arquivos são:

  • O arquivo deve ter a extensão .py.
  • O nome do arquivo pode conter qualquer caractere alfa-numérico (A-z e 0-9) e o caractere sublinhado (_).
  • Deve começar com uma letra ou o sublinhado.
  • Não podem haver espaços no nome do arquivo. Por exemplo: “primeiro programa.py”.

Sintaxe básica #

Primeiro comando em Python #

Utilizamos a função print() para imprimir textos na tela:

print("Olá, mundo lindo!")

Comentários #

A sintaxe para comentário em Python é:

# Este é um comentário.

# Este é outro comentário.

Indentação #

Em python, espaços e tabs formando indentações no inicio das linhas de código devem ser utilizadas apenas para aninhar blocos de comando, por exemplo, com os comandos condicionais e de repetição, que veremos adiante. Indentações fora desse contexto representam erro de sintaxe no código.

Por exemplo, ao executar o código:

print("Instrução 1")
    print("Instrução 2")
printf("Instrução 3")

Obteremos o seguinte erro:

IndentationError: unexpected indent

Variáveis #

Em Python, variáveis são criadas na primeira atribuição de valor, e o valor atribuído definirá o tipo da variável. Por exemplo:

varInt = 10     # tipo int - armazena valores inteiros
varFloat = 10.5   # tipo float - armazena valores fracionados
varStr = "texto" # tipo str - armazena strings
varBool = True    # tipo bool - armazena os valores boleanos True ou False

Podemos ver os tipos das variáveis utilizando o método type(). Se acrescentarmos ao código acima o seguinte:

print(type(varInt))
print(type(varFloat))
print(type(varStr))
print(type(varBool))

a saída será:

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>

Mais de uma variável pode ser criada na mesma linha. Exemplo:

x, y, z = 1, 2, 3

w = y = k = 1

Imprimindo variáveis #

Para imprimir os valores das variáveis, utilizamos a função print() das seguintes formas:

varInt = 10
varStr = "texto"

# Imprimindo apenas a variável
print(varInt) 
# Utilizando vírgula para adicionar ao texto variáveis que não são do tipo str.
print("varInt = ", varInt) 
# Utilizamos sinal de adição ou vírgula para variáveis str
print("varStr = "+ varStr) 

# Podemos adicionar variáveis em diferentes posições do texto
print("varInt = ", varInt, "e varStr = ", varStr) 

A saída será:

10
varInt =  10
varStr = texto
varInt =  10 e varStr =  texto

Convertendo tipos de variáveis #

Podemos utilizar as funções int(), float(), e str() para converter variáveis para os tipos int, float e str, respectivamente. Por exemplo:

x = 10      # tipo int
y = 12.5    # tipo float
z = "20"    # tipo str

var_1 = int(z) 
var_2 = float(x)
var_3 = str(y)

print("var_1 = ", var_1, "  tipo = ", type(var_1)) 
print("var_2 = ", var_2, "  tipo = ", type(var_2)) 
print("var_3 = ", var_3, "  tipo = ", type(var_3)) 

A saída será:

var_1 =  20   tipo =  <class 'int'>
var_2 =  10.0   tipo =  <class 'float'>
var_3 =  12.5   tipo =  <class 'str'>

Lendo valores para as variáveis #

Para ler valores digitados no teclado, podemos utilizar a função input(). A função recebe um texto como entrada para ser exibido na tela e aguarda o valor de entrada. Exemplos:

var_1 = input("Digite um valor:") 
var_2 = int(input("Digite um valor:"))

print("var_1 = ", var_1, "  tipo = ", type(var_1)) 
print("var_2 = ", var_2, "  tipo = ", type(var_2)) 

A função retorna uma variável do tipo str, dessa forma, precisamos fazer a conversão de tipos para atribuirmos o valor digitado a outros tipos de variável. No exemplo, caso o usuário digite “10” e “10”, a saída será:

var_1 =  10   tipo =  <class 'str'>
var_2 =  10   tipo =  <class 'int'>

Operadores aritméticos #

Os operadores aritméticos são:

Operador Descrição
+ adição
- subtração
* multiplicação
/ divisão com resultado real
// divisão com resultado inteiro
% resto da divisão
** exponenciação

Exemplos:

x = 10     
y = 20    

print("Adição: ", x+y )
print("Subtração: ", x-y )
print("Multiplicação: ", x*y )
print("Divisão real: ", x/y )
print("Divisão inteiro: ", x//y )
print("Resto da divisão: ", x%y )
print("Exponenciação: ", x**y )  # leia-se: x elevado a y

A saída será:

Adição:  30
Subtração:  -10
Multiplicação:  200
Divisão real:  0.5
Divisão inteiro:  0
Resto da divisão:  10
Exponenciação: 100000000000000000000

Exemplos de expressões com os operadores:

x = x + 2
x += 2      # equivale a x = x + 2
x *= 2      # equivale a x = x * 2

# Podemos utilizar parênteses para definir precedências
x = (x - 10) * x  

Operadores relacionais #

Os operadores relacionais são:

Operador Descrição
> maior que
< menor que
>= maior ou igual
<= menor ou igual
== igual a
!= diferente de

As expressões relacionais retornam o valores boleanos True ou False. Exemplos:

x = 1
y = 2

z = x < y
w = x == y

print(z)
print(w)

A saída será:

True
False

Operadores lógicos #

Os operadores lógicos em python são bem intuitívos. São as palavras and, or, e not.

Exemplos de expressões com operadores lógicos:

x, y, z = 1, 2, 3

w = (x < y) and (x < z); 
print(w)

w = (x >= y) or (x < z); 
print(w)

w = not(x == y); 
print(w)

A saída será:

True
True
True

Comando condicional: if-else #

A sintaxes do comando condicional em python são:

# Sintaxe 1: IF

if (condição):
    instruções_com_indentação

# Sintaxe 2: o par IF-ELSE

if (condição):
    instruções_com_indentação
else:
    instruções_com_identação

# Sintaxe 3: utilizando ELIF para aninhar várias condições

if (condição_1):
    instruções_com_indentação
elif (condição_2):
    instruções_com_indentação
elif (condição_3):
    instruções_com_indentação
...
elif (condição_n):
    instruções_com_indentação
else:
    instruções_com_indentação

Exemplos de código:

#if-else
x = int(input("Digite um decimal:"))
if (x < 5):
    print("x maior que 5")
else:
    print("x menor que 5")

#if-elif
x = int(input("Digite um decimal:"))
if (x < 5):
    print("x é maior que 5")
elif (x > 5):
    print("x é menor que 5")
else:
    print("x é igual a 5")

Comando de repetição: for #

Para aprendermos a sintaxe do for em Python, vamos entender primeiro a função range():

A função range() é utilizada para a geração de uma sequência de números inteiros. A sintaxe é:

range(valor_inicial, parada, incremento)

A função gera inteiros a partir de valor_inicial (incluso) até o valor definido em parada (não incluso). Caso valor_inicial seja omitido, inicia-se a partir do zero. O incremento é opcional, e pode assumir valores positivos, ou negativos para decrementos.

Exemplos:

range(5) # Retorna os números 0,1,2,3,5

range(1,5) # Retorna os números 1,2,3,4

range(0,10,2) # Retorna os números 0, 2, 4, 6, 8

range(-10,10,2) # Retorna os números -10, -8, -6, -4, -2, 0, 2, 4, 6, 8

Na verdade, a função retorna uma variável do tipo range, um dos tipos de sequências de Python. Vejamos:

x = range(5)
prinf(type(x))

A saída será: <class ‘range’>

Podemos utilizamos a variável do tipo range na estrutura do for. A sintaxe é:

for indice in variável_de_sequência:
    instruções_com_indentação

Exemplos:

# Exemplo 1
x = range(5)
for i in x:
    print(i)

# Exemplo 2
for j in range(5):
    print(j)

Comando de repetição: while #

A sintaxe do comando while em Python é:

while (condição):
    instruções_com_indentação

Exemplo:

x = 0
while (x < 10):
    print(x)
    x+=1

Variáveis de tipos de sequências #

Além do tipo range visto em conjunto com o comando for, Python define listas e tuplas para agruparmos elementos em sequência. Vejamos a seguir.

Listas #

Uma lista é um conjunto de elementos ordenados. A sintaxe é:

nome = [elemento1, elemento2, ..., elementoN]

Características de listas:

  • Os elementos possuem ordem fixa.
  • O índice inicial da lista é o zero.
  • Podem conter elementos de tipos diferentes.
  • Podem conter elementos reptidos.
  • Elementos podem ser mofificados ou adicionados/removidos da lista.

Exemplos:

x = [] # lista vazia
x = [1, 2] # lista de inteiros
x = ["text1", "text2", "text3"] # lista de strings
z = [1, "text1", 2, "text2"] # lista de inteiros e strings 

Acessamos os elementos pelo índice:

x = [1,2,3]
x[0] = 10 # altera o valor do primeiro elemento para 10
x[1] += 9 # altera o valor do segundo elemento para 11

Métodos úteis:

x = [1,2,3,4,5,6,7]

# Append(elemento) - adiciona elemento ao final da lista
x.append(8) # x = [1,2,3,4,5,6,7,8]

# Insert(indice, elemento) - insere um elemento no índice indicado
x.insert(2, 3) # x = [1,2,3,3,4,5,6,7,8]

# Pop(indice) - remove elemento no índice indicado
x.pop(1) # x = [1,3,3,4,5,6,7,8]

# Remove(elemento) - Remove a primeira instância do conteúdo fornecido.
x.remove(3) # x = [1,3,4,5,6,7,8]

# Count(elemento) - Retorna o número de vezes elemento aparece na lista
n = x.count(2) # n = 0.

# Len(lista) - Retorna o número de elementos da lista
n = len(x) # n = 7

Podemos iterar uma lista na estrutura for, por exemplo:

x = [1,2,3,4,5,6,7]

for i in x:
    print(i) 

Podemos ter listas de listas, gerando estruturas com mais de uma dimensão, por exemplo:

# Uma lista de duas dimensões, como uma matriz
lista = [ [1, 2, 3], [4, 5, 6] ] 

print(lista[0]) # Imprime: [0, 1, 2]
print(lista[0][0]) # Imprime: 1

Tuplas #

Tuplas são conjuntos de elementos ordenados, mas que não podem ser alterados. A sintaxe é:

nome = (elemento1, elemento2, ..., elementoN)

Características de tuplas

  • Os elementos possuem ordem fixa.
  • O índice inicial é o zero.
  • Podem conter elementos de tipos diferentes.
  • Podem conter elementos reptidos.
  • Elementos NÃO podem ser mofificados ou adicionados/removidos da lista.
  • O parênteses é opcional.

Exemplos:

x = (1, 2) # tupla de inteiros
x = "text1", "text2", "text3" # tupla de strings
z = (1, "text1", 2, "text2") # tupla de inteiros e strings 

Funções #

A sintaxe para criação de funções em Python é:

def nome_da_função( lista_de_parametros ):
    instruções_indentadas
    return valor

Lista de parametros e valor de retorno são opcionais. Vejamos exemplos:

def funcao_1():
    print("Esta é uma função em Python.")

def funcao_2(a, b):
    return a + b

funcao_1() # chamada da função_1
c = funcao_2(1, 2) # chamada da funcao_2 com passagem de valores

a, b = 1, 2
c = funcao_2(a, b) # chamada da funcao_2 com passagem de variáveis

Podemos declarar funções com número variável de parâmetros de entrada, para isso, declaramos a função com um parâmetro de entrada, e acrescentamos o símbolo * ao seu nome. Neste caso, a linguagem trata o parâmetro como uma tupla. Exemplo:

def funcao( *x ):
    print(type(x)) # Imprime: <class 'tuple'>

    for i in x:
        print(i)

# Exemplos de chamada da funcao
funcao()
funcao(1,2,3)
funcao("a", "b", "c", "d")

Bibliotecas #

Bibliotecas em Python são conjuntos de módulos e pacotes que contêm códigos prontos para realizar diversas tarefas, facilitando o desenvolvimento de programas. Em essência, uma biblioteca é uma coleção de funções que você pode importar para o seu código para evitar ter que escrever tudo do zero.

As bibliotecas ajudam a economizar tempo e esforço, fornecendo funcionalidades específicas, como manipulação de arquivos, cálculos matemáticos, criação de gráficos, aprendizado de máquina, entre outras.

Para usar uma biblioteca, você precisa importá-la no seu código com o comando import, seguido do nome da biblioteca. Normalmente, utilizamos o comando import no início dos arquivos.

A seguir, veremos alguns exemplos de bibliotecas em Python:

Math #

A biblioteca math do Python fornece funções matemáticas básicas e avançadas, permitindo realizar cálculos científicos com precisão. Ela inclui funções para trigonometria, logaritmos, exponenciais, números fatoriais, arredondamento, e muito mais. Além disso, a biblioteca math fornece constantes matemáticas úteis, como pi (π) e o número de Euler (e).

Math é uma bilbioteca externa e precisa ser instalada antes de ser utilizada.

Segue exemplo de utilização:

import math

raiz = math.sqrt(16)  # Calcula a raiz quadrada de 16
print("Raiz quadrada de 16:", raiz)

A tabela abaixo contém símbolos comumente utilizados:

Símbolo Função math Descrição
π (pi) math.pi Constante pi (3.14159…)
e math.e Número de Euler e (2.71828…)
eˆx math.exp(x) Retorna e elevado a x, onde e é o número de Euler
√ (raiz) math.sqrt(x) Raiz quadrada de x
x^y math.pow(x, y) x elevado a y
log(x) math.log(x) Logaritmo natural de x (base e)
log10(x) math.log10(x) Logaritmo base 10 de x
sin(x) math.sin(x) Seno de x (em radianos)
cos(x) math.cos(x) Cosseno de x (em radianos)
tan(x) math.tan(x) Tangente de x (em radianos)
graus → rad math.radians(x) Converte graus para radianos
rad → graus math.degrees(x) Converte radianos para graus

As funções da biblioteca math podem ser utilizadas para compor expressões matemáticas. Por exemplo, considere a fórmula do crescimento exponencial contínuo, frequentemente usada em áreas como economia, biologia e física:

A = P * e^(r * t)

Um código em Python que a descreve é:

import math

# Parâmetros
P = 1000  # Valor inicial
r = 0.05  # Taxa de crescimento (5%)
t = 10    # Tempo em anos

# Fórmula do crescimento exponencial
A = P * math.exp(r * t)

print("O valor final após", t, "anos é: R$ ", A)

Matplotlib.pyplot #

Matplotlib é uma bilioteca para visualização de dados em Python que permite criar diversos tipos de gráficos. O pyplot é um módulo da biblioteca Matplotlib, que fornece uma interface simples e conveniente para criar e personalizar gráficos.

Ao importar a biblioteca para nosso código, frequentemente utilizamos um apelido (alias) para facilitar o acesso às funções disponíveis. Por exemplo:

import matplotlib.pyplot as plt

Neste caso, plt será o apelido que utilizaremos para chamar as funções desse módulo. Vejamos um exemplo simples:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [2, 4, 6, 8]

plt.plot(x,y)
plt.show()

O código acima utiliza duas listas de números, x e y, para gerar o seguinte gráfico:

pyplot

Nesse exemplo,

  • plt.plot() cria o gráfico de linha, conectando os pontos formados com os valores das listas passadas como parâmetro.
  • plt.show() exibe a imagem do gráfico.

Vamos adicionar mais informações ao gráfico:

  • um título com a função .title()
  • um texto de rótulo para o eixo X, com .xlabel()
  • um texto de rótulo para o eixo Y, com .ylabel()
  • e desenhar uma grade para facilitar a visualização, com .grid()
import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [2, 4, 6, 8]

plt.plot(x,y)
plt.title("Variação de valores")
plt.xlabel("Valores do eixo X.")
plt.ylabel("Valores do eixo Y. ")
plt.grid()

plt.show()

O gráfico resultante é:

pyplot

A função plot() támbém permite customizar a aparência da linha utilizando parâmetros. Por exemplo, se trocarmos a instrução plot do gráfico acima para:

plt.plot(x,y, marker="o", color="green", linestyle=":") 

obtemos a seguinte linha customizada:

pyplot

A tabela abaixo lista exemplos de parâmetros:

Parâmetro Descrição Valores comuns
marker Símbolo utilizado em cada ponto “o”, “.”, “+”, “x”, “*”, “s” (quadrado), “D” (losango), “d” (losango fino), “^” (triângulo para cima), “v” (baixo), “<”, “>”, “p” (pentágono), “h” (hexágono)
color Cor da linha e dos marcadores “blue”, “red”, “green”, “black”, “yellow”, “orange”, “purple”, “pink”, “gray”, “cyan”, “magenta” ou códigos hexadecimais como “#FF0000”
linestyle Estilo da linha “-” (contínua), “–” (tracejada), “:” (pontilhada), “-.” (traço-ponto), "" ou “None” (sem linha)
linewidth Espessura da linha Número positivo (ex: 1, 2, 3.5)
markersize Tamanho do marcador Número positivo (ex: 4, 5, 8.5)
label Nome da série de dados (quando utilizado com legenda) Texto (ex: “Função A”)

Também é possível plotar mais de uma série de dados no mesmo gráfico. Vejamos um exemplo:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4]
y = [2, 4, 6, 8]
y_2 = [2, 3, 5, 6]


plt.plot(x,y, marker="o", color="green", linestyle=":", label="Sequência A")
plt.plot(x,y_2, marker="x", color="blue", linestyle="--", label="Sequência B")
plt.legend()

plt.title("Variação de valores")
plt.xlabel("Valores do eixo X.")
plt.ylabel("Valores do eixo Y. ")

plt.grid()

plt.show()

Perceba que adicionamos mais um comando plot() com uma nova lista de valores compondo o eixo Y (y_2). Adicionamos, também, o parâmetro label para identificar cada linha e o comando plt.legend(), para que a legenda dos identificadores seja adicionada ao gráfico.

O gráfico resultante é:

pyplot