1
resposta

[Dúvida] Conversão de valores numéricos

"No Python 2, quando digitamos um valor numérico através de input, ele automaticamente converte de str para int. Já o Python 3 não assume essa conversão automática, sendo o desenvolvedor responsável por fazê-la.". A alterrnativa dá a entender que essa conversão para int se dá para qualquer valor numérico, inclusive números decimais, isso está correto?

1 resposta

Sim. Realmente quando criamos uma variável para entrada de dados do usuário, essa variável tem a saída do tipo string. Por exemplo:

idade = input("Digite sua idade: ")
print(idade)
12
print(type(idade))
<class 'str'>

Para transformarmos esse mesmo valor da variável em um valor Inteiro, precisamos fazer a conversão usando o método int( ). Podendo ser de duas formas:

idade = int(input("Digite sua idade: "))
Digite sua idade: 13
print(type(idade))
<class 'int'>

Ou pode ser assim:

idade = input("Digite sua idade: ")
Digite sua idade: 17
print(type(int(idade)))
<class 'int'>

No primeiro exemplo foi feita a conversão direto na variável que recebe o valor de entrada do usuário e no segundo exemplo a conversão foi feita no momento em que se chama a variável depois de ser atribuído a ela um valor. Mas existe um detalhe que deve-se ter cuidado que, ao trabalhar com números decimais (fracionários) e tentar convertê-los para inteiro, vai dar um erro caso tente imprimir a saída. Por exemplo:

peso = int(input("Digite seu peso: "))
Digite seu peso: 74.9
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '74.9'

Para isso existe o método float( ) que faz a conversão de string para número decimal. Como nos exemplos abaixo:

peso = float(input("Digite seu peso: "))
Digite seu peso: 74.9
print(peso)
74.9
print(type(peso))
<class 'float'>


peso = float(input("Digite seu peso: "))
Digite seu peso: 74
print(peso)
74.0
print(type(peso))
<class 'float'>

Lembrando que posso fazer essa conversão de string para float tanto na variável que recebe os dados de entrada do usuário quanto na variável depois que é atribuído algum valor a ela. Por exmplo:

peso = input("Digite seu peso: ")
Digite seu peso: 74.9
print(peso)
74.9
print(type(peso))
<class 'str'>


peso = float(input("Digite seu peso: "))
Digite seu peso: 74.9
print(peso)
74.9
print(type(peso))
<class 'float'>


peso = input("Digite seu peso: ")
Digite seu peso: 74.9
print(peso)
74.9
print(type(float(peso)))
<class 'float'>

Espero que tenha ajudado a entender e compreender.