2.63M
Категория: ИнтернетИнтернет

Циклы. Продолжение Ссылка на методичку. Модуль 2. Урок 4

1.

Модуль 2. Урок 4.
Циклы. Продолжение
Ссылка на методичку

2.

Модуль 2. Урок 4. Циклы. Продолжение
Обсуждение:
Большой заказ для
социальной сети

3.

Новый заказ
Молодая социальная сеть «Друг вокруг» просит о помощи.
Инвесторы готовы поддержать проект при выполнении двух
условий:
❏ наличие системы авторизации пользователя по логину
и паролю;
Обсуждение
рабочих задач
❏ наличие личного кабинета пользователя с умной
новостной
лентой,
рекомендациями
музыки
и
конкурсами.
Попробуем справиться с этой задачей?
Алёна,
менеджер проектов

4.

Регистрация пользователя
Возможная задача.
Обсуждение
рабочих задач
В логинах могут использоваться только буквы латинского алфавита и цифры. В них запрещены
символы: =?*^$№@_,;:#%^&(). Программа должна запрашивать логин и печатать запрещённые
символы, если они есть.
Как проанализировать логин?

5.

Регистрация пользователя
Возможная задача.
В логинах могут использоваться только буквы латинского алфавита и цифры. В них запрещены
символы: =?*^$№@_,;:#%&. Программа должна запрашивать логин и печатать запрещённые
символы, если они есть.
?
*
^
$

@
_
,
;
#
p
s
_
s
m
i
r
n
o
v
a
Возможное решение –– по очереди
просмотреть все символы логина и для
каждого из них понять, является ли он
запрещённым (есть в строке-запрете).
%
&
Строка запрета
Строка-логин
Обсуждение
рабочих задач
=

6.

Регистрация пользователя
Возможная блок-схема:
Ввод логина –– login
i=0
end = len(login)
Да
login[i] есть в строке запрета?
Да
Запрещённый символ:
login[i]
i=i+1
Не
т
Не
т
Обсуждение
рабочих задач
i не равно end?

7.

Оптимальное решение
Использование счётчика оправдано для программирования любых
действий, повторяющихся n-раз.
Но строка — это последовательность символов. Интерпретатор
видит, что символы строки связаны, и может перебирать их без
счётчика!
s
_
s
m
i
r
n
o
v
a
Обсуждение
рабочих задач
p
...
Костя,
старший разработчик

8.

Оптимальное решение
Перебор элементов последовательности — это
удобный и мощный инструмент Python.
Чтобы овладеть им, изучим новый вид цикла ––
цикл for.
s
_
s
m
i
r
n
o
v
a
Обсуждение
рабочих задач
p
...
Костя,
старший разработчик

9.

Цель рабочего дня —
запрограммировать авторизацию и личный кабинет
пользователя для социальной сети
В работе использовать оптимальный инструмент ––
цикл for.
● узнаете, что цикл for может использоваться для
перебора элементов последовательности;
● узнаете и сравните циклы-счётчики for и while;
● внедрите механики в социальную сеть «Друг вокруг».
Обсуждение
рабочих задач
Сегодня вы:

10.

Модуль 2. Урок 4. Циклы. Продолжение
Подтверждение
квалификации

11.

Чтобы приступить к рабочим задачам,
продемонстрируйте уровень своих
знаний.
Подтверждение
квалификации
Покажите, что вы готовы к «мозговому
штурму»!

12.

Подтверждение
квалификации
Что такое цикл?
Какой оператор цикла вы знаете?

13.

Цикл
— это команда, выполняющая указанные действия до тех пор, пока
остаётся истинным логическое выражение (условие).
while
Выражение истинно
:
Блок действий
начинается с
двоеточия
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
4 пробела
Подтверждение
квалификации
Выполнить действие 1

14.

Подтверждение
квалификации
Что такое счётчик?
Для чего он используется?

15.

Счётчик
— это переменная, хранящая число шагов цикла.
Счётчик может хранить:
Все шаги цикла.
Шаги цикла, на которых выполнилось некоторое условие.
Подтверждение
квалификации
-

16.

Счётчик
— это переменная, хранящая число шагов цикла.
Пример 1:
Счётчик, хранящий все шаги цикла.
Логическое
выражение
истинно?
Да
Выполнить действие А
Увеличить счётчик на 1
Нет
Подтверждение
квалификации
Счётчик = 0

