Você está na página 1de 38

Fundamentos de Programação de Computadores

Aula #03
Programação: Tipos de Dados e Variáveis
O que é um tipo de dado? O que são variáveis?
Como os tipos de dados e variáveis se aplicam no Python?
Engenharia Civil - Turma A- 2023/01
Prof. Vinícius Fülber Garcia
Post It da Aula Passada
Projeto d O Primei
e Progra ro Progr
mação ama: “H
★ Dia World!” ello
grama de
Qua
/ Portugo dros (ISO 5807)
★ PDL
★ Cria
l çã
★ Doc o de arquivos e p
Linguag umentaç rojetos
em de P comentá ã o através de
rograma ri os
★ Léx ção ★ Com
ico, sinta ando de e
xe, x
ssificaçõ semântica ha de cód ibir na tela
★ Cla ★ Lin
es e cara
★ Pyt
hon cterística programa igo vs. linha do
s ★ Exe
cução do
programa

2
Tipos de Dados
O que são dados?

Conteúdo que, sozinho, não apresenta contexto ou situação

➔ Um valor atribuído a algo (não a coisa em si)


◆ O processamento e interpretação dos dados levam a compreensão do
mesmo como uma informação
◆ A associação e depuração de informações leva ao entendimento das
mesmas como conhecimento
3
Tipos de Dados
MANGA

Fruta Camiseta D’água Mangueira


4
Tipos de Dados
Dependendo de seu conteúdo, um dado é identificado como de um tipo ou
outro. O tipo é uma forma de classificar os dados.

Em linguagens de programação existem tipos de dados primitivos e derivados


(ou customizados).
★ Tipos primitivos: são tipos de dados built-in que não podem ser
decompostos em outros tipos de dados
★ Tipos derivados: são tipos de dados criados a partir dos tipos
primitivos, gerando estruturas e classes
5
Tipos de Dados
É importante ressaltar que, ao nível de máquina, existe apenas um tipo de dados:
bit (BInary digiT).

Um bit representa apenas um valor entre duas opções (0 ou 1) – ou seja, são


possibilidades mutuamente exclusivas.

Ao nível de máquina, um bit é representado por uma carga elétrica.

Entretanto, normalmente, o bit não é um tipo manipulável de forma isolada


em nível de linguagens de programação.
6
Tipos de Dados
Inicialmente, nosso foco será dado aos tipos primitivos mais comuns, que
existem para a maioria das linguagens de programação — inclusive no
Python!

Sendo assim, os tipos primitivos que serão explorados neste momento são:
● Byte
● Lógico
● Inteiro
● Real
● Caractere/Cadeia
7
Tipos de Dados: Byte
★ Um byte é uma unidade de armazenamento de 8 bits
○ Com isso, pode assumir 256 valores diferentes
★ Tipicamente, é a unidade básica de manipulação de dados das
linguagens de programação
★ A adoção do byte como um octeto de bits não teve um motivo especial
○ O maior motivo é a tabela ASCII - os códigos ASCII foram amplamente
adotados e tornaram o octeto de bits o valor padrão para o byte por
consequência
8
9
Tipos de Dados: Byte
Na linguagem Python, podemos expressar um byte ou uma cadeia de bytes
escrevendo os símbolos desejados entre o marcador b’ ’.

Por exemplo:
● 1 = Significa o valor numérico de 1 e todas as suas propriedades
● b‘1’ = Significa o valor do símbolo ‘1’ na Tabela ASCII (49)

O tipo byte é utilizado como padrão de envio e recebimento de dados em Python.

A função “ord()” e a função “type()”


10
Tipos de Dados: Lógico
Um valor lógico representa uma escolha binária exclusiva: verdadeiro ou
falso; sim ou não; ausente ou presente; 0 e 1…

Por padrão, a maior parte das linguagens de programação adotam os termos


“verdadeiro” (“True”) e “falso” (“False”) para a manipulação do valor
lógico.

Frequentemente, o tipo lógico é chamado bool, boolean ou booleano em


referência ao matemático inglês George Boole.
11
Tipos de Dados: Lógico
Na linguagem Python, as palavras-chave (que são reservadas) utilizadas para o
tipo lógico (que é chamado de bool) são True e False.

O tipo lógico é majoritariamente utilizado em operações lógicas, criação de


condicionais, operações de bit, entre outros…

Abordaremos concretamente a utilização do tipo lógico nas próximas aulas!

12
Tipos de Dados: Inteiro

O tipo inteiro compreende dados numéricos positivos e negativos. Dos


