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