Como Verificar se um Número é um Inteiro (Não Float) em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como determinar se um número em Python é um inteiro (integer) ou um ponto flutuante (float). O laboratório começa diferenciando entre inteiros e floats, destacando suas características principais e fornecendo exemplos.

Em seguida, você explorará dois métodos para verificar o tipo de dado de um número: usando a função isinstance() com int e usando a função type() para precisão. Através de exercícios práticos, você criará um script Python para identificar e distinguir entre os tipos de dados inteiro e ponto flutuante, solidificando sua compreensão da verificação de tipos de dados em Python.

Diferenciar Inteiros e Floats

Nesta etapa, você aprenderá a diferenciar entre dois tipos de dados fundamentais em Python: inteiros e floats. Compreender a diferença é crucial para realizar cálculos precisos e manipulação de dados.

Inteiros (int)

Inteiros são números inteiros, positivos ou negativos, sem casas decimais. Exemplos incluem -3, 0, 5, 100.

Floats (float)

Floats, ou números de ponto flutuante, são números que contêm uma casa decimal. Eles também podem representar números em notação científica. Exemplos incluem -2.5, 0.0, 3.14, 1.0e5 (que é 100000.0).

Vamos começar criando um script Python para explorar esses tipos de dados.

  1. Abra o editor VS Code no ambiente LabEx.

  2. Crie um novo arquivo chamado datatypes.py no diretório ~/project.

    touch ~/project/datatypes.py
  3. Abra o arquivo datatypes.py no editor e adicione o seguinte código Python:

    ## Atribui um inteiro à variável 'integer_number'
    integer_number = 10
    
    ## Atribui um float à variável 'float_number'
    float_number = 10.0
    
    ## Imprime os valores e seus tipos
    print("Integer:", integer_number, "Type:", type(integer_number))
    print("Float:", float_number, "Type:", type(float_number))
  4. Salve o arquivo datatypes.py.

  5. Execute o script usando o comando python no terminal:

    python ~/project/datatypes.py

    Você deve ver a seguinte saída:

    Integer: 10 Type: <class 'int'>
    Float: 10.0 Type: <class 'float'>

    Esta saída mostra claramente que integer_number é do tipo int e float_number é do tipo float.

  6. Agora, vamos realizar uma operação aritmética simples para ver como o Python lida com esses tipos:

    Modifique o arquivo datatypes.py para incluir o seguinte:

    ## Atribui um inteiro à variável 'integer_number'
    integer_number = 10
    
    ## Atribui um float à variável 'float_number'
    float_number = 10.0
    
    ## Imprime os valores e seus tipos
    print("Integer:", integer_number, "Type:", type(integer_number))
    print("Float:", float_number, "Type:", type(float_number))
    
    ## Adiciona um inteiro e um float
    sum_result = integer_number + float_number
    
    ## Imprime o resultado e seu tipo
    print("Sum:", sum_result, "Type:", type(sum_result))
  7. Salve o arquivo datatypes.py.

  8. Execute o script novamente:

    python ~/project/datatypes.py

    Você deve ver a seguinte saída:

    Integer: 10 Type: <class 'int'>
    Float: 10.0 Type: <class 'float'>
    Sum: 20.0 Type: <class 'float'>

    Observe que, quando você adiciona um inteiro e um float, o resultado é um float. Isso ocorre porque o Python converte automaticamente o inteiro em um float para manter a precisão.

Usar isinstance() com int

Nesta etapa, você aprenderá como usar a função isinstance() para verificar se uma variável é um inteiro. Esta função é uma ferramenta poderosa para verificar tipos de dados em Python.

A função isinstance() recebe dois argumentos:

  • A variável que você deseja verificar.
  • O tipo de dado que você deseja verificar (por exemplo, int, float, str).

Ela retorna True se a variável for do tipo especificado e False caso contrário.

