Python · Синтаксис · Начальный уровень
Условные операторы
Практические упражнения по условным операторам в Python: сравнение чисел, проверка диапазонов, работа со строками, паролями, процентами и базовой логикой if, elif, else.
Краткое введение в тему и пояснения перед упражнениями (упражнения ниже):
Сравнение значений и комбинирование условий
#Чтение ввода и распространённые паттерны
#Быстрый справочник: условия
#Упражнения:
Проверка знака числа.
#Напишите программу, которая принимает число и выводит, положительное оно, отрицательное или равно нулю.
number = float(input("Введите число: "))
Решение
number = float(input("Введите число: "))
if number > 0:
print("Число положительное")
elif number < 0:
print("Число отрицательное")
else:
print("Число равно нулю")
# или так можно: сначала подготовить сообщение, а потом один раз вывести его
number = float(input("Введите число: "))
if number > 0:
result = "Число положительное"
elif number < 0:
result = "Число отрицательное"
else:
result = "Число равно нулю"
print(result)
Возрастная категория.
#Программа принимает возраст пользователя и выводит: "Ребёнок" (до 12), "Подросток" (13–17), "Взрослый" (18 и старше).
age = int(input("Введите возраст: "))
Решение
age = int(input("Введите возраст: "))
if age <= 12:
print("Ребёнок")
elif age <= 17:
print("Подросток")
else:
print("Взрослый")
# второй вариант: границы можно записать явно
age = int(input("Введите возраст: "))
if age < 13:
print("Ребёнок")
elif age >= 13 and age <= 17:
print("Подросток")
else:
print("Взрослый")
Большее из двух чисел.
#Пользователь вводит два числа. Выведите большее из них. Если они равны — выведите сообщение "Числа равны".
a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
Решение
a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
if a > b:
print("Большее число:", a)
elif b > a:
print("Большее число:", b)
else:
print("Числа равны")
# или так можно, через переменную result
a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
if a == b:
result = "Числа равны"
elif a > b:
result = f"Большее число: {a}"
else:
result = f"Большее число: {b}"
print(result)
Температура: холодно, тепло, жарко.
#Программа принимает температуру и выводит: "Холодно" (меньше 10), "Тепло" (10–24), "Жарко" (25 и больше).
temp = float(input("Введите температуру: "))
Решение
temp = float(input("Введите температуру: "))
if temp < 10:
print("Холодно")
elif temp <= 24:
print("Тепло")
else:
print("Жарко")
Проверка чётности числа.
#Пользователь вводит число. Проверьте, является ли оно чётным.
num = int(input("Введите число: "))
Решение
num = int(input("Введите число: "))
if num % 2 == 0:
print("Число чётное")
else:
print("Число нечётное")
# или так можно: сохранить проверку в отдельную переменную
num = int(input("Введите число: "))
is_even = num % 2 == 0
if is_even:
print("Число чётное")
else:
print("Число нечётное")
Проверка длины пароля.
#Пользователь вводит пароль. Если длина пароля меньше 6 символов — выведите "Слишком короткий пароль", иначе — "Пароль принят".
password = input("Введите пароль: ")
Решение
password = input("Введите пароль: ")
if len(password) < 6:
print("Слишком короткий пароль")
else:
print("Пароль принят")
Оценка по шкале A-F.
#Пользователь вводит оценку от 0 до 100. Выведите: A (90–100), B (80–89), C (70–79), D (60–69), F (меньше 60).
score = int(input("Введите оценку: "))
Решение
score = int(input("Введите оценку: "))
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("F")
# или так можно: идти от меньших границ к большим
score = int(input("Введите оценку: "))
if score < 60:
print("F")
elif score < 70:
print("D")
elif score < 80:
print("C")
elif score < 90:
print("B")
else:
print("A")
Кратность двух чисел.
#Пользователь вводит два числа. Проверьте, кратно ли первое число второму.
a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
Решение
a = float(input("Введите первое число: "))
b = float(input("Введите второе число: "))
if b == 0:
print("На ноль делить нельзя")
elif a % b == 0:
print("Первое число кратно второму")
else:
print("Первое число не кратно второму")
Округление в диапазоне 0-100.
#Пользователь вводит нецелое число. Если оно больше 100 или меньше 0 — выведите "Только от 0 до 100", иначе округлите его с помощью round до 2 знаков после точки.
num = float(input("Введите число: "))
Решение
num = float(input("Введите число: "))
if num < 0 or num > 100:
print("Только от 0 до 100")
else:
print(round(num, 2))
# или так можно: проверку диапазона сохранить в переменную
num = float(input("Введите число: "))
in_range = 0 <= num <= 100
if in_range:
print(round(num, 2))
else:
print("Только от 0 до 100")
Длинная или короткая строка.
#Пользователь вводит строку. Если длина строки больше 10 символов — выведите "Длинная строка", иначе — "Короткая строка".
text = input("Введите строку: ")
Решение
text = input("Введите строку: ")
if len(text) > 10:
print("Длинная строка")
else:
print("Короткая строка")
# или так можно через переменную message
text = input("Введите строку: ")
if len(text) > 10:
message = "Длинная строка"
else:
message = "Короткая строка"
print(message)
Процент от числа.
#Пользователь вводит a и b. Посчитайте сколько процентов a от b. Формула процентов (a/b)*100.
a = float(input("Часть: "))
b = float(input("От целого: "))
Решение
a = float(input("Часть: "))
b = float(input("От целого: "))
if b == 0:
print("На ноль делить нельзя! И части от 0 нет.")
else:
result = (a / b) * 100
result = round(result, 2)
print(str(result) + "%")
# или так можно: округлить сразу при создании result
a = float(input("Часть: "))
b = float(input("От целого: "))
if b == 0:
print("На ноль делить нельзя! И части от 0 нет.")
else:
result = round((a / b) * 100, 2)
print(str(result) + "%")
Округление до нужного знака.
#Пользователь вводит не целое число, например 5.2564494 и вводит до какого знака после запятой (точки) его округлить. Сделайте рассчеты.
num = float(input("Введите число: "))
rounding = int(input("До какого знака округлять: "))
Решение
num = float(input("Введите число: "))
rounding = int(input("До какого знака округлять: "))
if rounding < 0:
print("Значение для количсетва знаков после точки не может быть меньше 0.")
# Хотя если передать в round отрицательное число в параметр до скольки округлять,
# то результатом округлеия будет просто 0. Так специально сделано, чтоб ошибок не было.
else:
print(round(num, rounding))
Выбор int или float.
#Пользователь вводит число, проверьте, если в введенном есть точка, то сконверитруйте его во float, если точки нет то в int.
num = input("Введите число: ")
Решение
num = input("Введите число: ")
if "." in num:
num = float(num)
else:
num = int(num)
print(num)
# второй вариант: можно проверить и запятую, если пользователь вводит число в таком формате
num = input("Введите число: ")
if "." in num or "," in num:
num = num.replace(",", ".")
num = float(num)
else:
num = int(num)
print(num)
Деление без ошибки нуля.
#Нужно разделить a на b. Если b равняется 0, то выведите сообщение, что на 0 делить нельзя. А если всё ОК, то посчитайте!
a = float(input("Введите число: "))
b = float(input("Введите 2-е число: "))
Решение
a = float(input("Введите число: "))
b = float(input("Введите 2-е число: "))
if b == 0:
print("На ноль делить нельзя! Даже если очень хочется!")
else:
print("Результат:", a / b)
# ИЛИ
if b == 0:
print("На ноль делить нельзя! Даже если очень хочется!")
else:
result = a / b
print("Результат:", result)
# ИЛИ
if b == 0:
print("На ноль делить нельзя! Даже если очень хочется!")
else:
result = a / b
print("Результат:", round(result, 2))
# ИЛИ
if b == 0:
result = "На ноль делить нельзя! Даже если очень хочется!"
else:
result = round(a / b, 2)
print("Результат:", result)
# ИЛИ другие удобные в данной ситуации варианты, даже так:
if b == 0:
message = "На ноль делить нельзя! Ошибка операции -"
result = False
else:
message = "Результат:"
result = round(a / b, 2)
print(message, result)
Анкета имени и фамилии.
#Пользователь вводит Имя и потом отдельно Фамиилию. Давайте попробуем сделать так, что если он введет все правильно, то мы объединим его Имя и Фамилию в одну строку (как один объект новый) и выведем на печать в терминал. А если он ошибется и введет в поле "Имя" анкеты сразу и свое Имя и Фамилию, то мы выведем сообщение, что: "Внимательно заполняйте анкету!! Это был последний бланк ахахах)))" и программа завершиться. Подсказки: 1) Там будет пробел в строке, если он введет все сразу. 2) Сначала проверяйте ошибочный вариант, так будет проще и правильнее.
name = input("Введите Имя: ")
last_name = input("Введите Фамилию: ")
Решение
name = input("Введите Имя: ")
last_name = input("Введите Фамилию: ")
if " " in name:
print("Внимательно заполняйте анкету!! Это был последний бланк ахахах)))")
else:
full_name = name + " " + last_name
print(full_name)
# или более предусмотрительно с оператором or:
if " " in name:
print("Внимательно заполняйте анкету!! Это был последний бланк ахахах)))")
elif name == "" or last_name == "":
print("Бланк нужно заполнить полностью!! (всё заново пока что)")
else:
full_name = name + " " + last_name
print(full_name)