Skip to content

Tipos de Dados e Variáveis

Tipos de Dados em Python

O Python é uma linguagem de tipagem dinÂmica, ou seja, o tipo de uma variável é determinado em tempo de execução, com base no valor que ela contém. Isso significa que as variáveis não precisam ser explicitamente declaradas com um tipo específico.

Tip

Vale a pena mensionar que no Python, tudo é considerado um objeto. Isso significa que todos os valores, variáveis, funções e até mesmo tipos de dados são tratados como objetos. Mais adiante no curso vamos voltar e falar mais sobre isso.

Tipos built-in

Os tipos primitivos em Python se referem aos tipos de dados básicos e fundamentais que são usados para representar valores simples. Vamos dar uma olhada e conhecer os principais.

Tip

Como sugestão leia a documentação oficial do python que trata deste assunto: https://docs.python.org/pt-br/3.5/library/stdtypes.html

Números

Os números são uma parte essencial de qualquer linguagem de programação. Em Python, eles são definidos como objetos imutáveis, o que significa que seu valor não pode ser alterado após a criação.

  • Inteiros (int): São números sem uma parte decimal e podem ser positivos, negativos ou zero. Em Python, os inteiros são representados em base decimal por padrão, mas também podem ser expressos em base binária, octal ou hexadecimal.
decimal = 10
binario = 0b10
octal = 0o10
hexadecimal = 0x10
  • Ponto Flutuante (float): Representam números reais e são escritos com uma parte decimal. Eles são especificados em notação decimal ou em notação científica.
decimal = 3.14
notacao_cientifica = 2.5e3

Strings

Strings são sequências de caracteres Unicode. Em Python, as strings são imutáveis, o que significa que uma vez definidas, seus valores não podem ser alterados. Elas podem ser indexadas e fatiadas para obter sub-strings.

texto = "Python"
primeira_letra = texto[0]  # Resultado: 'P'
sub_string = texto[1:4]  # Resultado: 'yth'

Booleanos

Os booleanos são usados para representar valores de verdade. Em Python, eles são subtipos de inteiros e têm apenas dois valores possíveis: True e False.

verdadeiro = True
falso = False

Variáveis e Atribuição

Variáveis em Python são referências a objetos na memória. A atribuição em Python é dinâmica, o que significa que o tipo de uma variável é determinado em tempo de execução.

idade = 30
nome = "Maria"

Convenção para Nomes:

Nomes de variáveis devem ser minúsculos com palavras separadas por underlines.

nome_completo = "João Silva"
idade_pessoa = 25
valor_total_compra = 150.50

Erros de Nomes:

No Python, cada variável deve ser atribuída antes de ser acessada. Se você tentar acessar uma variável que não foi atribuída, receberá um erro.

# Isto causará um erro porque a variável 'salario' não foi definida antes de ser usada.
print(salario)
salario = 1000

Atribuição Aumentada

A atribuição aumentada é a combinação, em uma única instrução, de uma operação binária e uma instrução de atribuição:

Operação Exemplo Equivalente
+= a += b a = a + b
-= a -= b a = a - b
*= a *= b a = a * b
/= a /= b a = a / b

Conversão de Tipos

Python permite a conversão explícita entre diferentes tipos de dados. Isso é útil quando você precisa operar valores de diferentes tipos juntos.

# Convertendo float para int
numero_inteiro = int(7.8)  # Resultado: 7

# Convertendo int para float
numero_float = float(4)  # Resultado: 4.0

# Convertendo número para string
texto_numero = str(25)  # Resultado: '25'

Entrada e Saída

A interação com o usuário é fundamental para muitos programas. Python fornece funções simples para entrada e saída de dados. A função input() sempre retorna uma string, se queremos armazenar um valor numerico precisamos converter esse valor.

nome_usuario = input("Qual é o seu nome? ")
print(f"Olá, {nome_usuario}!")

Operadores

Os operadores são símbolos especiais que realizam operações em variáveis e valores.

Operadores Aritméticos

Os operadores aritméticos são usados para realizar operações matemáticas básicas. Eles seguem a ordem padrão de operações matemáticas.

Operador Significado Exemplo
+ Adição a + b
- Subtração a - b
* Multiplicação a * b
/ Divisão a / b
% Módulo a % b
** Exponenciação a ** b
// Divisão Inteira a // b

Operadores Aritméticos

