Python · Синтаксис · Начальный уровень
Условные операторы 2
Дополнительная практика по условным операторам в Python: проверки строк, длины текста, символов, срезов, методов строк, логических операторов 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("Не, я не разговариваю с незнакомыми людьми! Адьос!")