Tipos de dados em Python#
Vimos na aula passada que podemos guardar qualquer coisa em variáveis no Python. O que nós não discutimos foi que essas "coisas" que podemos guardar nas variáveis possuem tipos específicos. No início vamos trabalhar com 4 tipos básicos:
- Inteiro (
int
): um número sem casa decimal. Ex:34
,96
,-123
,45
; - Float (
float
): um número real, com "ponto decimal" (também chamamos de "ponto flutuante"). Ex:3.14
,-25.1
,5.0
,5e-1
; - String (
str
): texto puro (é representado necessariamente com aspas simples ou duplas). Ex:"Hello, world!"
,'Insper'
,'3.14'
,'"oi"'
; - Booleano (
bool
): representam "verdadeiro" (True
) e "falso" (False
).
Conversão entre tipos
O Python disponibiliza algumas funções que convertem um valor de um tipo para outro.
Exercise 1
Answer
O comando str(123)
converte o número 123
para a string '123'
. Ao utilizar o operador de soma (+
) entre duas strings, o resultado será 1234
. Na computação, dizemos que as strings 123
e 4
foram concatenadas.
Parece que vimos algo parecido no código do EXERCÍCIO 01
. Ao pedir dois valores utilizando o comando input
e passando esses dois valores para a função soma
, tivemos como resultado a concatenação de duas strings.
Exercise 2
Answer
O comando int('14')
converte a string '14'
para o número inteiro 14
. Como o valor 28
é um número inteiro, o resultado da operação de soma entre os números 14
e 28
, resulta no número inteiro 42
.
Então aqui, temos uma dica do que podemos utilizar para consertar nossoo código.
Exercise 3
Exercise 4
Answer
A forma correta de converte para inteiro o valor recebido pelo comando input
é int(input('Entre com o primeiro número: '))
.
O comando input(int('Entre com o primeiro número: '))
é muito similar a forma correta, porém, podemos perceber que a ordem do comando int
e input
estão invertidas.
O comando int(soma(a, b))
converte para inteiro o valor devolvido pela função soma
. E como os valores de a
e b
são strings, então a função soma
devolve o resultado da concatenação das strings armazenadas nas variáveis a
e b
.
Agora vamos continuar explorando tipos de variáveis em Python.
Exercise 5
Exercise 6
Answer
Ao executar o código float('BANANA')
, o interpretador Python não sabe como fazer a conversão da string BANANA
para um número float
.
Exercise 7
Answer
Seu programa deve ter apresentado um erro parecido com o seguinte: ValueError: could not convert string to float: 'BANANA'
. Será muito comum encontrarmos erros em nosso programa. A primeira dica é: não entre em pânico. A segunda é: leia a mensagem de erro com atenção.
Exercise 8
Answer
Será impresso 4.0
no terminal. Ao converter o número inteiro 4
para um número em ponto flutuante, o interpretador Python adiciona o ponto e o zero ao número.
Exercise 9
Answer
O comando float('1.625')
converte a string '1.625'
para o número do tipo float 1.625
. Como o valor 0.1
é um número do tipo float, o resultado da operação de soma entre os números 1.625
e 0.1
, resulta no valor 1.725
.
Exercise 10
Answer
O comando int(3.14)
gerou o número inteiro 3
. Mas será que ele arredondou o valor?
Exercise 11
Answer
O valor obtido foi 2
. O que isso diz sobre a função int
?
Ao converter o número 2.718
para um número inteiro, estamos desconsiderando o valor depois do ponto. Desta forma, obtemos o valor 2
como resultado da conversão para int
.
Exercise 12
Answer
Quando o usuário informa o primeiro valor (3.14
), o interpretador Python devolve a seguinte mensagem no terminal: ValueError: invalid literal for int() with base 10: '3.14'
.
Isso ocorre, porque estamos passando um valor do tipo string
para o comando int
. Porém, essa string não pode ser convertida imediatamente para um número inteiro, pois possui casas decimais.
Exercise 13