17.

Счётчик
— это переменная, хранящая число шагов цикла.
Пример 2:
Счётчик, хранящий все шаги цикла, на которых выполнялось условие.
Счётчик = 0
Нет
Да
Да
Выполнить действие 1
Увеличить счётчик на 1
Логическое выражение 2
истинно?
Нет
Выполнить действие 2
Подтверждение
квалификации
Логическое выражение 1
истинно?

18.

Решите задачу
Подтверждение
квалификации
Составить программу, запрашивающую ввод трёх предпочтений пользователя. После ввода
каждого предпочтения программа печатает: «Предпочтение учтено!». После ввода всех
предпочтений программа печатает: «Умная лента настроена».

19.

Решите задачу
Составить программу, запрашивающую ввод трёх предпочтений пользователя. После ввода
каждого предпочтения программа печатает: «Предпочтение учтено!». После ввода всех
предпочтений программа печатает: «Система рекомендаций настроена!».
i = 0
while i != 3:
print('Предпочтение учтено')
i += 1
print('Система рекомендаций настроена!')
Подтверждение
квалификации
wish = input('Введите предпочтение:')

20.

Квалификация подтверждена!
Подтверждение
квалификации
Отлично, вы готовы к «мозговому штурму» и
реализации рабочей задачи!

21.

Модуль 2. Урок 4. Циклы. Продолжение
«Мозговой штурм»:
Цикл for

22.

Где используется цикл for?
Перебор элементов
последовательности
Повтор действий в
теле цикла n-раз
Важный инструмент:
Важный инструмент:
Оператор in
Функция range()
«Мозговой
штурм»
Цикл for

23.

Где используется цикл for?
Перебор элементов
последовательности
Повтор действий в
теле цикла n-раз
Важный инструмент:
Важный инструмент:
Оператор in
Функция range()
На самом деле, второй случай сводится к первому!
Разберёмся, как устроен цикл внутри.
«Мозговой
штурм»
Цикл for

24.

Цикл for
— это цикл, перебирающий элементы
конечной последовательности.
Последовательность –– это упорядоченный набор элементов.
for элемент
in
последовательность
:
Блок действий
начинается с
двоеточия
Выполнить действие 1
Выполнить действие 3
Выполнить действие 4
4 пробела
«Мозговой
штурм»
Выполнить действие 2

25.

Цикл for
— это цикл, перебирающий элементы
конечной последовательности.
Последовательность –– это упорядоченный набор элементов.
in
последовательность
Выполнить действие 1
Выполнить действие 2
:
Интерпретатор сам
определяет начало
последовательности, её
конец и порядок элементов.
Счётчик не нужен!
Выполнить действие 3
a
Выполнить действие 4
n
n
y
1
2
3
«Мозговой
штурм»
for элемент

26.

Цикл for
— это цикл, перебирающий элементы
конечной последовательности.
Шифрование пароля номером буквы в
алфавите:
password = 'kitty'
alphabet = 'abcdefghijklmnopqrstuvwxyz'
print(alphabet.find(symbol) + 1)
k
i
t
t
y
«Мозговой
штурм»
for symbol in password:

27.

Цикл for
— это цикл, перебирающий элементы
конечной последовательности.
Шифрование пароля номером буквы в
алфавите:
password = 'kitty'
alphabet = 'abcdefghijklmnopqrstuvwxyz'
print(alphabet.find(symbol) + 1)
Сколько раз сработает цикл?
Почему именно столько?
k
i
t
t
y
«Мозговой
штурм»
for symbol in password:

28.

Вернёмся к задаче
Задача 1. В логинах могут использоваться только буквы латинского алфавита и цифры. В них
«Мозговой
штурм»
запрещены символы: =?*^$№@_,;:#%&. Программа должна запрашивать логин и печатать
запрещённые символы, если они есть.

29.

Вернёмся к задаче
Задача 1. В логинах могут использоваться только буквы латинского алфавита и цифры. В них
запрещены символы: =?*^$№@_,;:#%&. Программа должна запрашивать логин и печатать
запрещённые символы, если они есть.
login = input('Введите логин:')
wrong = '=?*^$№@_'
for symbol in login:
if symbol in wrong:
p
@ v
e
l
_
...
i
v
a
n
o
v
«Мозговой
штурм»
print('Запрещённый символ:', symbol)

