![Desenvolvendo uma mentalidade de plataforma para APIs](https://optimuscloud.com.br/wp-content/uploads/2024/05/1715973725_Desenvolvendo-uma-mentalidade-de-plataforma-para-APIs-150x150.jpg)
Desenvolvendo uma mentalidade de plataforma para APIs
17 de maio de 2024![Observabilidade de rede em clusters K8s para melhor solução de problemas](https://optimuscloud.com.br/wp-content/uploads/2024/05/1715980926_Observabilidade-de-rede-em-clusters-K8s-para-melhor-solucao-de-150x150.jpg)
Observabilidade de rede em clusters K8s para melhor solução de problemas
17 de maio de 2024Type Casting é o processo de conversão de um objeto de um tipo de dados para outro. Tipos de dados são itens de dados que foram classificados ou categorizados em números, inteiros, strings e assim por diante.
Podemos classificar 1 como um número inteiro, 1,3 como um número (flutuante) e um como uma string como esta:
- a=10 – um número inteiro (ou int)
- b=10,5 – um número flutuante
- c=”10″ – uma string
Às vezes, você pode querer converter esses números. Por exemplo, você pode criar um aplicativo com uma função que requer apenas números inteiros, então pode ser necessário cobrir 10,5 a 10. Ou pode ser necessário converter uma string em um número inteiro, como “10” a 10.
Aqui está um exemplo simples disso.
string = "55" number = 45 string_convert = int(string) sum_of_numbers = number + string_convert print("The Sum of our numbers is: ", sum_of_numbers)
Vamos dar uma olhada no que temos acima. Se tentássemos adicionar string + número, o aplicativo geraria um erro porque você não pode adicionar uma string a um número. Não é matematicamente possível. Isso seria como adicionar “Pato” a 10 e todos nós sabemos que Pato + 10 = Você não pode fazer isso!
Para contornar esse problema, usamos conversão de tipo para converter a string em um número com conversão de tipo. Para converter a string em um número, usamos:
string_convert = int(string)
O que fizemos foi usar a função int() para conversão explícita.
Antes de prosseguirmos, vamos falar sobre os dois tipos de conversão em Python, que são conversão de tipo implícita e explícita.
Casting implícito em Python
Esse tipo de conversão ocorre quando um compilador ou interpretador converte automaticamente um objeto de um tipo para outro. Python, entretanto, é uma linguagem fortemente tipada, o que significa que tais conversões automáticas não são possíveis. O interpretador Python simplesmente não converterá automaticamente uma string em um número. Isso é por sua conta.
No entanto, o Python converterá automaticamente int em float. Aqui está um exemplo simples de conversão implícita de tipo:
a=10 b=10.5 print(a+b)
Se você executasse o procedimento acima, os resultados seriam 20,5. Essencialmente, o Python converteu o inteiro 10 em um float 10.0.
Isso é elenco implícito. Você não precisa fazer nada porque o objeto com menor tamanho de bytes é atualizado para um objeto com maior tamanho de bytes durante a operação (no exemplo acima, a+b).
Há outro truque útil com a conversão implícita de tipos. Considere que, em Python, True é um objeto booleano e é igual a 1 (onde False é igual a 0). E daí se definirmos a como True, b como 10 e adicioná-los assim:
a=True; b=10; c=a+b; print(c)
Qual você acha que seria o resultado? Bem, como a = True (que é 1) e b = 10, a+b seria igual a 11.
Se, por outro lado, você definir a como False, o resultado seria, você adivinhou, 10.
Casting explícito em Python
Por outro lado, a conversão explícita em Python é feita dentro do código e tratada através do int() e flutuador() funções.
Digamos que você tenha um programa que recebe um salário e adiciona um bônus, imprimindo os resultados como um número inteiro (número inteiro). Para isso, você usa o flutuador() funcionar assim:
salary = 250000 bonus = salary * (0.50) new_salary = float(salary) print("Salary converted into a floating-point number: ", new_salary) print("Salary after adding a bonus: ", new_salary + bonus)
Como você pode ver, definimos novo_salário como uma conversão de ponto flutuante de salário (de 250.000 a 250.000,0) e depois adicionou-o a bônusque é definido como salário multiplicado por 0,50. A saída do código acima seria:
Salário convertido para um número de ponto flutuante: 250.000,0
Salário após adicionar um bônus: 375.000,0
Existem outros tipos de conversão explícita de tipos que você pode fazer em Python. Aqui estão alguns exemplos.
Você pode converter uma string binária em um número inteiro como este:
a = int("1100100", 2)
O procedimento acima converteria o binário de base 2 “1100100” para o número inteiro 100. Você também pode converter para base 8 ou 16.
Converta um número octal (base 8) assim:
a = int("0o144", 8)
Como 0o144 em octal é 100, a seria igual a 100.
Em hexadecimal, 0x64 = 100, então ficaria assim:
a = int("0x64", 16)
O resultado? 100.
Vamos ter certeza de que conhecemos a classe dos nossos números (para evitar confusão). Tomemos, por exemplo, o seguinte:
a = 100 b = .10 c = float(a+b) print(c) print (type(a)) print (type(b)) print (type(c))
A saída acima seria:
100,1
Também podemos converter um int em uma string. Isso é feito assim:
number = 100 string = str(number) print("From number to string equal: ",string)
Basicamente, convertemos o número 100 na string 100 usando conversão de tipo explícita. Claro, você poderia simplificar isso ainda mais definindo número = “100” mas pode haver momentos em que você não pode fazer isso ao definir suas variáveis, mas em algum ponto do código você precisa digitar explicitamente cast de int para string.
Se você estiver usando uma versão do Python 3.6 ou mais recente, há também a função f-string, que pode converter int em string e fazer isso mais rapidamente do que a função str(). Usar string f fica assim:
age = 50 strAge = f'{age}' print(strAge)
Quando você usa f'{}’ele converte qualquer coisa entre colchetes de int para string.
Deixe-me mostrar um exemplo mais útil de strings F. Vamos importar o data hora função, defina algumas variáveis e, em seguida, imprima com a função f-string. Esse código fica assim:
Import datetime name = "Jack" age = 50 anniversary = datetime.date(2006, 7, 19) print(f'My name is {name}, my age next year will be {age+1}, and my anniversary is {anniversary: %A, %B, %d, %Y}.')
A saída acima seria:
Meu nome é Jack, minha idade no próximo ano será 51 anos e meu aniversário é quarta-feira, 19 de julho de 2006.
Observe que %A, %B, %d, %Y é o tipo de formatação para a função datetime.date, de forma que imprima Dia da semana, Mês, Dia e Ano.
Também é possível converter tipos de sequência, como string ou tupla, em uma lista. Da mesma forma, você pode converter uma string ou lista em uma tupla.
Por exemplo, você tem a string:
a="New Stack"
Podemos converter essa string em uma lista usando o lista() função, assim:
obj=list(a)
O código completo (incluindo uma instrução print) é assim:
a="New Stack" obj=list(a) print(obj)
A saída seria:
(‘N’, ‘e’, ’w’, ‘ ‘, ‘S’, ‘t’, ‘a’, ‘c’, ‘k’)
Huzzah, convertemos uma string em uma lista.
E essa é a essência da conversão de tipos em Python. Esse é um recurso importante que você eventualmente desejará usar para ter certeza de que está sempre lidando com os tipos necessários para manter seus aplicativos funcionando perfeitamente.
A postagem Como e por que você deve usar conversão de tipo em Python apareceu pela primeira vez em The New Stack.