Python · Синтаксис · Початковий рівень
Умовні оператори 2
Додаткова практика щодо умовних операторів у Python: перевірки строк, довжини тексту, символів, зрізів, методів str, логічних операторів and та or та простих сценаріїв обробки введення.
Короткий вступ до теми та пояснення перед вправами (вправи нижче):
Патерни із завдань
#Швидкий довідник: рядкові умови
#Вправи:
Перший і останній символ.
#Користувач вводить рядок. Якщо довжина рядка більша за 10 символів — виведіть перший і останній символ, інакше — виведіть "Рядок занадто короткий".
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.
#Користувач вводить рядок. Якщо рядок починається з літери "A" або "a" — виведіть "Починається з 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 символу, а значить ми можемо застосовувати до нього методи.
Перші чотири символи.
#Користувач вводить рядок. Якщо довжина рядка більша за 8 символів — виведіть перші 4 символи, інакше — виведіть увесь рядок.
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)
Емоційне повідомлення.
#Користувач вводить рядок. Якщо довжина рядка більша за 6 символів і останній символ — "!" — виведіть "Емоційне повідомлення", інакше — "Звичайне повідомлення".
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("Спецсимволів немає")
Привітання за ім’ям та прізвищем.
#Користувач вводить ім’я та прізвище. Якщо і ім’я, і прізвище не порожні — виведіть привітання у форматі: "Привіт, Ім’я Прізвище!" (використайте f-рядок), інакше — "Введіть коректні дані".
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-й символ.
#Користувач вводить рядок. Якщо довжина рядка більша за 10 символів — виведіть зріз рядка з 3-го символу (включно) по 8-й символ (включно), інакше — виведіть "Недостатньо символів".
text = input("Введіть рядок: ")
Рішення
text = input("Введіть рядок: ")
if len(text) > 10:
print(text[2:8])
else:
print("Недостатньо символів")
Перший і останній у повідомленні.
#Користувач вводить рядок. Якщо рядок не порожній — виведіть повідомлення: "Перший символ: X, останній символ: Y" (використайте f-рядок), інакше — "Порожній рядок".
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("Порожній рядок")
Відповідна довжина рядка.
#Користувач вводить рядок. Якщо довжина рядка від 5 до 10 символів включно — виведіть "Відповідна довжина", інакше — "Невідповідна довжина".
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.
#Користувач вводить рядок. Якщо рядок починається з "Py" або закінчується на "on" — виведіть "Схоже на Python", інакше — "Не схоже на 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("Нє, я не розмовляю з незнайомими людьми! Адіос!")