2.09M
Category: programmingprogramming

Циклы. Продолжение. Регистрация пользователя

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.

Цикл for

18.

Где используется цикл 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. Какой оператор позволяет прервать
выполнение цикла? В каких случаях он
используется?
English     Русский Rules