Опубликован: 14.06.2015 | Доступ: свободный | Студентов: 4648 / 498 | Длительность: 21:48:00
Авторские права: Creative Commons Attribution 3.0
Самостоятельная работа 2:

Условное выполнение

< Самостоятельная работа 1 || Самостоятельная работа 2: 123

Смотреть лекцию на: ИНТУИТ | youtube.com

Если проблемы с видео, нажмите выше ссылку youtube

Get Adobe Flash Player

По ссылке youtube выложено видео с русскими титрами.

5.1. Логические выражения

Логическими (boolean expression) называются выражения, которые могут принимать одно из двух значений – истина или ложь. В следующем примере используется оператор ==, который сравнивает два операнда и возвращает True, если они равны (equal) или в противном случае False:

>>> 5 == 5
True
>>> 5 == 6
False

True и False – специальные значения, которые принадлежат к типу bool, они не являются строками:

>>> type(True)
type 'bool'
>>> type(False)
type 'bool'
>>>

Оператор == является одним из операторов сравнения (comparison operators), другие операторы сравнения:

x != y # x не равны y
x > y # x больше y
x < y # x меньше y
x >= y # x больше или равно y
x <= y # x меньше или равно y
x is y # x такой же, как y
x is not y # x не такой же, как y

Все эти операции, возможно, вам знакомы, но в Python их смысл несколько отличается от принятого в математике. Распространенная ошибка заключается в использовании одиночного символа =, вместо двойного ==. Запомните, что = является оператором присваивания, а == является оператором сравнения. В Python нет подобного =< или =>.

5.2. Логические операторы

Существуют три логических оператора (logical operators): and, or и not. Смысл этих операторов схож с их смыслом в английском языке:

x > 0 and x < 10

это истинно в случае, если x больше 0 и меньше 10.

n%2 == 0 or n%3 == 0

это истинно, если одно из выражений является истинным.

В заключение, оператор not отрицает логическое выражение, так

not (x > y)

истинно, если x > y является ложью, т.е. x меньше или равно y.

Строго говоря, операнды логических операторов должны быть логическими выражениями, но Python не очень требователен к этому. Любое ненулевое число интерпретируется им как "истинное".

>>> 17 and True
True

5.3. Условное исполнение

Для того чтобы писать полезные программы, почти всегда необходимо проверять условия и изменять поведение программы. Условные инструкции (conditional statements) предоставляют нам такую возможность. Простейшей формой является инструкция if:

if x > 0 :
     print 'x is positive'

Логическое выражение после инструкции if называется условием (condition). Далее следует символ двоеточия (:) и строка (строки) с отступом.


Если логическое условие истинно, тогда управление получает выражение, записанное с отступами, иначе – выражение пропускается.

Инструкция if имеет схожую структуру с определением функции или цикла for. Инструкция содержит строку заголовка, которая заканчивается символом двоеточия (:), за которым следует блок с отступом. Подобные инструкции называются составными (compound statements), т.к. содержат больше одной строки.

Не существует ограничения на число инструкций, которые могут встречаться в теле if, но хотя бы одна инструкция там должна быть. Иногда полезно иметь тело if без инструкций (обычно оставляют место для кода, который еще не написан). В этом случае можно воспользоваться инструкцией pass, которая ничего не делает.

if x < 0 :
pass # необходимо обработать отрицательные значения!

Если вы вводите инструкцию if в интерпретаторе Python, то приглашение сменится с трех угловых скобок на три точки (в версии 2.7 наблюдается отступ вместо точек), которые сигнализируют о том, что вы находитесь в блоке инструкций:

>>> x = 3
>>> if x < 10:
       print 'Small'
       
       
Small
>>>
< Самостоятельная работа 1 || Самостоятельная работа 2: 123
Ксения Шошина
Ксения Шошина

курс Программирование на Python

Илья Кизилов
Илья Кизилов

В лекции приводится программа для сортировки слов по их длинне. В коде ошибка. Я исправил так:

def sort_by_length(words):

words = words.split()

t = []

for word in words:

t.append((len(word), word))

t.sort(reverse=True)

res = []

for length, word in t:

res.append(word)

return res

print(sort_by_length(words))

 

Кто ещё как сделал?

 

Иван Севастьянов
Иван Севастьянов
Россия
Марат Марат
Марат Марат
Россия, Eaf