Оператори Належності та Порівняння Типів
У цьому розділі ми розглянемо деякі тонкі аспекти Python, які можуть суттєво покращити керування та взаємодію з даними у ваших програмах — зокрема, оператори належності та порівняння типів.
Розглянемо, як Олексій використовує ці інструменти:
Оператори належності корисні, коли потрібно перевірити, чи міститься певний елемент або підрядок у ітерованому об'єкті. Ітерований об'єкт у Python — це будь-що, що можна перебирати у циклі, наприклад, рядки, списки або кортежі. Ми детальніше розглянемо списки та кортежі у наступному розділі; наразі важливо розуміти, що оператори належності застосовуються не лише до рядків.
Основними операторами належності є in
та not in
, які повертають булеве значення, що вказує на наявність (або відсутність) елемента.
Оскільки ви вже ознайомилися з індексацією рядків та зрізами, вам відомо, що рядки є ітерованими. Це означає, що можна використовувати оператори належності для перевірки наявності підрядків у більших рядках.
Розгляньте наступний приклад:
itemName = "Strawberries" in_name = "Straw" in itemName print("Is 'Straw' in 'Strawberries'?", in_name)
Приклад застосування
Уявіть, що ви керуєте описами продуктів або категоріями у системі вашого продуктового магазину. Ви можете отримати довгий рядок із деталями про товар і вам потрібно швидко перевірити наявність певних ключових слів, щоб категоризувати або виділити товари відповідно до вподобань клієнтів чи рекламних акцій:
# Product description from supplier product_description = "Fresh organic milk from local farms, pasteurized and homogenized." # Check if the "organic" and "local" keywords are in the product description is_organic = "organic" in product_description is_local = "local" in product_description # Print the presence of these keywords to decide on marketing strategies print("Is the product organic?", is_organic) print("Is the product locally sourced?", is_local)
Перевірка типів даних
Розуміння типу даних, з якими ви працюєте у Python, є надзвичайно важливим, особливо при керуванні різноманітними потребами системи продуктового магазину. Функція type()
є незамінною, оскільки допомагає впевнитися, що ви працюєте з правильними типами даних — наприклад, рядки для назв продуктів, числа з плаваючою комою для цін і цілі числа для кількості на складі.
Це не лише запобігає помилкам, а й робить обробку та порівняння даних більш коректними та надійними.
У наступному прикладі показано, як type()
може бути використаний для перевірки того, що дані, введені в систему, відповідають очікуваним критеріям. Це є поширеною необхідністю при керуванні даними продуктів у продуктовому магазині для запобігання помилок під час оформлення покупок або оновлення запасів:
# Sample data received from a cashier or inventory management system product_name = "Almond Milk" product_price = "3.49" product_quantity = 30 # Checking if the data types are as expected correct_name_type = type(product_name) == str correct_price_type = type(product_price) == float # Intentional error for demonstration correct_quantity_type = type(product_quantity) == int # Print the results to verify data types print("Is product_name a string?", correct_name_type) print("Is product_price a float?", correct_price_type) # Expected: False, actual data type is a string print("Is product_quantity an integer?", correct_quantity_type) print("Data type check complete. Please review and correct any 'False' outcomes for data corrections.")
Swipe to start coding
Перевірка деталей нового продукту, доданого до системи продуктового магазину, за допомогою операторів належності та порівняння типів.
- Використання операторів належності для перевірки, чи містить змінна
"raw"
підрядки"Imported"
таdescription
. - Присвоєння результатів булевим змінним
contains_raw
таcontains_Imported
. - Використання функції
type()
для перевірки, чи єprice
типуfloat
, аcount
типуint
. - Присвоєння результатів цих перевірок змінним
price_is_float
таcount_is_int
.
Вимоги до виводу
- Вивести:
Contains 'raw': <contains_raw>
. - Вивести:
Contains 'Imported': <contains_Imported>
. - Вивести:
Is price a float?: <price_is_float>
. - Вивести:
Is count an integer?: <count_is_int>
.
Примітка:
Python чутливий до регістру, тому
"imported"
і"Imported"
— це різні рядки.
Рішення
Дякуємо за ваш відгук!