inteiros, são excluídos quaisquer valores fracionários.

0; 10; -36; 40; 68; -24; -1; 1….

De forma geral, o tipo inteiro é utilizado em operações aritméticas e lógicas.

13
Tipos de Dados: Inteiro
Na linguagem Python, não há nenhuma notação especial para a definição
de um número inteiro: basta digitar o próprio número.

Números negativos, entretanto, são sinalizados com um hífen (-), o qual


assume o papel de um sinal negativo.

O Python não assume a existência de zeros sinalizados, portanto -0 torna-se


simplesmente 0.
14
Tipos de Dados: Real
A este tipo atribuem-se os dados numéricos positivos e negativos
pertencentes ao conjunto de números reais. Portanto, são incluídos
tanto valores inteiros quanto fracionários.

-10,5; 1,92; 100,0; 0,0; 0,258; -1,5; 3,1416…

Assim como o tipo inteiro, o tipo de dados real é comumente utilizado em


operações aritméticas e lógicas.
15
Tipos de Dados: Real
Em Python, é importante observar a troca entre o símbolo de separação decimal
e o símbolo de separação de milhar: ponto (.) é utilizado nos decimais.

1,85 (decimal em português) -> 1.85 (decimal em inglês)

Números reais são tipicamente chamados ponto flutuante (float) em


linguagens de programação.

As demais regras se assemelham às do tipo inteiro.


16
Tipos de Dados: Caractere/Cadeia
Um caractere (ou uma cadeia de caracteres) consiste em uma sequência de
códigos ASCII digitáveis ou não. Esse tipo é comumente chamado string.

Em geral, strings se comportam de maneira muito semelhante ao tipo byte,


porém o tipo byte sempre tem uma codificação envolvida: é preparado para a
leitura por máquinas.

Já o tipo string é utilizado majoritariamente como um recurso preparado


para a leitura por humanos.
17
Tipos de Dados: Caractere/Cadeia
Em geral, strings (str) são representadas em linguagens de programação
através de caracteres escritos entre aspas duplas (“ ”). Entretanto, Python
suporta a definição de strings também entre aspas simples (‘ ’).

Sendo assim:
● 1 = Significa o valor numérico de 1 e todas as suas propriedades
● b‘1’ = Significa o valor do símbolo ‘1’ na Tabela ASCII (49)
● ‘1’ ou “1” = Significa o caractere ‘1’
18
Tipos de Dados: Outros
*POLÊMICO*
Os tipos deste slide não são unanimemente considerados primitivos!

Alguns tipos de dados são providos naturalmente como primitivas da


linguagem Python, porém, em outras linguagens, os mesmos são tipos
derivados.

★ Tupla (tuple)
★ Lista (list)
★ Dicionário (dictionary)
19
Tipos de Dados: Casting
O casting nada mais é do que o processo de transformação de um tipo em
outro.

Alguns tipos de dados apresentam compatibilidade semântica!


“1” tem compatibilidade semântica com o int 1 (e vice-versa)
“1” tem compatibilidade semântica com o float 1.0
1.0 tem compatibilidade semântica com a string “1.0”
“1” não tem compatibilidade semântica com o bytes b‘1’

A função type() em Python


20
Tipos de Dados: Casting
Em Python, castings são feitos explicitando para qual tipo de dados um
determinado dado deve ser convertido.

Isto é feito utilizando o próprio tipo de dados como uma função:


❏ str(1) -> Casting de um int para str
❏ float(5) -> Casting de um int para float
❏ int(5.7) -> Casting de um float para int (veja o que acontece!)
❏ str(b‘a’) -> Casting de um bytes para str (veja o que acontece!)
❏ bytes(“a”) -> Casting de uma str para bytes (erro!)
21
Tipos de Dados
Faça um script em Python que:
a) Use a função print() para mostrar o dado e o tipo dos dados (com a
função type()) a seguir:
i) 15
ii) 2.5
iii) “ABC”
iv) False
b) Faça o casting para string (str) dos dados anteriores que apresentem
compatibilidade semântica para tal, exibindo o resultado e o o tipo de dados
resultante na tela
Obs.: utilize vírgulas para um print composto — print(10, “abc”) -> 10 abc
22
Variáveis
“Que está sujeito a variação. Que pode ser variado ou mudado; mudável. Que se
caracteriza pela falta de constância; inconstante” — Michaelis (Variável)

“Espaço reservado na memória de um computador, capaz de armazenar um


determinado tipo de dado que pode variar durante a execução do programa” —
Michaelis (Variável [inf.])

