ЛЕКЦИЯ 3
.pdf
|
6. Оператор присваивания. |
Форма |
Описание |
spam = ‘Spam’ |
Каноническая. Связывает переменную (или элемент структуры данных) с |
|
единственным объектом. |
spam, ham = ‘yum’, ‘YUM’ |
Присваивание кортежей (позиционное) |
[spam, ham] = [‘yum’, ‘YUM’] |
Присваивание списков (позиционное) |
a, b, c, d = ‘spam’ |
Присваивание последовательностей, обобщенное. Cвязывает кортеж имен со |
|
строкой символов: имени a присваивается символ ‘s’, имени b присваивается символ |
|
‘p’ и т. д. |
string = ‘SPAM’ |
Необходимо одинаковое число элементов с обеих сторон. |
a, b, c, d = string |
a, b, c, d == (‘S’, 'P', 'A', ‘M’). |
a, *b = ‘spam’ |
Расширенная операция распаковывания последовательностеи. Переменной a будет |
|
присвоен первый символ из строки справа, а переменной b – оставшаяся часть |
|
строки, то есть переменной a будет присвоено значение ‘s’, а переменной b – |
|
значение ‘pam’. В результате получаем простую альтернативу операции извлечения |
|
срезов. ̆ |
a, b, c = string[0], string[1], string[2:] |
a, b, c = (‘S’, ‘P’, ‘AM’) |
spam = ham = ‘lunch’ |
Групповое присваивание одного значения. Аналог ham = ‘lunch’ и spam = ham. |
spams += 42 |
Комбинированная инструкция присваивания (эквивалентно spams = spams + 42) |
x, y, z = range(3) |
X =0, y = 1, z=2 |
7. Условный оператор.
if <test1>: |
# Инструкция if с условным выражением test1 |
<statements1> |
# Ассоциированный блок |
elif <test2>: |
# Необязательные части elif |
<statements2> |
# Необязательный блок else |
else: |
|
<statements3> |
|
Оператор if используется для проверки условий: 1)если условие test1 истинно, выполняется блок выражений
statements1,
2)иначе проверяется условие test2 и, если оно истинно, выполняется statements1 (блоков elif может быть несколько),
3)иначе выполняется statements3.
Блоки «elif» (else if) и «else» являются необязательными.
7.1. Условный оператор. Пример.
number = 23
guess = int(input('Введите целое число : '))
if guess == number:
print('Поздравляю, вы угадали,') # Здесь начинается блок
print('(хотя и не выиграли никакого приза!)') # Здесь заканчивается блок elif guess < number:
print('Нет, загаданное число немного больше этого.')
#Внутри блока вы можете выполнять всё, что угодно ...
else:
print('Нет, загаданное число немного меньше этого.')
#чтобы попасть сюда, guess должно быть больше, чем number
print('Завершено')# Это последнее выражение выполняется всегда после выполнения оператора if
8. Оператор цикла while.
while <test>: |
# Условное выражение test |
<statements1> |
# Тело цикла |
if <test2>: break # Выйти из цикла, пропустив часть else |
|
if <test3>: continue # Перейти в начало цикла, к выражению test1 |
|
else: |
|
<statements2> |
# Выполняется, если выход из цикла |
|
# производится не инструкцией break |
Оператор while позволяет многократно выполнять блок команд statements1 до тех пор, пока выполняется условие test. Он также может иметь необязательный пункт else.
8.1. Оператор цикла while. Пример.
number = 23 running = True
while running:
guess = int(input('Введите целое число : ')) if guess == number:
print('Поздравляю, вы угадали.')
running = False # это останавливает цикл while elif guess < number:
print('Нет, загаданное число немного больше этого') else:
print('Нет, загаданное число немного меньше этого.') else: print('Цикл while закончен.')
# Здесь можете выполнить всё что вам ещё нужно
print('Завершение.')
9. Оператор цикла for.
for <target> in <object>: # Связывает элементы объекта с переменной цикла <statements> # Повторяющееся тело цикла: использует переменную цикла if <test>: break # Выход из цикла, минуя блок else
if <test>: continue # Переход в начало цикла else:
<statements> # Если не попали на инструкцию ‘break’
Когда интерпретатор выполняет цикл for, он поочередно, один за другим, присваивает элементы объекта последовательности переменной цикла и выполняет тело цикла для каждого из них. Для обращения к текущему элементу последовательности в теле цикла обычно используется переменная цикла, как если бы это был курсор, шагающий от элемента к элементу.
Имя (<target>), используемое в качестве переменной цикла (возможно, новой), которое указывается в заголовке цикла for, обычно находится в области видимости, где располагается сама инструкция for. Хотя она может быть изменена в теле цикла, тем не менее ей автоматически будет присвоен следующий элемент последовательности, когда управление вернется в начало цикла. После выхода из цикла эта переменная обычно все еще ссылается на последний элемент последовательности, если цикл не был завершен инструкцией break.
9.1.Оператор цикла for. Пример.
#считаем Питонов
for i in range(3): print(i, ‘Pythons’)
else:
print('No more Pythons')
# F(n) = n!
n = int(input('Введите число: ')) f = 1
for i in range(1,n+1): # правая граница не включена f=f*i
print(f)