Pythonlearn 03 Conditional
Pythonlearn 03 Conditional
Глава 3
print('Конец')
print('Конец')
Операторы сравнения
Пайтон Значение
• Булево / логическое выражение — < Меньше
выражение, результатом вычисления
<= Меньше или равно
которого является либо «Да», либо «Нет».
Этот результат мы затем используем для == Равно
управления ходом программы >= Больше или равно
> Больше
• Булевы выражения используют операторы
сравнения, чтобы вычислить результат: != Не равно
«Истина» / «Ложь» или «Да» / «Нет»
Запомните: "=” — знак присвоения
• Операторы сравнения оценивают
значения переменных, но не меняют их https://ru.wikipedia.org/wiki/Буль,_Джордж
Операторы сравнения
x=5
if x == 5 :
print('Равно 5') Равно 5
if x > 4 :
print('Больше, чем 4') Больше, чем 4
if x >= 5 :
Больше или равно 5
print('Больше или равно 5')
if x < 6 : print('Меньше, чем 6') Меньше, чем 6
if x <= 5 :
print('Меньше или равно 5') Меньше или равно 5
if x != 6 :
print('Не равно 6') Не равно 6
Односторонние решения
x=5 Да
print('Перед 5') Перед 5 x == 5 ?
if x == 5 :
print('Равно 5') Равно 5 Нет print('Равно 5')
print('Все еще 5') Все еще 5
print('Снова 5')
Снова 5 print('Все еще 5')
print('Потом 5')
print('Перед 6') Потом 5
if x == 6 : Перед 6 print('Снова 5')
print('Равно 6')
print('Все еще 6')
print('Снова 6')
print('Потом 6') Потом 6
Отступы
• Увеличивайте отступ после операторов if или for (после символа " : " )
for i in range(5) :
print(i)
if i > 2 :
print('Больше, чем 2')
print('Закончил с i', i)
print('Готово')
Помните о начале/конце блока
x=5
if x > 2 :
print('Больше, чем 2')
print('Все еще больше')
print('Закончил с 2')
for i in range(5) :
print(i)
if i > 2 :
print('Больше, чем 2')
print('Закончил с i', i)
print('Готово')
Вложенные x>1
да
x = 42
if x > 1 : да
x < 100
print('Больше, чем 1')
if x < 100 :
нет
print('Меньше 100') print('Меньше 100')
print('Готово')
print('Готово')
Двусторонние
решения x=4
• Иногда мы хотим
сделать одну вещь, нет да
x>2
если логическое
выражение правдиво, и
что-то другое, если оно print('Не больше') print('Больше')
ложно
if x > 2 :
print('Больше') print('Не больше') print('Больше')
else :
print('Меньше')
print('Готово')
print('Готово')
Старайтесь визуально
представить блоки кода x=4
нет да
x=4 x>2
if x > 2 :
print('Больше') print('Не больше') print('Больше')
else :
print('Меньше')
print('Готово')
print('Готово')
Другие условные
структуры…
Несколько условий
да
x<2 print('маленький')
нет
if x < 2 :
да
print('маленький')
x < 10 print('Средний')
elif x < 10 :
print('Средний') нет
else :
print('БОЛЬШОЙ') print('БОЛЬШОЙ')
print('Готово')
print('Готово')
Несколько условий x=0
да
x<2 print('маленький')
x=0
нет
if x < 2 :
да
print('маленький')
x < 10 print('Средний')
elif x < 10 :
print('Средний') нет
else :
print('БОЛЬШОЙ') print('БОЛЬШОЙ')
print('Готово')
print('Готово')
x=5
Несколько условий
да
x<2 print('маленький')
x=5 нет
if x < 2 :
да
print('маленький')
x < 10 print('Средний')
elif x < 10 :
print('Средний') нет
else :
print('БОЛЬШОЙ') print('БОЛЬШОЙ')
print('Готово')
print('Готово')
x = 20
Несколько условий
да
x<2 print('маленький')
x = 20 нет
if x < 2 : да
print('маленький') x < 10 print('Средний')
elif x < 10 :
print('Средний') нет
else :
print('БОЛЬШОЙ') print('БОЛЬШОЙ')
print('Готово')
print('Готово')
Несколько условий
if x < 2 :
print('Маленький')
elif x < 10 :
# Без оператора Else print('Средний')
x=5 elif x < 20 :
if x < 2 : print('Большой')
print('Маленький') elif x < 40 :
elif x < 10 : print('Внушительный')
print('Средний') elif x < 100:
print('Огромный')
print('Готово') else :
print('Гигантский')
Запутанность множества условий
Что никогда не будет выведено
вне зависимости от значения x?
if x < 2 :
print('Меньше 2')
if x < 2 : elif x < 20 :
print('Меньше 2') print('Меньше 20')
elif x >= 2 : elif x < 10 :
print('Два или более') print('Меньше 10')
else : else :
print('Что-то еще') print('Что-то еще')
Конструкция try / except
• Окружайте рискованные блоки кода конструкцией try
(попытаться) и except (за исключением)
$ cat notry.py
astr = 'Привет, Боб'
istr = int(astr)
Готово
print('Первый', istr)
astr = '123'
istr = int(astr)
print('Второй', istr)
$ python3 notry.py
Traceback (most recent call last):
File "notry.py", line 2, in <module>
istr = int(astr)ValueError: invalid literal
Программа for int() with base 10: 'Привет, Боб'
останавли-
вается $ cat notry.py
здесь astr = 'Привет, Боб'
istr = int(astr) Готово
print('First', istr)
astr = '123'
istr = int(astr)
print('Second', istr)
Программное Типичный
обеспечение
компьютер
Устройства
ввода Центральный
процессор
Вторичная
память
Устройства Основная
вывода память
Программное Типичный
обеспечение
компьютер
Устройства
ввода Центральный
процессор
Вторичная
память
Устройства Основная
вывода память
astr = 'Привет, Боб' Когда первое преобразование терпит
try: неудачу, программа переходит к коду в
istr = int(astr) блоке except и выполнение программы
except: продолжается
istr = -1
$ python tryexcept.py
print('Первый', istr) Первый -1
Второй 123
astr = '123'
try:
istr = int(astr)
except:
istr = -1 Когда второе преобразование
завершается удачно, код в блоке
print('Второй', istr) except игнорируется и выполнение
программы продолжается.
try / except
astr = 'Боб'
print('Привет')
astr = 'Боб'
try:
print('Привет') istr = int(astr)
istr = int(astr)
print('Здесь')
except: print('Здесь')
istr = -1
istr = -1
print('Готово', istr)