Os operadores aritméticos são usados para realizar operações matemáticas básicas. Durante o cálculo de uma expressão, o Python precisa decidir também o tipo do valor calculado.

Por exemplo, ao avaliar a expressão “5 * 3”, o Python tenta manter o tipo dos operandos. Neste caso, ambos os operandos são do tipo int, então o resultado é 15, que também é do tipo int.

No entanto, a expressão “8 / 2” resulta em 4.0, que é do tipo float. Isso ocorre porque a divisão em Python sempre retorna um número de ponto flutuante, mesmo que o resultado seja um número inteiro. Contudo, se usarmos o operador de divisão inteira //, o resultado será 4, que é do tipo int.

# Exemplos:
soma = 5 + 3  # 8
subtracao = 5 - 3  # 2
multiplicacao = 5 * 3  # Resultado: 15 (int)
divisao = 8 / 2  # Resultado: 4.0 (float)
divisao_inteira = 8 // 2 # Resultado: 4 (int)

Uma regra geral no Python é que, quando os operandos são de tipos distintos, como int e float, o operando de tipo "menor" é promovido ao tipo "maior" (ou mais abrangente, no caso o float). Assim, a operação é realizada no tipo mais abrangente.

A conversão entre tipos nativos do Python pode ser realizada usando funções com o nome do tipo desejado. Veja os exemplos abaixo:

numero_float = float(4)         # Resultado: 4.0
numero_int = int(4.5)           # Resultado: 4

Operadores Relacionais

Os operadores relacionais são usados para comparar valores. Eles retornam um valor booleano (True ou False) com base na comparação.

Operador Significado Exemplo
== Igual a a == b
!= Diferente de a != b
> Maior que a > b
< Menor que a < b
>= Maior ou igual a a >= b
<= Menor ou igual a a <= b
# Exemplos:
igual = (5 == 5)  # True
diferente = (5 != 3)  # True
menor = (3 < 5)  # True
maior = (5 > 3)  # True

Operadores Lógicos

Os operadores lógicos são usados para combinar múltiplas condições. Eles são fundamentais em estruturas de decisão e loops. Verdadeiro (V), Falso (F).

Operador and (E lógico)

A B Resultado
V V V
V F F
F V F
F F F

Exemplo: a and b

Operador or (OU lógico)

A B Resultado
V V V
V F V
F V V
F F F

Exemplo: a or b

Operador not (NÃO lógico, barrado, inversor)

A Resultado
V F
F V

Exemplo: not a

# Exemplos:
resultado1 = True and False  # False
resultado2 = True or False  # True
resultado3 = not True  # False

Exercicio problema

Cálculo de Juros Compostos Você está planejando fazer um depósito em uma conta poupança que paga juros compostos mensalmente. Para ajudá-lo a entender quanto dinheiro você terá após um determinado período, você decide escrever um programa.

Instruções:

  • O programa deve começar perguntando quanto você planeja depositar inicialmente.
  • Em seguida, o programa deve perguntar a taxa de juros anual (em porcentagem) que será paga.
  • Por fim, o programa deve perguntar por quantos anos o dinheiro ficará depositado.
  • O programa então calculará o montante final usando a fórmula de juros compostos e exibirá o resultado.

  • Fórmula de Juros Compostos: $$ A = P(1 + \frac{r}{n})^{nt} $$

Onde:

  • A é o valor futuro do investimento/empréstimo, incluindo juros.
  • P é o valor principal do investimento (depósito inicial ou valor do empréstimo).
  • r é a taxa de juro anual (em formato decimal).
  • n é o número de vezes que o juro é capitalizado por ano.
  • t é o número de anos que o dinheiro é investido ou emprestado.

Teste o seu código com:

- Deposito inicial = 1000
- taxa de juros = 5
- tempo = 2
- O resultado esperado é: 1104.94

Uma possivel solução é:

P = float(input("Quanto você planeja depositar inicialmente? "))
r = float(input("Qual a taxa de juros anual (em porcentagem)? "))
t = float(input("Por quantos anos o dinheiro ficará depositado? "))

r = r/100 # Converte a taxa de juros de % para decimal dividindo por 100
A = P * (1 + r/12)**(12*t) # equação de juros compostos
A = round(A, 2) # arredonda o valor com 2 casas decimais
print("Total após " + str(t) + " anos: " + str(A))