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)