Similar presentations:
Циклы. Продолжение. Регистрация пользователя
1.
Циклы. Продолжение2.
Регистрация пользователяВозможная задача.
В логинах могут использоваться только буквы латинского алфавита и цифры. В них
запрещены символы: =?*^$№@_,;:#%^&(). Программа должна запрашивать логин и
печатать запрещённые символы, если они есть.
Как проанализировать логин?
3.
Регистрация пользователяВозможная задача.
В логинах могут использоваться только буквы латинского алфавита и цифры. В них
запрещены символы: =?*^$№@_,;:#%&. Программа должна запрашивать логин и
печатать запрещённые символы, если они есть.
=
?
*
^
$
№
@
_
,
;
#
p
s
_
s
m
i
r
n
o
v
a
Возможное решение –– по очереди
просмотреть все символы логина и для
каждого из них понять, является ли он
запрещённым (есть в строке-запрете).
%
&
Строка запрета
Строка-логин
4.
Регистрация пользователяВозможная блок-схема:
Ввод логина –– login
i=0
end = len(login)
i не равно end?
Да
login[i] есть в строке запрета?
Да
Запрещённый символ:
login[i]
i=i+1
Не
т
Не
т
5.
Оптимальное решениеИспользование счётчика оправдано для программирования
любых действий, повторяющихся n-раз.
Но строка — это последовательность символов.
Интерпретатор видит, что символы строки связаны, и может
перебирать их без счётчика!
p
s
_
s
m
i
...
r
n
o
v
a
6.
Оптимальное решениеПеребор элементов последовательности — это
удобный и мощный инструмент Python.
Чтобы овладеть им, изучим новый вид цикла ––
цикл for.
p
s
_
s
m
i
...
r
n
o
v
a
7.
Цель рабочего дня —запрограммировать авторизацию и личный
кабинет пользователя для социальной сети
В работе использовать оптимальный инструмент ––
цикл for.
Сегодня вы:
● узнаете, что цикл for может использоваться для
перебора элементов последовательности;
● узнаете и сравните циклы-счётчики for и while;
● внедрите механики в социальную сеть «Друг
вокруг».
8.
Повторение9.
Что такое цикл?Какой оператор цикла вы знаете?
10.
Цикл— это команда, выполняющая указанные действия до тех
пор, пока остаётся истинным логическое выражение
(условие).
while
Выражение истинно
Выполнить действие 1
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
4 пробела
:
Блок действий
начинается с
двоеточия
11.
Что такое счётчик?Для чего он используется?
12.
Счётчик— это переменная, хранящая число шагов цикла.
Счётчик может хранить:
-
Все шаги цикла.
Шаги цикла, на которых выполнилось некоторое условие.
13.
Счётчик— это переменная, хранящая число шагов цикла.
Пример 1:
Счётчик, хранящий все шаги цикла.
Счётчик = 0
Логическое
выражение
истинно?
Да
Выполнить действие А
Увеличить счётчик на 1
Нет
14.
Счётчик— это переменная, хранящая число шагов цикла.
Пример 2:
Счётчик, хранящий все шаги цикла, на которых выполнялось условие.
Счётчик = 0
Логическое выражение 1
истинно?
Нет
Да
Да
Выполнить действие 1
Увеличить счётчик на 1
Логическое выражение 2
истинно?
Нет
Выполнить действие 2
15.
Решите задачуСоставить программу, запрашивающую ввод трёх предпочтений пользователя. После
ввода каждого предпочтения программа печатает: «Предпочтение учтено!». После ввода
всех предпочтений программа печатает: «Умная лента настроена».
16.
Решите задачуСоставить программу, запрашивающую ввод трёх предпочтений пользователя. После
ввода каждого предпочтения программа печатает: «Предпочтение учтено!». После ввода
всех предпочтений программа печатает: «Система рекомендаций настроена!».
i = 0
while i != 3:
wish = input('Введите предпочтение:')
print('Предпочтение учтено')
i += 1
print('Система рекомендаций настроена!')
17.
Цикл for18.
Где используется цикл for?Цикл for
Перебор элементов
последовательности
Повтор действий в
теле цикла n-раз
Важный инструмент:
Важный инструмент:
Оператор in
Функция range()
19.
Где используется цикл for?Цикл for
Перебор элементов
последовательности
Повтор действий в
теле цикла n-раз
Важный инструмент:
Важный инструмент:
Оператор in
Функция range()
На самом деле, второй случай сводится к первому!
Разберёмся, как устроен цикл внутри.
20.
Цикл for— это цикл, перебирающий элементы
конечной последовательности.
Последовательность –– это упорядоченный набор элементов.
for элемент
in
последовательность
Выполнить действие 1
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
4 пробела
:
Блок действий
начинается с
двоеточия
21.
Цикл for— это цикл, перебирающий элементы
конечной последовательности.
Последовательность –– это упорядоченный набор элементов.
for элемент
in
последовательность
Выполнить действие 1
Выполнить действие 2
Выполнить действие 3
:
Интерпретатор сам
определяет начало
последовательности, её
конец и порядок
элементов.
Счётчик не нужен!
a
Выполнить действие 4
n
n
y
1
2
3
22.
Цикл for— это цикл, перебирающий элементы
конечной последовательности.
Перебираем строку с паролем
посимвольно:
password = 'kitty'
for symbol in password:
print(symbol)
k
i
t
t
y
23.
Цикл for— это цикл, перебирающий элементы
конечной последовательности.
Шифрование пароля номером
буквы в алфавите:
password = 'kitty'
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for symbol in password:
print(alphabet.find(symbol) + 1)
k
i
t
t
y
24.
Цикл for— это цикл, перебирающий элементы
конечной последовательности.
Шифрование пароля номером
буквы в алфавите:
password = 'kitty'
Сколько раз сработает цикл?
Почему именно столько?
alphabet = 'abcdefghijklmnopqrstuvwxyz'
for symbol in password:
print(alphabet.find(symbol) + 1)
k
i
t
t
y
25.
Вернёмся к задачеЗадача 1. В логинах могут использоваться только буквы латинского алфавита и цифры.
В них запрещены символы: =?*^$№@_,;:#%&. Программа должна запрашивать логин и
печатать запрещённые символы, если они есть.
26.
Вернёмся к задачеЗадача 1. В логинах могут использоваться только буквы латинского алфавита и цифры.
В них запрещены символы: =?*^$№@_,;:#%&. Программа должна запрашивать логин и
печатать запрещённые символы, если они есть.
login = input('Введите логин:')
wrong = '=?*^$№@_'
for symbol in login:
if symbol in wrong:
print('Запрещённый символ:', symbol)
p
@ v
e
l
_
...
i
v
a
n
o
v
27.
Перед тем, как продолжить :1.
Сколько шагов выполнит цикл, если ввести логин:
«ag.sidorov»? Почему?
2. Что напечатает программа, если ввести логин:
«$tep@n555»?
3. Пусть введён логин, в котором нет запрещённых
символов. Сколько раз сработает цикл?
28.
Цикл forможет быть запрограммирован как
цикл со счётчиком.
Т. к. for перебирает элементы последовательности, то для повтора
действий n-раз цикл for должен перебрать числа в диапазоне 0 до n-1.
for элемент
in
диапазон от 0 до 4
Выполнить действие 1
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
:
Повтор действий
тела цикла 5 раз.
29.
Цикл forможет быть запрограммирован как
цикл со счётчиком.
Т. к. for перебирает элементы последовательности, то для повтора
действий n-раз цикл for должен перебрать числа в диапазоне 0 до n-1.
for элемент
in
диапазон от 0 до 4
:
Повтор действий
тела цикла 5 раз.
Выполнить действие 1
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
Для создания временного
диапазона для цикла for
используется функция
range().
30.
Функция range()создаёт последовательность чисел в указанном диапазоне.
range(n) — создаёт последовательность чисел 0, 1, 2… n-1.
range(a, b) — создаёт последовательность чисел a, a+1, a+2… b-1.
for элемент
in range( диапазон ):
Выполнить действие 1
Выполнить действие 2
Выполнить действие 3
Выполнить действие 4
31.
Функция range()создаёт последовательность чисел в указанном диапазоне.
range(n) — создаёт последовательность чисел 0, 1, 2… n-1.
range(a, b) — создаёт последовательность чисел a, a+1, a+2… b-1.
Запрос ввода трёх предпочтений:
for i in range(3):
wish = input('Введите предпочтение:')
print('Предпочтение учтено')
print('Система рекомендаций настроена!')
32.
Рассмотрим задачуЗадача 2. Написать программу для создания группового чата. Количество человек
вводится с клавиатуры. Затем по очереди вводятся имена пользователей,
добавляемых в чат. В ответ на каждое имя печатается: «Добро пожаловать, <имя>!».
После ввода всех имён выводится сообщение: «Групповой чат создан!»
33.
Рассмотрим задачуЗадача 2. Написать программу для создания группового чата. Количество человек
вводится с клавиатуры. Затем по очереди вводятся имена пользователей,
добавляемых в чат. В ответ на каждое имя печатается: «Добро пожаловать, <имя>!».
После ввода всех имён выводится сообщение: «Групповой чат создан!»
amount = int(input('Число участников:'))
for i in range(amount):
name = input('Введите имя:')
print('Добро пожаловать,', name)
print('Групповой чат создан!')
0
1
2
3
34.
Перед тем, как продолжить :1.
Сколько шагов выполнит цикл, если ввести
количество участников 5? 10? 7? Почему?
2. Как изменится решение, если задать диапазон
значений как range(0, amount)? range(0, 3)?
range(amount–1)?
35.
Решение задачиРейтинг исполнителей и их песен основывается на оценках пользователей. В Программу должно
вводится количество оценок. Далее происходит ввод самих оценок, а затем считать и печатать
среднюю оценку.
36.
Циклы. ПродолжениеВложенные
конструкции
37.
Личный кабинет пользователяДля социальной сети «Друг вокруг» нужно запрограммировать
личный кабинет. С его помощью пользователь, например,
сможет:
получать рекомендации фильмов и музыки по
настроению;
участвовать в конкурсах и выигрывать призы
и многое другое.
38.
Рассмотрим задачуЗадача 1. Составить программу для авторизации администратора социальной сети по
логину и паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
Как решить задачу?
39.
Рассмотрим задачуЗадача 1. Составить программу для авторизации администратора социальной сети по
логину и паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
for i in range(3):
login = input('Логин:')
password = input('Пароль:')
if login == 'admin' and password == 'kjf3g':
print('Авторизация c попытки', i+1)
Рассмотрим решение с помощью for. Верное ли оно?
40.
Рассмотрим задачуЗадача 1. Составить программу для авторизации администратора социальной сети по
логину и паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
for i in range(3):
login = input('Логин:')
password = input('Пароль:')
if login == 'admin' and password == 'kjf3g':
print('Авторизация c попытки', i+1)
Нет! Цикл сработает 3 раза, даже если получены
верные данные.
Опиши инструмент, который мог бы исправить
ситуацию
41.
Рассмотрим задачуЗадача 1. Составить программу для авторизации администратора социальной сети по
логину и паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
break
—–
оператор, досрочно
прерывающий цикл.
Как исправить предыдущее решение
оператором break?
42.
Рассмотрим задачуЗадача 1. Составить программу для авторизации администратора социальной сети по
логину и паролю. Для входа даётся три попытки. Если данные введены корректно
(логин: admin, пароль: kjf3g), то программа печатает: «Авторизация с попытки <число>».
for i in range(3):
login = input('Логин:')
password = input('Пароль:')
if login == 'admin' and password == 'kjf3g':
print('Авторизация c попытки', i+1)
break
43.
Рассмотрим задачуЗадача 2. Написать программу для раздела развлечений. При вводе «game» должна
запускаться игра «Угадай число» (правильный ответ –– 5). Для ответа даётся три попытки.
Если дан правильный ответ, то печатается: «Вы выиграли билет на концерт!». В игру
можно сыграть любое число раз. При вводе «off» программа должна завершать работу.
44.
Возможная блок-схема:Ввод действия –– action
action не равно off?
Да
action равно game?
Да
Счётчик от 0 до 2
Ввод числа
Нет
число — 5?
Да
Вывод приза
Ввод действия –– action
Не
т
Не
т
45.
Возможная блок-схема:Ввод действия –– action
action не равно off?
Да
action равно game?
*
Не
т
*
Не
т
Да
*
Счётчик от 0 до 2
Ввод числа
Нет
число — 5?
*
Да
Вывод приза
Ввод действия –– action
Назови
операторы,
которые
можно
использовать
в отмеченных
блоках.
46.
Возможное решениеЗадача 2. Написать программу для раздела развлечений. При вводе «game» должна
запускаться игра «Угадай число» (правильный ответ –– 5). Для ответа даётся три попытки.
Если дан правильный ответ, то печатается: «Вы выиграли билет на концерт!». В игру
можно сыграть любое число раз. При вводе «off» программа должна завершать работу.
action = input('Введите game - игра «Угадай число», off - завершить')
while action != 'off':
if action == 'game':
for i in range(3):
if input('Введите число') == '5':
print('Вы выиграли билет на концерт!')
break
action = input('Введите game - игра «Угадай число», off - завершить')
47.
Для завершения работыпройдите техническое интервью
1. В чём особенность цикла for? В каких случаях он
особенно удобен?
2. Какой оператор позволяет прервать
выполнение цикла? В каких случаях он
используется?