Как проверить, содержит ли список только числа в Python

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

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

Введение

В этом лабораторном занятии вы научитесь проверять, содержит ли список только числа на Python. Это включает определение числовых списков, в том числе списков целых чисел, чисел с плавающей запятой и смешанных чисел. Вы создадите файл Python с именем numeric_lists.py и используете редактор VS Code для определения и вывода этих списков в консоль.

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/numeric_types -.-> lab-559527{{"Как проверить, содержит ли список только числа в Python"}} python/conditional_statements -.-> lab-559527{{"Как проверить, содержит ли список только числа в Python"}} python/lists -.-> lab-559527{{"Как проверить, содержит ли список только числа в Python"}} python/build_in_functions -.-> lab-559527{{"Как проверить, содержит ли список только числа в Python"}} python/data_collections -.-> lab-559527{{"Как проверить, содержит ли список только числа в Python"}} end

Определение числовых списков

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

Сначала создадим новый файл Python с именем numeric_lists.py в каталоге ~/project с помощью редактора VS Code.

~/project/numeric_lists.py

Теперь откройте файл numeric_lists.py в редакторе и добавьте следующий код для определения списка целых чисел:

## Define a list of integers
integer_list = [1, 2, 3, 4, 5]

## Print the list to the console
print(integer_list)

Сохраните файл. Затем откройте терминал в VS Code и перейдите в каталог ~/project. По умолчанию вы уже должны находиться в этом каталоге. Теперь выполните скрипт Python с помощью следующей команды:

python numeric_lists.py

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

[1, 2, 3, 4, 5]

Теперь определим список чисел с плавающей запятой (десятичных чисел):

Отредактируйте файл numeric_lists.py, добавив следующее:

## Define a list of floating-point numbers
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]

## Print the list to the console
print(float_list)

Сохраните файл и запустите скрипт еще раз:

python numeric_lists.py

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

[1.0, 2.5, 3.7, 4.2, 5.9]

Вы также можете создать список, содержащий смесь целых чисел и чисел с плавающей запятой:

Отредактируйте файл numeric_lists.py, добавив следующее:

## Define a list of mixed numbers (integers and floats)
mixed_list = [1, 2.0, 3, 4.5, 5]

## Print the list to the console
print(mixed_list)

Сохраните файл и запустите скрипт еще раз:

python numeric_lists.py

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

[1, 2.0, 3, 4.5, 5]

Поздравляем! Вы успешно определили и вывели числовые списки на Python. Это фундаментальный шаг на пути к работе с числовыми данными на Python.

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

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

Функция all() возвращает True, если все элементы итерируемого объекта (например, списка) являются истинными. Функция isinstance() проверяет, является ли объект экземпляром указанного класса или типа.

Отредактируем файл numeric_lists.py, созданный на предыдущем этапе, добавив следующий код:

def check_if_all_numeric(data):
  """
  Check if all elements in the list are either integers or floats.
  """
  return all(isinstance(item, (int, float)) for item in data)

## Test cases
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]

print(f"Integer list is all numeric: {check_if_all_numeric(integer_list)}")
print(f"Float list is all numeric: {check_if_all_numeric(float_list)}")
print(f"Mixed list is all numeric: {check_if_all_numeric(mixed_list)}")
print(f"String list is all numeric: {check_if_all_numeric(string_list)}")

Вот разбор этого кода:

  • Мы определяем функцию check_if_all_numeric(data), которая принимает список в качестве входных данных.
  • Внутри функции мы используем all() с генераторным выражением (isinstance(item, (int, float)) for item in data).
  • Генераторное выражение проходит по каждому item в списке data и проверяет, является ли он экземпляром int или float с помощью isinstance().
  • all() возвращает True только в том случае, если все элементы списка являются целыми числами или числами с плавающей запятой; в противном случае возвращается False.
  • Затем мы тестируем функцию на разных списках и выводим результаты.

Сохраните файл numeric_lists.py и запустите его из терминала:

python numeric_lists.py

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

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False

Этот вывод показывает, что функция check_if_all_numeric() правильно определяет, являются ли все элементы списка числами. В строковом списке содержится строка, поэтому функция возвращает False.

Обработка пустых списков

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

Отредактируем файл numeric_lists.py, созданный на предыдущих этапах, добавив проверку на пустые списки в функции check_if_all_numeric():

def check_if_all_numeric(data):
  """
  Check if all elements in the list are either integers or floats.
  Handle empty lists gracefully.
  """
  if not data:
    return True  ## An empty list can be considered as all numeric

  return all(isinstance(item, (int, float)) for item in data)

## Test cases
integer_list = [1, 2, 3, 4, 5]
float_list = [1.0, 2.5, 3.7, 4.2, 5.9]
mixed_list = [1, 2.0, 3, 4.5, 5]
string_list = [1, 2, "hello", 4.5, 5]
empty_list = []

print(f"Integer list is all numeric: {check_if_all_numeric(integer_list)}")
print(f"Float list is all numeric: {check_if_all_numeric(float_list)}")
print(f"Mixed list is all numeric: {check_if_all_numeric(mixed_list)}")
print(f"String list is all numeric: {check_if_all_numeric(string_list)}")
print(f"Empty list is all numeric: {check_if_all_numeric(empty_list)}")

Вот, что мы изменили:

  • Добавили проверку в начале функции check_if_all_numeric(): if not data:. Эта проверка определяет, является ли список пустым.
  • Если список пуст, возвращаем True. Это потому, что пустой список можно считать удовлетворяющим условию, что все его элементы являются числами (так как в нем нет элементов, не являющихся числами).
  • Добавили тестовый случай для empty_list.

Сохраните файл numeric_lists.py и запустите его из терминала:

python numeric_lists.py

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

Integer list is all numeric: True
Float list is all numeric: True
Mixed list is all numeric: True
String list is all numeric: False
Empty list is all numeric: True

Как вы видите, функция check_if_all_numeric() теперь правильно обрабатывает пустые списки и возвращает True для них. Это делает ваш код более надежным и менее склонным к ошибкам при работе с потенциально пустыми списками.

Резюме

В этом практическом занятии (лабораторной работе) первоначальный этап сосредоточен на определении числовых списков в Python, включая списки целых чисел, чисел с плавающей запятой и смешанных числовых типов. Процесс включает создание файла Python numeric_lists.py и заполнение его определениями списков с использованием квадратных скобок и значений, разделенных запятыми. Затем функция print() используется для вывода этих списков в консоль, демонстрируя, как создавать и выводить различные числовые списки.

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