1. Variáveis e Constantes#
São recursos que permitem atribuirmos nomes a determinados valores. Alguns desse nomes possuem valores que podem variar (variáveis) e outros possuem valores fixos (constantes).
Variáveis#
Variáveis podem ser entendidas como etiquetas que você cola em caixas para guardar diferentes tipos de informações (valores/dados) em seu programam. Em termos mais ciêntíficos, Variáveis são usadas para armazenar informações a serem referenciadas e manipuladas em um programa de computador, tendo como objetivo rotular e armazenar dados na memória.
Em Python, as variáveis não precisam de uma declaração para reservar espaço na memória, a declaração ocorre automaticamente quando você atribui um valor à variável, ou seja, em Python, você cria uma variável simplesmente atribuindo um valor a um nome.
O sinal =
é usado como operador de atribuição, ou seja, ele que dá valor a uma variável.
Exemplos:
nome_do_aluno = "Carlos" # Uma variável do tipo string (texto)
idade = 28 # Uma variável do tipo inteiro (número inteiro)
altura = 1.75 # Uma variável do tipo float (número com casas decimais)
esta_aprovado = True # Uma variável do tipo booleano (verdadeiro ou falso)
No exemplo acima:
nome_do_aluno
,idade
,altura
eesta_aprovado
são os nomes das variáveis;O sinal
=
é o operador de atribuição;Carlos
,28
,1.75
eTrue
são os valores armazenados nessas variáveis, respectivamente.
Uma forma comum de representar variáveis por escrito é colocar o nome com uma flecha (->
) apontando para seu valor. Esse tipo de notação é chamado de diagrama de estado porque mostra o estado no qual cada variável está. Exemplo:
nome_do_aluno -> "Carlos"
idade -> 28
altura -> 1.75
esta_aprovado -> True
Nomeclatura de Variáveis (Convenções PEP 8)#
A comunidade Python segue um guia de estilo chamado PEP 8. Para nomes de variáveis, a norma é:
Sempre usar letras minúsculas;
Podem haver números no nome de uma variável (ex:
lista1
), mas nunca carcteres ilegais (ex:@
);Palavras separadas por underscores
_
para melhorar a legibilidade (isso é chamado de estilosnake_case
);Nomes devem ser descritivos. Por exemplo,
preco_unitario = 10
é muito mais claro quex = 10
. **Evitar usar nomes de funções ou palavras-chave da linguagem como nomes de variáveis (ex:
list
,str
).
Atenção: Nunca use números no começo do nome de uma variável (ex: 1nome), pois gerará um erro de síntaxe.
Tipagem Dinâmica#
Como já foi mencionado anteriormente, Python é dinamicamente tipado. Isso significa que o tipo da variável é determinado pelo valor que ela recebe. Inclusive, pode-se reatribuir um valor de tipo diferente à mesma variável (embora nem sempre seja uma boa prática, pois pode confundir a leitura do código).
Exemplo:
minha_variavel = 10
print(minha_variavel,type(minha_variavel)) # Saída: <class 'int'>
minha_variavel = "Olá, mundo!"
print(minha_variavel,type(minha_variavel)) # Saída: <class 'str'>
10 <class 'int'>
Olá, mundo! <class 'str'>
No exemplo acima:
print
é uma função que tem como objetivo exibir um resultado na tela. Nesse caso, o resultado é o tipo das variáveis.Os parênteses
()
indicam que o print é uma função e é onde se define o que deve ser exibido na tela.
type
é outra função, seu objetivo é retornar o tipo de um objeto. Nesse caso, ele está retornando o tipo da variávelminha_variavel
.Dentro dos parênteses
()
é definido qual variável deve ter seu tipo retornado.
Nesses resultados, a palavra
class
(classe) é usada no sentido de categoria; um tipo é uma catagoria de valores.
Note que usamos a mesma variável duas vezes, mas seu valor muda ao decorrer dos exemplos, isso ocorre porque seu valor foi reatribuido, ou seja, demos outro valor a uma variável já existente.
Constantes#
Em muitas linguagens de programação, constantes é uma variável cujo valor não pode ser alterado após sua definição. Em Python, estritamente falando, não existe constantes verdadeiras no sentido de que o interpretador impeça a sua alteração.
No entanto, a convenção na comunidade Python para indicar que uma variável deve ser tratada como uma constante é nomeá-la usando todas as letras maiúsculas, com palavras separadas por underscores _
, se necessário.
PI = 3.14159
VELOCIDADE_DA_LUZ_METROS_POR_SEGUNDO = 299792458
TAXA_DE_JUROS_PADRAO = 0.05
NOME_EMPRESA = "Minha Empresa"
Use constantes para valores que são fixos e fundamentais para a lógica do seu programa, como valores matemáticos (pi), configurações fixas, limites, ou qualquer valor que, se alterado, poderia quebrar a funcionalidade esperada.
Importante: Embora você possa tecnicamente reatribuir um valor a
PI
no código Python (PI = 3.14
), isso é considerado má prática e vai contra a intenção original do programador. Ao, ver uma variável em letras maiúsculas, outros desenvolvedores entendem que aquele valor não deve ser modificado.
Parabéns: Você terminou o módulo 01 do curso de introdução à python. Agora você conhece os conceitos de variáveis e constantes em Python, pratique o que foi ensinado no módulo e prepare-se para avançar ainda mais.
Extra: Comentários e Uso da Função print()
#
Comentários#
Conforme os programas ficam maiores e mais complicados, eles acabam ficando difíceis de lê. Pensando nisso, podemos usar comentários para explicar o que o programa está fazendo naquele trecho de código, fazendo a leitura ficar mais fácil.
Comentários são linhas de texto que o interpretador Python ignora durante a execução do código, ou seja, eles não interferem nas funcionalidades do programa.
Comentários de linha única#
Usamos o símbolo #
(hashtag) no ínicio da linha para comentar. Tudo após o #
se transformará em comentário e passará a ser ignorado pelo interpretador.
# Comentario
print("Hello World")
Hello World
Nesse caso o comentário aparece sozinho em uma linha, mas você também pode por comentários no fim de linhas de código.
print("Programar é legal") # Posso comentar aqui
Programar é legal
Comentários de múltiplas linhas#
Caso precisemos criar um comentário que se estenda por mais de uma linha podemos usar aspas triplas ("""
ou '''
) para criar um comentário que se estende por várias linhas.
"""
Esté é um comentário de multiplas linhas
ele pode ocupar várias linhas
desde que o texto esteja dentro das aspas triplas
"""
print("Olá!")
Olá!
Docstrings#
São comentários de múltiplas linhas usados para documentar funções, classes e módulos. Elas são colocadas imediatamente após a definição do objeto (função, classe, módulo) e são acessadas usando help()
.
def minha_funcao(param1, param2):
"""
Esta é uma docstring.
Ela descreve a função, seus parâmetros e valor de retorno.
:param param1: O primeiro parâmetro da função.
:param param2: O segundo parâmetro da função.
:return: O valor de retorno da função.
"""
return param1 + param2
help(minha_funcao)
Help on function minha_funcao in module __main__:
minha_funcao(param1, param2)
Esta é uma docstring.
Ela descreve a função, seus parâmetros e valor de retorno.
:param param1: O primeiro parâmetro da função.
:param param2: O segundo parâmetro da função.
:return: O valor de retorno da função.
Função print()
#
Como vimos anteriormente, usar a função print é bem simples de se utilizar, basta declará-la e dentro dos parênteses ()
indicar os valores que devem ser exibidos.
Qualquer valor pode ser impresso pela função print()
, seja string, números, listas e etc.
Sintaxe:
print("objeto1", 22, sep=' ', end='\n')
objeto1 22
Seus parâmetros básicos são:
"objeto1", 22
: Qualquer valor a ser impressosep
: separador entre os objetos (padrão é espaço" "
)end
: caractere a ser adicionado ao final da linha (padrão é nova linha'\n'
)
print("objeto1 ", 33, sep='...', end='--')
objeto1 ...33--
Observe que alterando o separador e o fim, a saida no console/terminal também muda
Imprimir em múltiplas linhas#
Utilizando \n
dentro dos objetos de exibição do print()
, podemos quebrar a linha de exibição a fazer o próximo objeto ser exibido apenas na próxima linha.
print("Linha 1\nLinha 2\nLinha 3")
Linha 1
Linha 2
Linha 3
Veja que o
\n
é colocado na parte do texto em que se deseja quebrar a linha, não antes e nem depois, mas exatamente no ponto da quebra.
Imprimir usando variáveis#
Já vimos anteriormente que para exibir uma variável basta colocála dentro do print que ela será exibida, assim:
sobrenome = "Madalena"
print("Maria", sobrenome)
Maria Madalena
Formatar strings F-strings
#
Mas também podemos formatar strings (f-strings
) para que possamos gerar melhores mensagens no print()
, misturando texto com variáveis, expressões e até funções.
Sintaxe:
sobrenome = "Madalena"
print(f"Parabéns, Maria {sobrenome}, por iniciar o curso!")
Parabéns, Maria Madalena, por iniciar o curso!
O f
prefixado (no inicio) da string indica que essa será uma string formatada, para que seja possível inserir uma variável, expressão ou função dentro da string é necessário que a mesma esteja entre chaves {}
para que o Python a interprete como ela é de fato e não uma string.
Além de formatar o texto, f-strings também conseguem formatar valores númericos, podendo adicionar especificadores, como casas decimais, número de zero à esquerda, porcentagem e etc.
Formatar números com especificadores#
Casas decimais: ao final das chaves
{}
de uma string formatada, use dois pontos:
para indicar que irá fazer uma especificação de formatação, em seguida o ponto.
junto de algum número para indicar quantas casas decimais devem ser imprimidas na saída.
Se o valor original tiver mais casas decimais que a quantidade especificada, o Python arrendonda o valor
Exemplo:
num = 3.455
print(f"Seu número é: {num:.2f}") # Faz o número imprimido ter apenas 2 casas decimais
Seu número é: 3.46
Separador de milhar: Após os dois pontos
:
selecione entre ponto ou vírgula, a depender do idioma, para indicar como as casas de milahres devem ser separadas.
Exemplo (usando o modelo em inglês):
valor = 14234567
print(f"{valor:,}") # separador padrão do idioma (ex: vírgula ou ponto)
14,234,567
Porcentagem: Após os dois pontos
:
use o simbolo de porcentagem%
para formatar os valores para porcentagem.
Exemplo:
taxa = 0.7855
print(f"Taxa: {taxa:%}")
Taxa: 78.550000%
Para não ter tantas casas decimais, é possível juntar as formatações de casas decimais e porcentagem, apenas adicionando %
no lugar do f
que teria na formatação de casa decimal.
taxa = 0.5896
print(f"Taxa: {taxa:.2%}")
Taxa: 58.96%
Preenchimento: Existe 3 tipos de preenchimentos, o à esquerda, à direita e centralido. Para usá-los basta seguir o exemplo:
x = 10
print(f"{x:*>10}") # Alinha à direita
print(f"{x:*<10}") # Alinha à esquerda
print(f"{x:*^10}") # Centraliza
********10
10********
****10****
Símbolo |
Significado |
---|---|
|
Alinha à direita |
|
ALinha à esquerda |
|
Centraliza |
|
Apenas para exibir o espaço ocupado no alinhamento, poderia ser qualquer caractere |