23
Variáveis
Uma abstração simples de variáveis consiste em imaginar a memória do computador
como um grande organizador. Cada espaço do organizador deve apresentar um
nome (etiqueta) específico e único e armazenar apenas um dado.

24
Definição de Variáveis
O nome (rótulo) de uma variável define como iremos se referir à porção de
memória que ela representa e ao dado armazenado na mesma.

A definição do nome de uma variável está sujeita a algumas regras gerais:


★ Podem utilizar um ou mais caracteres
★ O primeiro caractere deve ser alfabético, os demais podem ser
alfanuméricos (underline é tipicamente permitido também)
★ Nomes reservados ou de funções não devem ser definidos em variáveis
25
Definição de Variáveis
Alguns nomes reservados em Python são:

False class finally is return None


continue for lambda try True def
from nonlocal while and del global
not with as elif if or
yield assert else import pass break
except in raise

26
Definição de Variáveis

Estáticas Dinâmicas
Variáveis estáticas apresentam Variáveis dinâmicas não têm
um tipo de dado definido e um tipo de dado definido,
imutável sendo normalmente mutável
27
Definição de Variáveis
Definições estáticas de variáveis:
int var_integer
float var_float
str var_string

Definições dinâmicas de variáveis:


var_dinamica (utilizada em momentos específicos, caso contrário a definição é
feita na própria atribuição)

28
Atribuição em Variáveis
O processo de atribuição em variáveis consiste em definir um valor para as
mesmas.

O processo de atribuição pode ser feito várias vezes visto que estamos
tratando de variáveis (não constantes).

Variáveis estáticas recebem apenas dados do seu tipo correspondente,


já para variáveis dinâmicas pode-se atribuir qualquer tipo de dado.
29
Atribuição em Variáveis

O sinal da operação de atribuição varia de linguagem para linguagem de


programação, entre os mais comuns estão: =, <-, :=

Considerando nosso cenário em específico (Python), o sinal da operação de


atribuição é =

30
Atribuição em Variáveis

var_teste = “Uma String” #definição e atribuição de uma String


type(var_teste) #nesse momento, é do tipo str
var_teste = 10 #atribuição de um int em uma variável já definida
type(var_teste) #nesse momento, é do tipo int
var_teste = False #atribuição de um bool em uma variável já definida
type(var_teste) #nesse momento, é do tipo bool

31
Atribuição em Variáveis
Além de atribuir explicitamente um valor para a variável, é possível atribuir o
valor ou referência de uma variável para outra.

Passagem de VALOR Passagem de REFERÊNCIA

Uma cópia do dado armazenado em O endereço de memória que armazena


uma variável é atribuída a outra o dado de uma variável é atribuído a
variável outra variável
32
Atribuição em Variáveis
Passagem de VALOR Passagem de REFERÊNCIA

33
Atribuição em Variáveis
Em Python, as atribuições de variáveis em variáveis são feitas por
passagem de referência.

Isso significa que, ao atribuir uma variável à outra, existe apenas uma cópia do
dado que é referenciada por duas variáveis.

Alterar uma das variáveis (por exemplo, fazendo outra atribuição) não
modifica o dado até então compartilhado entre elas, não causando
efeitos colaterais na outra variável.
34
Atribuição em Variáveis
var_01 = 10 #definição e atribuição de um inteiro em var_01
Var_02 = var_01 #definição e atribuição de var_01 em var_02
print(var_01) #deve mostrar 10
print(var_02) #deve mostrar 10
var_02 = 15 #atribuição de outro inteiro em var_02
print(var_01) #deve mostrar 10
print(var_02) #deve mostrar 15

35
Variáveis
Considere o seguinte algoritmo em Python:

var_a = 10
var_b = 20

Você deve passar o valor de var_a para var_b e de var_b para var_a e
mostrar o resultado com a função print.

Além da função print, só são permitidas operações de definição de variáveis e de


atribuição entre variáveis.
36
Exercício #3
Faça um algoritmo que:
a) Tenha uma variável (aqui, chamamos ela var_01), esta variável
recebe um valor do tipo inteiro, real ou lógico
b) Uma segunda variável (aqui, chamamos ela var_02) deve ser definida
e atribuída com o casting para o tipo string (str) da primeira
variável
c) Em seguida, o programa deve utilizar a função print para mostrar
tanto o valor da segunda variável, quanto o seu tipo de dado
37
Obrigado!
Vinícius Fülber Garcia
inf.ufpr.br/vfgarcia/
viniciusfulber@ufpr.br

Você também pode gostar