Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛЕКЦИЯ 3

.pdf
Скачиваний:
12
Добавлен:
26.03.2016
Размер:
705.41 Кб
Скачать

 

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)