Similar presentations:
Практикум по решению задач
1.
Практикумпо решению задач
2.
Умение оптимизироватьпрограммный код, делать его
лаконичным и читабельным —
это то, к чему нужно стремиться
каждому программисту.
Во время тестовых заданий
при устройстве на работу этот навык
легко проверить.
3.
Лаконичные программыЗадача для турфирмы:
Написать программу, считающую общий вес багажа.
Мы запрограммировали:
mass1 = input('Вес чемодана')
mass1 = int(mass1)
mass2 = input('Вес ручной клади')
mass2 = int(mass2)
mass3 = input('Вес доп. предметов')
mass3 = int(mass3)
total = mass1 + mass2 + mass3
print('Общий вес багажа:', total)
4.
Лаконичные программыЗадача для турфирмы:
Написать программу, считающую общий вес багажа.
Мы запрограммировали:
Запрограммировал более опытный
разработчик:
mass1 = input('Вес чемодана')
mass1 = int(input('Вес чемодана'))
mass1 = int(mass1)
mass2 = int(input('Вес ручной клади'))
mass2 = input('Вес ручной клади')
mass3 = int(input('Вес доп. предметов'))
mass2 = int(mass2)
total = mass1 + mass2 + mass3
mass3 = input('Вес доп. предметов')
print('Общий вес багажа:', total)
mass3 = int(mass23)
total = mass1 + mass2 + mass3
print('Общий вес багажа:', total)
Почему программа стала короче?
5.
Рассмотрим ещё одну задачуЗадача для «Подсолнухов»:
Вырезать и напечатать из отзыва часть «заботливый персонал».
Мы запрограммировали:
feedback = 'В Подсолнухах мне больше всего понравился заботливый персонал'
end = len(feedback)
start = end - len('заботливый персонал')
service = feedback[start:end]
print(service)
6.
Лаконичные программыЗадача для «Подсолнухов»:
Вырезать и напечатать из отзыва часть «заботливый персонал».
Мы запрограммировали:
feedback = 'В Подсолнухах мне больше всего понравился заботливый персонал'
end = len(feedback)
start = end - len('заботливый персонал')
service = feedback[start:end]
print(service)
Запрограммировал другой разработчик:
feedback = 'В Подсолнухах мне больше всего понравился заботливый персонал'
print(feedback[(len(feedback)-len('заботливый персонал')):len(feedback)])
Что тут происходит? Код другого
разработчика прочитать очень трудно...
7.
Лаконичные программыРассмотрим более понятную конструкцию подробнее:
mass = int(input('Вес чемодана'))
Число
Сделать
числом
Получены данные - строка
Для того чтобы сделать код лаконичным,
в программе использовалась одна конструкция
внутри другой.
8.
Лаконичные программыС помощью такого приёма можно сделать код
более коротким и простым для чтения.
При этом хороший программист чувствует
разницу между лаконичной и нечитаемой
программами.
Также умение писать лаконичный и понятный другим
код имеет большое значение при работе в команде
программистов.
9.
Сегодня вы:➔ узнаете способы создания
лаконичного и понятного кода
и научитесь его писать;
➔ систематизируете все знания,
полученные на последних занятиях.
10.
Повторение11.
Какие типы данных вы знаете?12.
Какие типы данных вы знаете?Мы знаем три:
1. Целые числа.
2. Десятичные дроби.
3. Строки.
Численный тип
Строковый тип
144
Целое число (int)
'Ivan' (str)
48.3
Десятичная дробь (float)
'256'(str)
(2 * 11)
Целое число (int)
'15.05.2007' (str)
(4 * 8.2)
Десятичная дробь (float)
'Данные получены' (str)
13.
Какие действия вы умеетевыполнять со строками?
14.
Какие команды соответствуютэтим действиям?
Определять длину строки
?
Делать срез
?
Искать упоминание слова или
фразы в строке
?
Делать все буквы строки
строчными (маленькими)
?
15.
Какие команды соответствуютэтим действиям?
Определять длину строки
Делать срез
length = len(string)
symbol = feedback[5]
word = feedback[0:14]
Искать упоминание слова или
фразы в строке
pos = feedback.find(‘слово’)
Делать все буквы строки
строчными (маленькими)
string = string.lower()
16.
Какие функции для переходаот одного типа данных
к другому вы знаете?
17.
int() и str()— это функции для перехода от одного
типа данных к другому.
Интерпретатору можно явно указать, с каким типом данных
он имеет дело.
18.
Новая тема:Вложенные конструкции
19.
Вложенные конструкцииЧтобы создавать лаконичный и легко читаемый код,
нужно владеть вложенными конструкциями.
За одно занятие изучить вложенность целиком не
получится: конструкций в Python очень много,
а мы знаем только малую часть.
Тем не менее, оптимизировать некоторые программы
получится уже сегодня.
20.
Что нужно знать, чтобы создатьвложенную конструкцию?
Нам необходимо:
1) понять, какие конструкции можно вкладывать
друг в друга;
2) понять, как корректно оформить вложенную
конструкцию.
mass = int(input('Вес чемодана'))
21.
Нам известно два типа команд:Команды для работы с
числами и строками
После работы
НЕ возвращают
значение
После работы
возвращают значение
print('15.05.2007')
date = input('Дата:')
sum = price1 + price2
length = len(feedback)
Какой тип подходит для программирования вложенных конструкций?
22.
Нам известно два типа команд:Команды для работы с
числами и строками
✅
После работы
НЕ возвращают
значение
После работы
возвращают значение
print('15.05.2007')
date = input('Дата:')
sum = price1 + price2
length = len(feedback)
Использовать внутри другой конструкции стоит
команду, возвращающую значение.
23.
Оформление вложенныхконструкций
Сравним код без вложенной конструкции, и с ней:
1.
mass = input('Вес чемодана')
2.
mass = int(mass)
1. Результат работы — строка.
2. Результат — целое число.
24.
Оформление вложенныхконструкций
Сравним код без вложенной конструкции, и с ней:
1.
mass = input('Вес чемодана')
1. Результат работы — строка.
2. Результат — целое число.
2.
mass = int(mass)
2.
1.
Те же действия, но код стал
лаконичнее.
mass = int(input('Вес чемодана'))
25.
Использование вложенныхконструкций
Задача.
Написать программу, рассчитывающую стоимость обедов в отеле
за время отдыха. Цена одного обеда и длительность отдыха
вводится пользователем.
Как решить эту задачу?
26.
Использование вложенныхконструкций
Задача.
Написать программу, рассчитывающую стоимость обедов в отеле
за время отдыха. Цена одного обеда и длительность отдыха
вводится пользователем.
price = input('Цена:')
price = int(price)
days = input('Количество дней:')
days = int(days)
total_price = price * days
print(total_price)
Как сделать решение лаконичным
с помощью вложенных конструкций?
27.
Использование вложенныхконструкций
Задача.
Написать программу, рассчитывающую стоимость обедов в отеле
за время отдыха. Цена одного обеда и длительность отдыха
вводится пользователем.
price = input('Цена:')
price = int(input('Цена:'))
price = int(price)
days = int(input('Количество дней:'))
days = input('Количество дней:')
total_price = price * days
days = int(days)
print(total_price)
total_price = price * days
print(total_price)
Код понятный и более короткий
28.
Использование вложенныхконструкций
Задача.
Написать программу, находящую сумму длин ответов пользователя
на вопросы:
«Что понравилось?», «Что не понравилось?», «Что улучшить?»
Как решить эту задачу?
29.
Использование вложенныхконструкций
Задача.
Написать программу, находящую сумму длин ответов пользователя
на вопросы опроса:
«Что понравилось?», «Что не понравилось?», «Что улучшить?»
fb1 = input('Что вам понравилось?')
fb2 = input('Что вам НЕ понравилось?')
fb3 = input('Что улучшить?')
l1 = len(fb1)
l2 = len(fb2)
l3 = len(fb3)
total_lenght = l1 + l2 + l3
print('Всего символов:', total_lenght)
Как сделать решение лаконичным
с помощью вложенных конструкций?
30.
Использование вложенныхконструкций
Задача.
Написать программу, находящую сумму длин ответов пользователя
на вопросы опроса:
«Что понравилось?», «Что не понравилось?», «Что улучшить?»
fb1 = input('Что вам понравилось?')
l1 = len(input('Что вам понравилось?'))
fb2 = input('Что вам НЕ понравилось?')
l2 = len(input('Что вам НЕ понравилось?'))
fb3 = input('Что улучшить?')
l3 = len(input('Что улучшить?'))
l1 = len(fb1)
total_lenght = l1 + l2 + l3
l2 = len(fb2)
print('Всего символов:', total_lenght)
l3 = len(fb3)
total_lenght = l1 + l2 + l3
print('Всего символов:', total_lenght)
Можно оптимизировать не только переход
к новому типу, но и работу со строками.
31.
Использование вложенныхконструкций
Задача.
Написать программу, находящую сумму длин ответов пользователя
на вопросы опроса:
«Что понравилось?», «Что не понравилось?», «Что улучшить?»
l1 = len(input('Что вам понравилось?'))
l2 = len(input('Что вам НЕ понравилось?'))
l3 = len(input('Что улучшить?'))
total_lenght = l1 + l2 + l3
print('Всего символов:', total_lenght)
Можно ли сделать код программы
ещё короче?
32.
Использование вложенныхконструкций
Задача.
Написать программу, находящую сумму длин ответов пользователя
на вопросы опроса:
«Что понравилось?», «Что не понравилось?», «Что улучшить?»
l1 = len(input('Что вам понравилось?'))
l2 = len(input('Что вам НЕ понравилось?'))
l3 = len(input('Что улучшить?'))
total_lenght = l1 + l2 + l3
print('Всего символов:', total_lenght)
print('Всего символов:', len(input('Что вам понравилось?')) +
len(input('Что вам НЕ понравилось?')) + len(input('Что улучшить?')))
33.
Использование вложенныхконструкций
Задача.
Написать программу, находящую сумму длин ответов пользователя
на вопросы опроса:
«Что понравилось?», «Что не понравилось?», «Что улучшить?»
l1 = len(input('Что вам понравилось?'))
l2 = len(input('Что вам НЕ понравилось?'))
l3 = len(input('Что улучшить?'))
total_lenght = l1 + l2 + l3
print('Всего символов:', total_lenght)
Сократить можно,
но программа стала
почти нечитаемой!
print('Всего символов:', len(input('Что вам понравилось?')) +
len(input('Что вам НЕ понравилось?')) + len(input('Что улучшить?')))
34.
Выводы:1. С помощью вложенных конструкций можно
сделать код программы лаконичнее
и проще.
2. Вкладывать друг в друга можно команды,
возвращающие значения.
3. Важно соблюдать баланс между
сокращением кода и его читаемостью.
35.
Новая тема:Оформление кода
36.
Как ещё можно сделатьпрограммный код легко
читаемым?
37.
Как сделать код легкочитаемым?
Есть несколько простых способов:
➔ понятные и ёмкие имена переменных;
➔ умеренное использование вложенных конструкций;
➔ комментирование кода.
38.
Как сделать код легкочитаемым?
Есть несколько простых способов:
➔ понятные и ёмкие имена переменных;
➔ умеренное использование вложенных конструкций;
➔ комментирование кода.
Понятных названий и аккуратности
иногда бывает недостаточно.
В таких случаях программисты
оставляют в коде поясняющие
#комментарии.
39.
Комментарий— это строка в программе, которая
не просматривается интерпретатором.
Видя специально оформленную строку,
интерпретатор не пытается распознать в ней
команду.
40.
Комментирование кода#краткий поясняющий комментарий
Короткий комментарий на
одну строку.
'''Строка документации,
Длинный поясняющий
текст, объясняющий
назначение блока кода.
поясняющая устройство
программы'''
41.
Комментирование кодаПример:
price = int(input('Введите стоимость путевки:'))
#скидка - 5% от стоимости путёвки
print('Вам начислен кэшбек в размере', price * 0.05)
Интерпретатор
видит # и понимает,
что в этой строке
команды нет.
42.
Комментирование кодаПример:
'''Программа, печатающая количество монет
по 1 руб и 10 руб для выдачи введённой суммы'''
change = int(input('Введите сумму:'))
rub1 = change % 10
rub10 = change // 10
print(rub1, '- по 1р')
print(rub10, '- по 10р')
Интерпретатор
также видит начало
и конец
комментария,
отмеченные '''
43.
Код любой программы должен бытьлаконичным и понятным другим
программистам.
Поэтому важно знать правила языка
Python и уметь писать легко читаемый
код.
44.
Решение задачfeedback = input('Оставьте отзыв о путешествии:')
feedback = feedback.lower()
print('Длина отзыва:', len())
print('Поиск негатива:', find('ужасно'))
В программе допущены ошибки в использовании вложенных
конструкций. Исправь программу, она должна работать как на картинке.
45.
Решение задачprice_human = input('Цена билета на самолёт:')
price_luggage = input('Цена провоза багажа:')
price_meal = input('Цена питания на борту:')
price_human = int(price_human)
price_luggage = int(price_luggage)
price_meal = int(price_meal)
total = price_human + price_luggage + price_meal
print('К оплате:', total)
Программа вычисляет сумму оплаты за полёт на самолёте. Она
работает верно, но её можно сделать ещё лаконичнее. Помоги
сделать код короче. При этом программа должна работать как
на картинке.
46.
Напиши программу!В компании проводится анализ эффективности работы программистов-стажёров. Эффективность
оценивается по количеству выполненных рабочих задач и дополнительных заданий.
1 обязательная рабочая задача — 15 баллов; 1 дополнительная задача — 20 баллов.
Пользователь вводит количество решённых обязательных задач и количество дополнительных
задач. Программа должна вычислять и выводить эффективность как на картинке.
47.
Напиши программу!Напиши программу, анализирующую отзыв о стажировке в компании. Программа запрашивает
отзыв и анализирует его. В результате выводится:
1. Длина отзыва.
2. 2. Результат поиска недостаков (по слову «скучно»).
3. 3. Результат поиска достоинств (по слову «круто»).
4. Программа должна работать как на картинке. Код программы должен быть в меру кратким.
48.
Ответьте на вопросы1. Что такое вложенные конструкции? Зачем
они нужны?
2. Что такое комментарий? Какие виды
комментариев вы знаете?
3. Зачем писать легко читаемый код?
49.
Сегодня вы:1. Узнали способы создания
лаконичного и понятного кода
и научились его писать;
2. Узнали, что такое вложенные
конструкции и как их использовать;
3. Узнали, что такое комментарий.
programming