Os conceitos básicos sobre variáveis, contantes e escopo foram vistos em Portugol: Variáveis sendo a leitura recomendada.

Para armazenar informações em nossos programas escritos em Python, precisamos utilizar variáveis e constantes. Nesta parte do tutorial vamos aprender o básico sobre variáveis e constantes.

Diferente de linguagens como C, Java e C++, em Python não é necessário criar uma variável informando um tipo de dado no momento de sua declaração.

Sintaxe
nome_variavel = valor
nome_variavel = None

A atribuição de valor à uma variável é feita utilizando o operador de atribuição (=). Essa atribuíção utiliza inferência de dados e podem ser em linha ou não.

Exemplo 1
a = 5 		#inteiro
b = "Teste"	#string
print(a)
print(b)
Saída
5
Teste

Python permite que essa declaração seja feita em apenas uma linha. As sintaxes abaixo mostram duas formas dessa declaração mencionado:

Sintaxe
nome_variavel1 = valor1; nome_variavel2 = valor2; nome_variavelN = valorN 

nome_variavel1, nome_variavel2, nome_variavelN = valor1, valor2, valorN

Na primeira, é necessário utilizar (;) para separa a declaração das variáveis e suas atribuição. Já a segunda, declaramos todas as variáveis separadas por vírgula e também suas atribuições.

Exemplo 2
a = 10;b = 20;c = 30;d=40
x,y,z = 10,20,30 
print(a,b,c)
print(a,b,c)
Saída
10 20 30 
10 20 30 

A visibilidade ou escopo de variáveis e constantes em Python são divididas em 3 tipos: Local, Global e não-local. O conceito de escopo foi visto em Portugol: Escopo e C: Escopo.

Qualquer declaração de variáveis feitas fora de uma função tem visibilidade global, podendo ser acessada por qualquer função ou arquivo .py.

Exemplo 3
_global = "variavel global"
def funcao():
    print(_global)
    
funcao()
Saída
variavel global

Qualquer declaração de constantes ou variáveis feitas dentro de uma função tem visibilidade local/função podendo ser acessada dentro da própria função. Variáveis globais podem ser acessadas normalmente dentro de funções.

Exemplo 4
_global = "variavel global"
def funcao():
    _local = "variavel local"
    print(_local)
    print(_global)
    
funcao()
Saída
variavel local
variavel global

A linguagem Python, assim como Lua e JS, possui característica de inferência de dados. Isso significa que quanto criamos uma variável não precisamos declarar seu tipo. A inferência do tipo de dado está associada ao valor atribuído à variável durante a compilação.

Exemplo 5
a = 5 		        #variável inicialmente do tipo inteiro
print(a)
a = "olá mundo"      #variável teve seu tipo alterado para string
print(a)
Saída
5
olá mundo!

Agora que já temos conhecimento sobre os tipos básicos de dados presentes na linguagem Python, vamos ver alguns exemplos de declaração de variáveis nessa parte.

Exemplo 8
valor = 999 #inteiro

valor2 = 0xff #hexadecimal

valor3 = 0b10101010 #binário

_float = 1.99

string1 = 'string'

string2 = "string"

_array = [1,2,3]

matriz = [[1,2],[1,2]]

booleano = False

lista = [1,True,"String",'A',1.99] #Lista

tupla = (1,True,"String",'A',1.99) #Tupla

_set = {1,0xff,"String",'A',1.99} #Set
Saída
-

Os identificadores(Varíaveis, constante e outros) em Python, assim como em várias outras linguagens, precisam seguir alguma regras quando declarados:

Regras
  1. Conter apenas letras, números, underscore
  2. Iniciar com letra ou underscore
  3. Identificadores são case-sensitive. Nome, NOME e nome são diferentes
  4. Não utilizar palavras reservadas, exceto 2
Exemplo 9
#válidos
nome
NOME
_nome
Exemplo 10
#inválidos
1nome
uma variavel
123

Nativamente, python(05/11/2025) não possui uma palavra reservada const, que é comum em várias outras linguagens como C/C++ Java e outras.

Em python uma constante é declarada no padrão caixa alta e snake case como mostrado na sintaxe abaixo:

Sintaxe
NOME_CONSTANTE = valor_inicial
Exemplo 10
NOME_CONSTANTE1 = 3.14
NOME_CONSTANT2 = “string”

Usando o padrão acima informamos que o identificador deve ser tratado como uma constante ao longo da aplicação. Declarando uma constante como acima não evita que seu valor seja atualizado ou modificado.

Uma forma de simular uma constante é feito utilizando uma função que retorna uma valor fixo.

Sintaxe
def nome_constante():
	return valor
Exemplo 11
def CONST_PI():
    return 3.14
    
print(CONST_PI())
Saída
3.14

Uma outra forma é utilizando @property para criar uma propriedade de uma classe que retorna um valor.

Exemplo 11
class CONSTANTES:
    def __init__(self):
        self._constante = 3.14
        
    @property
    def CONST_PI(self):
        return self._constante

MINHAS_CONSTANTE = CONSTANTES()
print(MINHAS_CONSTANTE.CONST_PI)
Saída
3.14

Podemos também utilizar uma método estático decorado com @staticmethod para retornar o valor de nossa constante:

Exemplo 12
class CONSTANTES:
    @staticmethod
    def CONST_PI():
        return 3.14

print(CONSTANTES.CONST_PI())
Saída
3.14

Python possui a característica de unpacking de dados. Isso nos permite recuperar valores de tuplas, arrays e objetos atribuindo esses valores à variáveis. Esse assunto será visto em Unpacking

Exemplo 6
tupla = (1, 2, 3)
var_a, var_b = tupla
print(var_a,var_b) 

vetor = [1,2,3]
var_a, var_b, var_c = vetor
print(var_a,var_b,var_c) 
Saída
1 2
1 2 3

Caso seja necessário descartar algum valor ao usar unpacking, Python fornece o identificador (_) para esse fim:

Exemplo 7
tupla = (1, 2, 3)
_, var_b,_ = tupla #descartar 1 e 3
var_a, _, var_c = tupla # descartar 2
_, _,var_c = tupla # descartar 1 e 2

print(var_a, var_b,var_c)
Saída
1 2 3

Os tipos de dados Tupla e Array podem ser vistos com mais detalhes em suas seções específicas Python EDD: Tuple e Vetor/Array.

Caso seja necessário checar os tipos de dados de nossas variáveis para a tomada de decisões, utilizamos a função nativa type como visto na sintaxe a seguir:

Sintaxe
type(nome_variavel)
Retorno
tipo de dado de nome_variavel
Exemplo
var = 10
if type(var) is int:
    print("var int")

var = "hello"
if type(var) is str:
    print("var string")
Saída
var int
var string

Como toda linguagem, Python possui um conjunto de palavras reservadas(keywords) que são reconhecidas e não podem ser utilizadas como nome de idenficadores.

Tab. 1: Palavras reservadas
False class from or None
continue global pass True def
if raise and del import
return as elif in try
assert else is while async
except lambda with await finally
nonlocal yield break for not
  1. 05/11/2025 - revisão 3 - Adição: constantes; Correção link objetivo 'unpacking'
  2. 10/09/2025 - revisão 2 - Ajustes: pontuais, sintaxes, objetivos, navegação 'Próximo' e links internos; Adição: unpacking e discard
  3. 18/09/2024 - revisão 1 - correção em links Portugol; Ajustes gramaticais; outros ajustes
  4. 12/02/2023 - versão inicial