No Python, para transformar uma string em Int ou Float, respondendo de forma simples, pode-se se utilizar as seguintes linhas:
1 2 3 4 5 |
"57" para int: int("57") 57 |
1 2 3 4 5 |
"23.578" para float: float("23.578") 23.578 |
Estas linhas funcionam quando você sabe exatamente como é a origem dos dados. Algumas vezes, porém, é necessário saber qual o tipo de dado a string contém. Vamos aprofundar a resposta tratando alguns desses casos diferentes.
Verificar se o valor da string é um int ou float no Python
Caso se utilize o método para conversão em inteiro numa string que possui valores com casas decimais, ele retornará um erro. Portanto, podemos utilizar o código abaixo para transformar uma string num int ou float, de acordo com o tipo de valor da string:
1 2 3 4 5 6 7 8 9 |
def num(s): try: return int(s) except ValueError: return float(s) |
Muito cuidado com este código, porque ele estará misturando dois tipos de números, o que pode causar problemas em operações posteriores.
Para converter um float em int
Caso seja necessário posteriormente converter o float criado num int, pode-se utilizar a linha abaixo:
1 |
int(float(s)) |
No exemplo abaixo vemos o que ela faz:
1 2 3 4 5 6 7 8 9 |
a = "273.557" float(a) 273.557 int(float(a)) 273 |
Para arredondar um float na conversão para int
O método acima simplesmente desconsidera os valores decimais. Para que eles sejam levados em conta, é necessário utilizar a seguinte linha:
1 |
int(round(float(s))) |
Isto indica ao sistema que ele deve fazer um arredondamento. Ele sempre irá arredondar para baixo. Caso você queria um arredondamento para cima, faça algo do tipo:
1 |
int(round(float(s + 0.5))) |
Para fazer a transformação de uma lista de strings
Caso você saiba exatamente o tipo de entrada na string, e ela vier num formato de lista, você pode fazer a transformação de todas utilizando o código abaixo:
1 2 3 4 5 |
x = ["527.1", "237.23", "876.54"] map(float, x) [527.1, 237.23, 876.54] |
Ele funciona também para o int.
Caso você conheça mais alguma forma de fazer esta conversão, compartilhe na área de comentários abaixo.
Agora que você descobriu a resposta para esta pergunta, e quiser explorar outras questões, pode conferir nossos vídeos sobre Python. Abaixo estão alguns exemplos:
Você também pode se inscrever em alguns canais que fazem broadcast em Python, como os a seguir:
Outra maneira interessante de descobrir mais coisas interessantes sobre Python é acessar nossa página de projetos