30.

Перед тем, как продолжить :
1. Сколько шагов выполнит цикл, если ввести логин:
«ag.sidorov»? Почему?
2. Что напечатает программа, если ввести логин:
«$tep@n555»?
«Мозговой
штурм»
3. Пусть введён логин, в котором нет запрещённых символов.
Сколько раз сработает цикл?

31.

Цикл for
может быть запрограммирован как
цикл со счётчиком.
Т. к. for перебирает элементы последовательности, то для повтора действий n-раз
цикл for должен перебрать числа в диапазоне 0 до n-1.
for элемент
in
диапазон от 0 до 4
:
Повтор действий
тела цикла 5 раз.
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
«Мозговой
штурм»
Выполнить действие 1

32.

Цикл for
может быть запрограммирован как
цикл со счётчиком.
Т. к. for перебирает элементы последовательности, то для повтора действий n-раз
цикл for должен перебрать числа в диапазоне 0 до n-1.
for элемент
in
диапазон от 0 до 4
:
Повтор действий
тела цикла 5 раз.
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
Для создания временного
диапазона для цикла for
используется функция range().
«Мозговой
штурм»
Выполнить действие 1

33.

Функция range()
создаёт последовательность чисел в указанном диапазоне.
range(n) — создаёт последовательность чисел 0, 1, 2… n-1.
range(a, b) — создаёт последовательность чисел a, a+1, a+2… b-1.
for элемент
in range( диапазон
):
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
«Мозговой
штурм»
Выполнить действие 1

34.

Функция range()
создаёт последовательность чисел в указанном диапазоне.
range(n) — создаёт последовательность чисел 0, 1, 2… n-1.
range(a, b) — создаёт последовательность чисел a, a+1, a+2… b-1.
Запрос ввода трёх предпочтений:
wish = input('Введите предпочтение:')
print('Предпочтение учтено')
print('Система рекомендаций настроена!')
«Мозговой
штурм»
for i in range(3):

35.

Рассмотрим задачу
Задача 2. Написать программу для создания группового чата. Количество человек вводится с
«Мозговой
штурм»
клавиатуры. Затем по очереди вводятся имена пользователей, добавляемых в чат. В ответ на
каждое имя печатается: «Добро пожаловать, <имя>!». После ввода всех имён выводится
сообщение: «Групповой чат создан!»

36.

Рассмотрим задачу
Задача 2. Написать программу для создания группового чата. Количество человек вводится с
клавиатуры. Затем по очереди вводятся имена пользователей, добавляемых в чат. В ответ на
каждое имя печатается: «Добро пожаловать, <имя>!». После ввода всех имён выводится
сообщение: «Групповой чат создан!»
amount = int(input('Число участников:'))
for i in range(amount):
name = input('Введите имя:')
print('Групповой чат создан!')
0
1
2
3
«Мозговой
штурм»
print('Добро пожаловать,', name)

37.

Перед тем, как продолжить :
1. Сколько шагов выполнит цикл, если ввести количество
участников 5? 10? 7? Почему?
«Мозговой
штурм»
2. Как изменится решение, если задать диапазон значений как
range(0, amount)? range(0, 3)? range(amount–1)?

38.

Модуль 2. Урок 4. Циклы. Продолжение
Платформа:
«Друг вокруг»

39.

Выполните задания на платформе
«Друг вокруг: авторизация»
Друг вокруг:
Личный кабинет
learn.algoritmika.org

40.

Перерыв

41.

Модуль 2. Урок 4. Циклы. Продолжение
«Мозговой штурм»:
Вложенные конструкции

42.

Личный кабинет пользователя
Для социальной сети «Друг вокруг» нужно запрограммировать личный
кабинет. С его помощью пользователь, например, сможет:
получать рекомендации фильмов и музыки по настроению;
участвовать в конкурсах и выигрывать призы
«Мозговой
штурм»
и многое другое.

43.

Рассмотрим задачу
«Мозговой
штурм»
Задача 1. Составить программу для авторизации администратора социальной сети по логину и
паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
Как решить задачу?

44.

Рассмотрим задачу
Задача 1. Составить программу для авторизации администратора социальной сети по логину и
паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
for i in range(3):
login = input('Логин:')
password = input('Пароль:')
if login == 'admin' and password == 'kjf3g':
Рассмотрим решение с помощью for. Верное ли оно?
«Мозговой
штурм»
print('Авторизация c попытки', i+1)

