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 #