Как проверить, является ли число целым (а не числом с плавающей точкой) в Python

PythonPythonBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (lab) вы научитесь определять, является ли число в Python целым числом (integer) или числом с плавающей точкой (float). Практическое занятие начинается с различия между целыми числами и числами с плавающей точкой, где подчеркиваются их ключевые характеристики и приводятся примеры.

Затем вы изучите два метода проверки типа данных числа: использование функции isinstance() с int и использование функции type() для точной проверки. В ходе практических упражнений вы создадите скрипт на Python для идентификации и различения целых и вещественных типов данных, закрепив тем самым свое понимание проверки типов данных в Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/BasicConceptsGroup -.-> python/type_conversion("Type Conversion") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/variables_data_types -.-> lab-559545{{"Как проверить, является ли число целым (а не числом с плавающей точкой) в Python"}} python/numeric_types -.-> lab-559545{{"Как проверить, является ли число целым (а не числом с плавающей точкой) в Python"}} python/type_conversion -.-> lab-559545{{"Как проверить, является ли число целым (а не числом с плавающей точкой) в Python"}} python/build_in_functions -.-> lab-559545{{"Как проверить, является ли число целым (а не числом с плавающей точкой) в Python"}} end

Различие между целыми числами и числами с плавающей точкой

На этом этапе вы научитесь различать два основных типа данных в Python: целые числа (integer) и числа с плавающей точкой (float). Понимание различий между ними является важным для выполнения точных вычислений и манипуляций с данными.

Целые числа (int)

Целые числа - это целые значения, положительные или отрицательные, без какой-либо десятичной части. Примеры: -3, 0, 5, 100.

Числа с плавающей точкой (float)

Числа с плавающей точкой, или вещественные числа, - это числа, содержащие десятичную точку. Они также могут представлять числа в научной нотации. Примеры: -2.5, 0.0, 3.14, 1.0e5 (что равно 100000.0).

Начнем с создания скрипта на Python для изучения этих типов данных.

  1. Откройте редактор VS Code в среде LabEx.

  2. Создайте новый файл с именем datatypes.py в директории ~/project.

    touch ~/project/datatypes.py
  3. Откройте файл datatypes.py в редакторе и добавьте следующий код на Python:

    ## Assign an integer to the variable 'integer_number'
    integer_number = 10
    
    ## Assign a float to the variable 'float_number'
    float_number = 10.0
    
    ## Print the values and their types
    print("Integer:", integer_number, "Type:", type(integer_number))
    print("Float:", float_number, "Type:", type(float_number))
  4. Сохраните файл datatypes.py.

  5. Запустите скрипт с помощью команды python в терминале:

    python ~/project/datatypes.py

    Вы должны увидеть следующий вывод:

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

    Этот вывод четко показывает, что integer_number имеет тип int, а float_number имеет тип float.

  6. Теперь выполним простую арифметическую операцию, чтобы увидеть, как Python обрабатывает эти типы:

    Измените файл datatypes.py, добавив следующее:

    ## Assign an integer to the variable 'integer_number'
    integer_number = 10
    
    ## Assign a float to the variable 'float_number'
    float_number = 10.0
    
    ## Print the values and their types
    print("Integer:", integer_number, "Type:", type(integer_number))
    print("Float:", float_number, "Type:", type(float_number))
    
    ## Add an integer and a float
    sum_result = integer_number + float_number
    
    ## Print the result and its type
    print("Sum:", sum_result, "Type:", type(sum_result))
  7. Сохраните файл datatypes.py.

  8. Запустите скрипт еще раз:

    python ~/project/datatypes.py

    Вы должны увидеть следующий вывод:

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

    Обратите внимание, что при сложении целого числа и числа с плавающей точкой результатом является число с плавающей точкой. Это происходит потому, что Python автоматически преобразует целое число в число с плавающей точкой, чтобы сохранить точность.

Использование функции isinstance() с int

На этом этапе вы научитесь использовать функцию isinstance() для проверки, является ли переменная целым числом. Эта функция представляет собой мощный инструмент для проверки типов данных в Python.

Функция isinstance() принимает два аргумента:

  • Переменную, которую вы хотите проверить.
  • Тип данных, с которым вы хотите сравнить переменную (например, int, float, str).

Она возвращает True, если переменная имеет указанный тип, и False в противном случае.

