Neste tópico, aprenderíamos como converter uma string em inteiro com e sem o uso de tipo de dados embutido. Sabemos que uma string é uma coleção de caracteres organizados sequencialmente entre aspas e um número inteiro é um número sem casas decimais e não está entre aspas.
Mas quando surge a questão de como converter um tipo de dados em outro, o Python oferece uma maneira fácil de converter um no outro. Neste caso, vemos como podemos converter uma string em um inteiro na seguinte ordem:
Usando tipos de dados embutidos
Suponha que, por algum motivo, eu receba a entrada do usuário, o Python a pega e a retorna como uma string. Em outras palavras, mesmo que alguém digite um número como entrada, o Python o retorna como string.
name = input ('Qual é o seu nome:') print (name) print (type (name)) age = input ('Qual é a sua idade:') print (age) print (type (age))
Resultado:
Qual é o seu nome: Tyra
Tyra
Qual é a sua idade: 20
vinte
Então você vê, o tipo de nome e idade considerados como entrada é ‘String’.
Agora, suponha que se desejamos adicionar 5 à idade, faremos o seguinte:
name = input ('Qual é o seu nome:') print (name) print (type (name)) age = input ('Qual é a sua idade:') print (age) print (type (age)) print (age + 5)
Resultado:
Qual é o seu nome: Tyra
Tyra
Qual é a sua idade: 20
vinte
Traceback (última chamada mais recente):
Arquivo 'C: /Users/prac.py', linha 9, em
imprimir (idade + 5)
TypeError: deve ser str, não int
Não podemos adicionar 5 a idade porque idade é do tipo String e não podemos fazer matemática direta com strings. Portanto, temos que alterar a idade para um inteiro porque consideramos a idade como a entrada e o Python o retorna como String.
Conseqüentemente.
name = input ('Qual é o seu nome:') print (name) print (type (name)) age = input ('Qual é a sua idade:') print (age) print (type (age)) age = int ( idade) imprimir (idade + 5)
Resultado:
Qual é o seu nome: Tyra
Tyra
Qual é a sua idade: 20
vinte
25
Maneira convencional
Suponha que não queremos usar a função interna int () para converter string em um inteiro.Portanto, temos que usar o maneira convencional converter.
Aqui está uma maneira simples de fazer a conversão sem usar int ().
'' '' 123 '-> 123' -12332 '-> -12332' '' def str_to_int (input_str): output_int = 0 if input_str [0] == '-': start_idx = 1 is_negative = True else: start_idx = 0 is_negative = False para i no intervalo (start_idx, len (input_str)): local = 10 ** (len (input_str) - (i + 1)) digito = ord (input_str [i]) - ord ('0') output_int + = place * dígito se is_negative: return -1 * output_int else: return output_int s = '554' x = str_to_int (s) print (type (x)) s = '123' print (str_to_int (s)) s = '-123' imprimir (str_to_int (s))
Resultado:
type casting em java com exemplo
123
-123
Primeiro, vamos verificar se o número fornecido pelo usuário contém algum sinal de menos ou não, ou seja, é um número negativo ou não.Se contiver na primeira posição um sinal de menos, começamos nossa conversão a partir da segunda posição que contém números.
Qualquer número, digamos 123, pode ser escrito na forma -10 ** 2 * 1 + 10 ** 1 * 2 + 10 ** 0 * 3
Da mesma forma, dividimos cada um dos números de entrada usando palavra (argumento) .
ord ('0') retornará 48, ord ('1') retornará 49 etc.
Aqui usamos a lógica de que ord ('1') - ord ('0) = 1, ord (' 2 ') - ord (' 0 ') = 2 etc. que nos dá o número significativo a ser obtido a partir do dado número de entrada.
Por fim, a saída que obtemos da função é um inteiro legítimo que convertemos da string de entrada fornecida.
Como você pode ver, podemos converter qualquer string em inteiro usando a função int () ou da maneira convencional.
Espero que você tenha aprendido bem os conceitos e, portanto, experimente ser mais preciso e, com isso, chegamos ao fim deste artigo sobre como converter uma string em int usando Python.
Tem alguma questão para nós? Mencione isso na seção de comentários deste tutorial String to Integer e entraremos em contato com você o mais breve possível.
Para obter conhecimento aprofundado sobre Python e seus vários aplicativos, você pode se inscrever para com suporte 24/7 e acesso vitalício.