Vamos modificar o arquivo datatypes.py da etapa anterior para incluir a função isinstance().

  1. Abra o arquivo datatypes.py no editor VS Code.

  2. Adicione o seguinte código ao arquivo:

    ## Atribui um inteiro à variável 'integer_number'
    integer_number = 10
    
    ## Atribui um float à variável 'float_number'
    float_number = 10.0
    
    ## Imprime os valores e seus tipos
    print("Integer:", integer_number, "Type:", type(integer_number))
    print("Float:", float_number, "Type:", type(float_number))
    
    ## Adiciona um inteiro e um float
    sum_result = integer_number + float_number
    
    ## Imprime o resultado e seu tipo
    print("Sum:", sum_result, "Type:", type(sum_result))
    
    ## Verifica se integer_number é um inteiro
    is_integer = isinstance(integer_number, int)
    print("Is integer_number an integer?", is_integer)
    
    ## Verifica se float_number é um inteiro
    is_integer = isinstance(float_number, int)
    print("Is float_number an integer?", is_integer)
  3. Salve o arquivo datatypes.py.

  4. Execute o script usando o comando python no terminal:

    python ~/project/datatypes.py

    Você deve ver a seguinte saída:

    Integer: 10 Type: <class 'int'>
    Float: 10.0 Type: <class 'float'>
    Sum: 20.0 Type: <class 'float'>
    Is integer_number an integer? True
    Is float_number an integer? False

    Como você pode ver, isinstance(integer_number, int) retorna True porque integer_number é de fato um inteiro. isinstance(float_number, int) retorna False porque float_number é um float, não um inteiro.

Esta função é particularmente útil quando você precisa realizar diferentes ações com base no tipo de dado de uma variável. Por exemplo, você pode querer realizar a divisão inteira se uma variável for um inteiro e a divisão de ponto flutuante se for um float.

Verificar com type() para Precisão

Nesta etapa, você explorará como a função type() pode ser usada para entender a precisão dos números em Python. Enquanto isinstance() verifica se uma variável pertence a um tipo específico, type() retorna o tipo real da variável. Isso é útil para entender como o Python lida com diferentes operações numéricas e sua precisão resultante.

Vamos continuar modificando o arquivo datatypes.py para demonstrar isso.

  1. Abra o arquivo datatypes.py no editor VS Code.

  2. Adicione o seguinte código ao arquivo:

    ## Atribui um inteiro à variável 'integer_number'
    integer_number = 10
    
    ## Atribui um float à variável 'float_number'
    float_number = 10.0
    
    ## Imprime os valores e seus tipos
    print("Integer:", integer_number, "Type:", type(integer_number))
    print("Float:", float_number, "Type:", type(float_number))
    
    ## Adiciona um inteiro e um float
    sum_result = integer_number + float_number
    
    ## Imprime o resultado e seu tipo
    print("Sum:", sum_result, "Type:", type(sum_result))
    
    ## Verifica se integer_number é um inteiro
    is_integer = isinstance(integer_number, int)
    print("Is integer_number an integer?", is_integer)
    
    ## Verifica se float_number é um inteiro
    is_integer = isinstance(float_number, int)
    print("Is float_number an integer?", is_integer)
    
    ## Realiza a divisão com inteiros
    division_result = integer_number / 3
    print("Division result:", division_result, "Type:", type(division_result))
    
    ## Realiza a divisão inteira com inteiros
    integer_division_result = integer_number // 3
    print("Integer division result:", integer_division_result, "Type:", type(integer_division_result))
  3. Salve o arquivo datatypes.py.

  4. Execute o script usando o comando python no terminal:

    python ~/project/datatypes.py

    Você deve ver a seguinte saída:

    Integer: 10 Type: <class 'int'>
    Float: 10.0 Type: <class 'float'>
    Sum: 20.0 Type: <class 'float'>
    Is integer_number an integer? True
    Is float_number an integer? False
    Division result: 3.3333333333333335 Type: <class 'float'>
    Integer division result: 3 Type: <class 'int'>

    Observe o seguinte:

    • Quando você divide dois inteiros usando o operador /, o resultado é um float, mesmo que o resultado seja um número inteiro. Isso ocorre porque o Python visa fornecer o resultado mais preciso possível.
    • Quando você usa o operador // (divisão inteira), o resultado é um inteiro, descartando qualquer parte fracionária.

Compreender essas nuances é crucial para escrever código Python preciso e eficiente, especialmente ao lidar com cálculos numéricos.

Resumo

Neste laboratório, você aprendeu a diferenciar entre inteiros e floats em Python. Inteiros são números inteiros sem casas decimais, enquanto floats são números que contêm uma casa decimal. Você criou um script Python para atribuir valores inteiros e float a variáveis e, em seguida, imprimiu seus valores junto com seus respectivos tipos usando a função type(). A saída demonstrou que as variáveis atribuídas a números inteiros são do tipo int, e aquelas com casas decimais são do tipo float.