Давайте изменим файл datatypes.py из предыдущего шага, чтобы включить функцию isinstance().

  1. Откройте файл datatypes.py в редакторе VS Code.

  2. Добавьте следующий код в файл:

    ## Assign an integer to the variable 'integer_number'
    integer_number = 10
    
    ## Assign a float to the variable 'float_number'
    float_number = 10.0
    
    ## Print the values and their types
    print("Integer:", integer_number, "Type:", type(integer_number))
    print("Float:", float_number, "Type:", type(float_number))
    
    ## Add an integer and a float
    sum_result = integer_number + float_number
    
    ## Print the result and its type
    print("Sum:", sum_result, "Type:", type(sum_result))
    
    ## Check if integer_number is an integer
    is_integer = isinstance(integer_number, int)
    print("Is integer_number an integer?", is_integer)
    
    ## Check if float_number is an integer
    is_integer = isinstance(float_number, int)
    print("Is float_number an integer?", is_integer)
  3. Сохраните файл datatypes.py.

  4. Запустите скрипт с помощью команды python в терминале:

    python ~/project/datatypes.py

    Вы должны увидеть следующий вывод:

    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

    Как вы можете видеть, isinstance(integer_number, int) возвращает True, потому что integer_number действительно является целым числом. isinstance(float_number, int) возвращает False, потому что float_number - это число с плавающей точкой, а не целое число.

Эта функция особенно полезна, когда вам нужно выполнять разные действия в зависимости от типа данных переменной. Например, вы можете захотеть выполнить целочисленное деление, если переменная является целым числом, и деление с плавающей точкой, если это число с плавающей точкой.

Проверка точности с помощью функции type()

На этом этапе вы узнаете, как функция type() может быть использована для понимания точности чисел в Python. В то время как функция isinstance() проверяет, принадлежит ли переменная определенному типу, функция type() возвращает фактический тип переменной. Это полезно для понимания того, как Python обрабатывает различные числовые операции и какова точность их результатов.

Продолжим изменять файл datatypes.py, чтобы продемонстрировать это.

  1. Откройте файл datatypes.py в редакторе VS Code.

  2. Добавьте следующий код в файл:

    ## Assign an integer to the variable 'integer_number'
    integer_number = 10
    
    ## Assign a float to the variable 'float_number'
    float_number = 10.0
    
    ## Print the values and their types
    print("Integer:", integer_number, "Type:", type(integer_number))
    print("Float:", float_number, "Type:", type(float_number))
    
    ## Add an integer and a float
    sum_result = integer_number + float_number
    
    ## Print the result and its type
    print("Sum:", sum_result, "Type:", type(sum_result))
    
    ## Check if integer_number is an integer
    is_integer = isinstance(integer_number, int)
    print("Is integer_number an integer?", is_integer)
    
    ## Check if float_number is an integer
    is_integer = isinstance(float_number, int)
    print("Is float_number an integer?", is_integer)
    
    ## Perform division with integers
    division_result = integer_number / 3
    print("Division result:", division_result, "Type:", type(division_result))
    
    ## Perform integer division with integers
    integer_division_result = integer_number // 3
    print("Integer division result:", integer_division_result, "Type:", type(integer_division_result))
  3. Сохраните файл datatypes.py.

  4. Запустите скрипт с помощью команды python в терминале:

    python ~/project/datatypes.py

    Вы должны увидеть следующий вывод:

    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'>

    Обратите внимание на следующее:

    • При делении двух целых чисел с использованием оператора / результатом является число с плавающей точкой, даже если результатом является целое число. Это происходит потому, что Python стремится предоставить наиболее точный результат.
    • При использовании оператора // (целочисленное деление) результатом является целое число, при этом любая дробная часть отбрасывается.

Понимание этих нюансов является важным для написания точного и эффективного кода на Python, особенно при работе с числовыми вычислениями.

Резюме

В этом практическом занятии (лабораторной работе) вы научились различать целые числа (integers) и числа с плавающей точкой (floats) в Python. Целые числа - это числа без десятичной точки, в то время как числа с плавающей точкой содержат десятичную точку. Вы создали скрипт на Python, чтобы присвоить целочисленные и вещественные значения переменным, а затем напечатали эти значения вместе с их соответствующими типами с использованием функции type(). Вывод показал, что переменные, которым присвоены целые числа, имеют тип int, а те, которые содержат десятичную точку, имеют тип float.