45.

Рассмотрим задачу
Задача 1. Составить программу для авторизации администратора социальной сети по логину и
паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
for i in range(3):
login = input('Логин:')
password = input('Пароль:')
if login == 'admin' and password == 'kjf3g':
Нет! Цикл сработает 3 раза, даже если получены
верные данные.
Опиши инструмент, который мог бы исправить
ситуацию
«Мозговой
штурм»
print('Авторизация c попытки', i+1)

46.

Рассмотрим задачу
Задача 1. Составить программу для авторизации администратора социальной сети по логину и
паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
—–
оператор, досрочно
прерывающий цикл.
Как исправить предыдущее решение оператором
break?
«Мозговой
штурм»
break

47.

Рассмотрим задачу
Задача 1. Составить программу для авторизации администратора социальной сети по логину и
паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
for i in range(3):
login = input('Логин:')
password = input('Пароль:')
if login == 'admin' and password == 'kjf3g':
break
«Мозговой
штурм»
print('Авторизация c попытки', i+1)

48.

Рассмотрим задачу
«Мозговой
штурм»
Задача 2. Написать программу для раздела развлечений. При вводе «game» должна запускаться
игра «Угадай число» (правильный ответ –– 5). Для ответа даётся три попытки. Если дан правильный
ответ, то печатается: «Вы выиграли билет на концерт!». В игру можно сыграть любое число раз. При
вводе «off» программа должна завершать работу.

49.

Возможная блок-схема:
Ввод действия –– action
action не равно off?
Да
action равно game?
Не
т
Не
т
Да
Счётчик от 0 до 2
Нет
число — 5?
Да
Вывод приза
Ввод действия –– action
«Мозговой
штурм»
Ввод числа

50.

Возможная блок-схема:
Ввод действия –– action
action не равно off?
Да
action равно game?
*
Не
т
*
Не
т
Да
*
Счётчик от 0 до 2
Нет
число — 5?
*
Да
Вывод приза
Ввод действия –– action
Назови
операторы,
которые можно
использовать в
отмеченных
блоках.
«Мозговой
штурм»
Ввод числа

51.

Возможное решение
Задача 2. Написать программу для раздела развлечений. При вводе «game» должна запускаться
игра «Угадай число» (правильный ответ –– 5). Для ответа даётся три попытки. Если дан правильный
ответ, то печатается: «Вы выиграли билет на концерт!». В игру можно сыграть любое число раз. При
вводе «off» программа должна завершать работу.
action = input('Введите game - игра «Угадай число», off - завершить')
while action != 'off':
if action == 'game':
for i in range(3):
print('Вы выиграли билет на концерт!')
break
action = input('Введите game - игра «Угадай число», off - завершить')
«Мозговой
штурм»
if input('Введите число') == '5':

52.

Перед тем, как продолжить :
1. Сколько шагов выполнит цикл while, если последовательно
ввести: «jokes», «game», «3», «5», «off»?
2. Сколько шагов выполнит цикл for, если последовательно
ввести: «game», «5», «off»?
«Мозговой
штурм»
3. Как сработает программа, если в игре «Угадай число»
исчерпать все попытки?

53.

Модуль 2. Урок 4. Циклы. Продолжение
Платформа:
«Друг вокруг»

54.

Выполните задания на платформе
«Друг вокруг: личный кабинет»
Друг вокруг:
Личный кабинет
learn.algoritmika.org

55.

Модуль 2. Урок 4. Циклы. Продолжение
Завершение
рабочего дня

56.

Для завершения работы
пройдите техническое интервью
1. В чём особенность цикла for? В каких случаях он
особенно удобен?
Подведение итогов
рабочего дня
2. Какой оператор позволяет прервать выполнение
цикла? В каких случаях он используется?
Костя,
Алёна,
старший разработчик
менеджер проектов

57.

Оценка эффективности проделанной
работы
Ответьте с коллегами на вопросы:
2. Что получилось не так, как хотелось?
3. Что нужно сделать, чтобы в следующий раз избежать
неудачи?
Подведение итогов
рабочего дня
1. Что получилось лучше всего?

58.

Дополнительные задания для
повышения эффективности
Подведение итогов
рабочего дня
«Друг вокруг:
доп задания»
English     Русский Правила