Python · Синтаксис · Початковий рівень
Умовні оператори 2
Додаткова практика щодо умовних операторів у Python: перевірки строк, довжини тексту, символів, зрізів, методів str, логічних операторів and та or та простих сценаріїв обробки введення.
Короткий вступ до теми та пояснення перед вправами (вправи нижче):
Патерни із завдань
#Швидкий довідник: рядкові умови
#Вправи:
Перший і останній символ.
#text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if len(text) > 10:
print(text[0], text[-1])
else:
print("Рядок занадто короткий")
# або так можна: зберегти символи у змінні
text = input("Введіть рядок: ")
if len(text) > 10:
first = text[0]
last = text[-1]
print(first, last)
else:
print("Рядок занадто короткий")
Рядок починається з A.
#text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if text.startswith("A") or text.startswith("a"):
print("Починається з A")
else:
print("Починається з іншої літери")
# АБО
if text[0] == "A" or text[0] == "a":
print("Починається з A")
else:
print("Починається з іншої літери")
# АБО
if text[0].lower() == "a":
print("Починається з A")
else:
print("Починається з іншої літери")
У результаті цього виразу text[0] ми отримуємо новий об’єкт рядка, який
складається з 1 символу, а значить ми можемо застосовувати до нього методи.
Перші чотири символи.
#text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if len(text) > 8:
print(text[:4])
else:
print(text)
# або так можна: спочатку підготувати фрагмент
text = input("Введіть рядок: ")
if len(text) > 8:
part = text[:4]
else:
part = text
print(part)
Емоційне повідомлення.
#text = input("Введіть повідомлення: ")
Рішення
text = input("Введіть повідомлення: ")
if len(text) > 6 and text[-1] == "!":
print("Емоційне повідомлення")
else:
print("Звичайне повідомлення")
# або так можна через метод endswith
text = input("Введіть повідомлення: ")
if len(text) > 6 and text.endswith("!"):
print("Емоційне повідомлення")
else:
print("Звичайне повідомлення")
Пошук спецсимволів.
#text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if "@" in text or "#" in text:
print("Спецсимвол знайдено")
else:
print("Спецсимволів немає")
# або так можна: перевіряти символи по черзі
text = input("Введіть рядок: ")
if "@" in text:
print("Спецсимвол знайдено")
elif "#" in text:
print("Спецсимвол знайдено")
else:
print("Спецсимволів немає")
Привітання за ім’ям та прізвищем.
#name = input("Введіть ім’я: ")
surname = input("Введіть прізвище: ")
Рішення
name = input("Введіть ім’я: ")
surname = input("Введіть прізвище: ")
if name and surname:
print(f"Привіт, {name} {surname}!")
else:
print("Введіть коректні дані")
# або без f-рядка, через склеювання рядків
name = input("Введіть ім’я: ")
surname = input("Введіть прізвище: ")
if name and surname:
print("Привіт, " + name + " " + surname + "!")
else:
print("Введіть коректні дані")
Зріз з 3-го по 8-й символ.
#text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if len(text) > 10:
print(text[2:8])
else:
print("Недостатньо символів")
Перший і останній у повідомленні.
#text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if text:
print(f"Перший символ: {text[0]}, останній символ: {text[-1]}")
else:
print("Порожній рядок")
# або так можна: заздалегідь зберегти перший і останній символ
text = input("Введіть рядок: ")
if text:
first = text[0]
last = text[-1]
print(f"Перший символ: {first}, останній символ: {last}")
else:
print("Порожній рядок")
Відповідна довжина рядка.
#text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if 5 <= len(text) <= 10:
print("Відповідна довжина")
else:
print("Невідповідна довжина")
# другий варіант: те саме без ланцюжка порівнянь
text = input("Введіть рядок: ")
length = len(text)
if length >= 5 and length <= 10:
print("Відповідна довжина")
else:
print("Невідповідна довжина")
Схоже на Python.
#text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if text.startswith("Py") or text.endswith("on"):
print("Схоже на Python")
else:
print("Не схоже на Python")
# або так можна, якщо не важливий регістр першої літери
text = input("Введіть рядок: ")
if text.lower().startswith("py") or text.endswith("on"):
print("Схоже на Python")
else:
print("Не схоже на Python")
Привіт або бувай.
#text = input("Введіть фразу: ")
Рішення
text = input("Введіть фразу: ")
if text.lower() == "привіт":
print("І тобі привіт!")
elif text.lower() == "бувай":
print("Адіос!")
else:
print("Нє, я не розмовляю з незнайомими людьми! Адіос!")
# АБО більш передбачливо, щоб врахувати не чітку рівність, а входження:
if "привіт" in text.lower():
print("І тобі привіт!")
elif "бувай" in text.lower():
print("Адіос!")
else:
print("Нє, я не розмовляю з незнайомими людьми! Адіос!")