Atualizado: 04/11/2024

Conversões de Tipos - Python

Nas operações com dados, podem ser usados valores de diferentes tipos. Por exemplo, podemos somar um número do tipo int e outro do tipo float:

a = 2       # número int
b = 2.5     # número float
c = a + b
print(c)    # 4.5

Nesse caso, nenhum erro ocorrerá. Entretanto, o Python nem sempre consegue realizar automaticamente operações envolvendo dados de diferentes tipos. Vamos entender quais são as regras que se aplicam nesses casos.

Conversão Implícita

Em operações aritméticas, ambos os números precisam ser do mesmo tipo. Quando os dois operandos têm tipos diferentes, o Python tenta convertê-los automaticamente, seguindo as seguintes regras:

  • Se um dos operandos for um número complexo (complex), o outro será convertido para complex.

  • Caso contrário, se um dos operandos for do tipo float, o outro será convertido para float. Isso é o que ocorreu no exemplo anterior, onde o valor da variável a foi convertido para float.

  • Se nenhum dos operandos for complex ou float, ambos deverão ser do tipo int, e nenhuma conversão será necessária.

Conversão Explícita

Em algumas situações, é necessário realizar a conversão de tipos manualmente. Por exemplo, considere o seguinte código:

a = "2"
b = 3
c = a + b

Esperamos que "2" + 3 resulte em 5. No entanto, esse código lança um erro, pois o primeiro valor é uma string. Ao executar o código, o seguinte erro será exibido:

TypeError: can only concatenate str (not "int") to str

Para realizar a conversão de tipos, o Python fornece algumas funções embutidas:

  • int(): converte o valor para um número inteiro.

  • float(): converte o valor para um número com ponto flutuante.

  • str(): converte o valor para uma string.

int()

No exemplo anterior, podemos converter a string para um número usando a função int():

a = "2"
b = 3
c = int(a) + b
print(c)    # 5

Outros exemplos de conversão com int():

a = int(15)     # a = 15
b = int(3.7)    # b = 3
c = int("4")    # c = 4
e = int(False)  # e = 0
f = int(True)   # f = 1

Se o valor não puder ser convertido, a função int() lançará um erro ValueError:

b = int("a1c")    # Erro
c = int("4.7")    # Erro

float()

De maneira semelhante, a função float() converte valores para números com ponto flutuante:

a = "2.7"
b = 3
c = float(a) + b
print(c)    # 5.7

Outros exemplos de conversão com float():

a = float(15)       # a = 15.0
b = float(3.7)      # b = 3.7
c = float("4.7")    # c = 4.7
d = float("5")      # d = 5.0
e = float(False)    # e = 0.0
f = float(True)     # f = 1.0

Assim como em int(), nem todos os valores podem ser convertidos para float. Por exemplo:

d = float("abc")  # Erro

str()

A função str() converte um valor para string:

a = str(False)      # a = "False"
b = str(True)       # b = "True"
c = str(5)          # c = "5"
d = str(5.7)        # d = "5.7"

A função str() pode ser útil, por exemplo, ao concatenar um valor de outro tipo com uma string. No exemplo abaixo, uma tentativa de concatenar uma string com um número lança um erro:

age = 22
message = "Idade: " + age     # Erro
print(message)

Quando somamos um número com outro número, temos uma operação aritmética. Já ao somar uma string com outra string, realizamos uma concatenação. Mas o Python não sabe como combinar uma string e um número diretamente. Para isso, podemos usar a função str():

age = 22
message = "Idade: " + str(age)   # Idade: 22
print(message)
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com