Условный оператор в Python
Условный оператор выполняет некоторое действие, если указанное условие истинно (равно True).
# Обратите внимание на отступ в четыре (4!) пробела
# или одну табуляцию (кнопочка TAB)
if True : # Обязательное двоеточие перед блоком кода
print ( ‘Условие истинно, поэтому я напечатаюсь’ )
# Вывод
>> Условие истинно, поэтому я напечатаюсь
В условии любой тип данных неявно приводится к bool. Пустая строка и ноль равны False.
print ( bool ( 1 )) # -> True
print ( bool ( 0 )) # -> False
print ( bool ( 10.2 )) # -> True
print ( bool ( » )) # -> False
print ( bool ( ‘Hello’ )) # -> True
Если условие ложно, то код, находящийся под оператором if не выполнится.
if 0 : # Обязательное двоеточие перед блоком кода
print ( ‘Я никогда не напечатаюсь :(‘ )
Если условие в if ложно, то выполнится оператор под оператором else.
if 0 :
print ( ‘Я никогда не напечатаюсь :(‘ )
else :
print ( ‘Оператор else вступает в игру’ )
# Вывод
>> Оператор else вступает в игру
Иногда двух вариантов недостаточно, для этого существует оператор elif, а для все остального есть.
age = int ( input ())
if age 10 :
print ( ‘Ваш возраст — это одна цифра :)’ )
el if age 15 :
print ( ‘Удачи с геометрией :):):)’ )
else :
print ( ‘Совсем взрослый уже :(‘ )
Если условие в операторе if ложно, то интерпретатор проверяет истинность условия операторов elif, всех по очереди. Если все условия ложны, то выполнится оператор else.
Примеры
# Выведите строку ‘четное’, если введенное число четно, и строку ‘нечетное’, если число нечетно.
a = int ( input ())
if a % 2 == 0 :
print ( ‘четное’ )
else :
print ( ‘нечетное’ )
# Ввод
>> 10
# Вывод
>> четное
# Ввод
>> 11
# Вывод
>> нечетное
# Если в вашем коде больше трех elif значит что-то не так и стоит придумать новый алгоритм.
# Это сугубо академический пример, так писать не стоит.
a = int ( input ( ‘Введите число от одного до 1 до 100’ ))
if a 10 :
print ( ‘Ваше число меньше 10’ )
el if a 20 :
print ( ‘Ваше число меньше двадцатки’ )
el if a 30 :
print ( ’30 — это потолок’ )
el if a 40 :
print ( ‘Ваше число меньше 40’ )
el if a 50 :
print ( ‘Много, но не больше полтинника’ )
el if a 60 :
print ( ‘Число меньше, чем шесть*десять’ )
el if a 70 :
print ( ‘Ваше число расположено в восьмом десятке’ )
el if a 80 :
print ( ‘Ваше число меньше 80’ )
el if a 90 :
print ( ‘Ваше число находится в 9 десятке’ )
el if a 100 :
print ( ‘Сотня больше вашего числа’ )
else :
print ( ‘Хитро, но меня не обманешь, число слишком большое’ )
# Ввод
>> 11
# Вывод
>> Ваше число меньше двадцатки
# Ввод
>> 91
# Вывод
>> Сотня больше вашего числа
# Ввод
>> 58
# Вывод
>> Число меньше, чем шесть*десять
3. Белая или черная
# Пользователь вводит два числа: координаты шахматной клетки.
# Выведите YES, если клетка белая, и NO, если — черная.
x = int ( input ( ‘Введите координату x: ‘ ))
y = int ( input ( ‘Введите координату y: ‘ ))
# Идея такая: если четность координат совпадает,
# то это черная клетка, а если — нет, то белая.
if (x + y) % 2 == 1 :
print ( ‘YES’ )
else :
print ( ‘NO’ )
4. Белая или черная (случайные координаты)
# Та же задача, но со случайными числами.
# Координаты шахматной клетки выбираются случайным образом
# Выведите YES, если клетка белая, и NO, если — черная.
from random import randint # импортирование функции randint
x = rand int ( 1 ,8) # функция randint вернет случайное число от 1 до 8
y = rand int ( 1 ,8)
print (x, y) # вывод пары случайных чисел
if (x + y) % 2 == 1 :
print ( ‘YES’ )
else :
print ( ‘NO’ )
Решение задач
Пользователь вводит два целых числа. Выведите меньшее из них.
Пользователь вводит целое число. Выведите YES, если это число является четырехзначным, и NO в противном случае.
Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей. Дано a, b, c — стороны предполагаемого треугольника. Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.
Пользователь вводит время в часах. Если введенное число находится между 5 и 11 часами включительно, выведите строку ‘Утро’. Если число лежит в диапазоне от 12 до 17 часов включительно, выведите строку ‘День’. Если число находится между 18 и 22, то выведите ‘Вечер’. В случае поздней ночи (от 23 до 4 включительно) выведите ‘Ночь’. В остальных случаях выведите строку ‘Ошибка’.
Пользователь вводит номер дня недели. Выведите строку ‘Выходные’, если введенное число равно 6 или 7. В случае, если число лежит в диапазоне от 1 до 5 включительно, выведите строку ‘Будни’.
6. Описание числа
Пользователь вводит целое число. Выведите его строку-описание вида «отрицательное четное число», «ноль», «положительное нечетное число», например, численным описанием числа 190 является строка «положительное четное число».
# Ввод:
>> 1
# Вывод:
>> положительное нечетное число
# Ввод:
>> 06
# Вывод:
>> отрицательное четное число
# Ввод:
>> 2
# Вывод:
>> положительное четное число
7. Конь (финальный босс)
Шахматный конь ходит буквой «Г» — на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку «Ошибка!».
# Ввод:
>> 1 # координата x1
>> 1 # координата y1
>> 2 # координата x2
>> 2 # координата y2
# Вывод:
>> NO
# Ввод:
>> 1 # координата x1
>> 1 # координата y1
>> 3 # координата x2
>> 2 # координата y2
# Вывод:
>> YES
# Ввод:
>> 3 # координата x1
>> 8 # координата y1
>> 2 # координата x2
>> 6 # координата y2
# Вывод:
>> YES
# Ввод:
>> 3 # координата x1
>> 4 # координата y1
>> 5 # координата x2
>> 6 # координата y2
# Вывод:
>> YES
Нахождение цифр четырёхзначного числа
исходник мой неверен в чем моя ошибка? Напишите программу для нахождения цифр четырёхзначного числа.
Формат входных данных На вход программе подаётся положительное четырёхзначное целое число.
Формат выходных данных Программа должна вывести текст в соответствии с условием задачи.
Sample Output 1:
Цифра в позиции тысяч равна 3 Цифра в позиции сотен равна 2 Цифра в позиции десятков равна 8 Цифра в позиции единиц равна 1
Решение задачи на Python
Вроде бы все должно работать, но система не пропускает.
Дано четырехзначное число. Определите, является ли его десятичная запись симметричной. Если число симметричное, то выведите 1, иначе выведите любое другое целое число. Число может иметь меньше четырех знаков, тогда нужно считать, что его десятичная запись дополняется слева нулями. Десятичная запись числа симметрична, если при прочтении слева направо и справа налево получается одно и то же число.
При решении задачи можно пользоваться только целочисленными арифметическими операциями. Нельзя пользоваться нелинейными конструкциями: ветвлениями, циклами, функциями.
Помогите решить. Где моя ошибка?
Ответы (4 шт):
Можно сравнить строку, представляющую число, с такой же перевернутой, не переводя в int:
Если использовать .zfill() не разрешено, можно дополнить до четырех знаков самописным куском, например:
Проверка на число
Достаточно часто требуется узнать: записано ли в переменной число. Такая ситуация может возникнуть при обработке введенных пользователем данных. При чтении данных из файла или при обработке полученных данных от другого устройства.
В Python проверка строки на число можно осуществить двумя способами:
- Проверить все символы строки что в них записаны цифры. Обычно используется для этого функция isdigit.
- Попытаться перевести строку в число. В Python это осуществляется с помощью методов float и int. В этом случае обрабатывается возможное исключение.
Рассмотрим как применяются эти способы на практике.
isdigit, isnumeric и isdecimal
У строк есть метод isdigit, который позволяет проверить, являются ли символы, являются ли символы, из которых состоит строка цифрами. С помощью этого метода мы можем проверить, записано ли в строку целое положительное число или нет. Положительное — это потому, что знак минус не будет считаться цифрой и метод вернет значение False.
Если в строка будет пустой, то функция возвратит False.
Методы строки isnumeric и isdecimal работают аналогично. Различия в этих методах только в обработке специальных символов Unicode. А так как пользователь будет вводить цифры от 0 до 9, а различные символы, например, дробей или римских цифр нас не интересуют, то следует использовать функцию isdigit.
Проверка с помощью исключения
Что же делать, если требуется проверить строку на отрицательное число. В Python с помощью isdigit не удастся определить отрицательное число или число с плавающей точкой. В этом случае есть универсальный и самый надежный способ. Надо привести строку к вещественному числу. Если возникнет исключение, то значит в строке записано не число.