logo
0
подписчиков
Шаг в будущее  Шаг в будущее - это подкаст о молодежи от молодежи для молодежи
Публикации Уровни подписки Контакты О проекте Фильтры Метки Статистика Контакты Поделиться
О проекте
Рассказать о профессиях максимально доступно от лица молодежи.
Шаг в будущее - это подкаст о молодежи от молодежи для молодежи
Публикации, доступные бесплатно
Уровни подписки
Единоразовый платёж

Можно поддержать наш проект и таким способом;) На эти средства мы развиваемся и становимся лучше для вас!

Помочь проекту
Промо уровень 150 ₽ месяц 1 440 ₽ год
(-20%)
При подписке на год для вас действует 20% скидка. 20% основная скидка и 0% доп. скидка за ваш уровень на проекте Шаг в будущее
Осталось 100 мест
Доступны сообщения

Подписка по специальным условиям для ограниченного количества подписчиков.

Оформить подписку
Базовый 250 ₽ месяц 2 550 ₽ год
(-15%)
При подписке на год для вас действует 15% скидка. 15% основная скидка и 0% доп. скидка за ваш уровень на проекте Шаг в будущее
Доступны сообщения

Спасибо за поддержку. Еженедельно каждую субботу радуем вас свежим выпуском подкаста

Оформить подписку
Фильтры
Статистика
Обновления проекта
Метки
step1cast 66 видеоподкаст 66 интервью 66 люди 66 молодежь 66 Подкаст 66 шагвбудущее 66 шоу 66 творчество 64 steppodcast 51 Белгородская_область 46 СПО31 27 профессионалы 19 ГодПедагогаНаставника 16 ГПН_2023 16 педагогиинаставники 16 УчитьВдохновлятьРазвивать2023 16 образование 12 Студенты 11 юмор 11 преподаватель 10 наставники 7 ПЕДАГОГИ 7 VK 6 Telegram 4 квн 4 Музыка 4 StandUP 3 предприниматель 3 программист 3 ozon 2 WILDBERRIES 2 блогер 2 врач 2 МАРКЕТПЛЕЙС 2 медицина 2 мчс 2 Писатель 2 Психология 2 смартфоны 2 социальные сети 2 спасатель 2 спорт 2 физическая культура 2 физкультура 2 экономика 2 8марта 1 9 мая 1 charonbabymusic 1 IT 1 messenger 1 music 1 абонентская служба 1 Английский 1 Аниме 1 анимемагазин 1 баскетбол 1 Безопасность жизнедеятельности 1 биология 1 БольшаяПеремена 1 БРОО 1 видеограф 1 вирусы 1 волейбол 1 воркаут 1 ВСКС 1 газпром 1 голосразума 1 госслужба 1 День Победы 1 деньматери 1 деньучителя 1 депутат 1 дискотека 1 женщины 1 здоровье 1 иностранныйязык 1 информатика 1 история 1 кондитер 1 контентмейкер 1 косплей 1 красота 1 Куда 1 лидермнений 1 литература 1 математика 1 межрегионгаз 1 МистерИМиссСтуденчество2023 1 молодежная политика 1 монтаж 1 настольная игра 1 настольные игры 1 НашУрал 1 нейросеть 1 Новое поколение 1 Нр 1 ОБЖ 1 обществознание 1 оператор 1 отношения 1 паркур 1 ПВЗ 1 пекарь 1 повар 1 политология 1 поэзия 1 поэт 1 православие 1 приложения 1 продакшн 1 психиатрия 1 пункт выдачи заказов 1 путешествия 1 РДДМ 1 ремонт 1 семейные традиции 1 Семья 1 Социология 1 танцы 1 техника 1 торговля 1 УДМ 1 узи 1 ультразвук 1 ФКР 1 фото 1 фотограф 1 футбол 1 хлеб 1 ЦМИ 1 экология 1 эмоции 1 юрист 1 Языки 1 Больше тегов
Слушать: 31+ мин
logo Шаг в будущее

Педагоги и наставники. Гамова (Step1Cast 29)

В ‎этом‏ ‎выпуске ‎мы ‎поговорим ‎с ‎преподавателем‏ ‎информатики ‎Оксаной‏ ‎Владимировной‏ ‎Гамовой ‎о ‎пути‏ ‎в ‎преподавательскую‏ ‎деятельность ‎и ‎модернизации ‎образовательных‏ ‎методик.


Желаем‏ ‎приятного ‎просмотра!


Наш‏ ‎телеграм-канал: ‎

https://t.me/StepPodcast 


Сообщество‏ ‎в ‎ВК: ‎

https://vk.com/steppodcast 


По ‎сотрудничеству ‎ответим‏ ‎тут:‏ ‎

step1cast@gmail.com 


#step1cast ‎#подкаст‏ ‎#интервью ‎#информатика‏ ‎#СТАКС ‎#СПО31 ‎#педагогиинаставники ‎#УчитьВдохновлятьРазвивать2023 ‎#ГодПедагогаНаставника‏ ‎#ГПН_2023‏ ‎#Белгородская_область

Читать: 3+ мин
logo Информатика с Натальей Массальской

Детективная история про исчезающие оценки и транзакции

Одна ‎из‏ ‎самых ‎бесячих ‎особенностей ‎нынешнего ‎электронного‏ ‎журнала ‎—‏ ‎это‏ ‎исчезающие ‎оценки. ‎Ставишь‏ ‎оценки ‎за‏ ‎карусель ‎или ‎практикум ‎«в‏ ‎столбик»,‏ ‎штук ‎семь‏ ‎поставил, ‎вдруг‏ ‎бац ‎— ‎три ‎первые ‎пропали.‏ ‎Начинаешь‏ ‎ставить ‎медленно‏ ‎и ‎осмысленно:‏ ‎воткнул ‎→ ‎20 ‎секунд ‎→‏ ‎исчезло.‏ ‎Воткнул‏ ‎→ ‎15‏ ‎секунд ‎→‏ ‎опять ‎пропало.‏ ‎Тык-тык-тык‏ ‎штук ‎10‏ ‎в ‎быстром ‎темпе ‎→ ‎через‏ ‎полминуты ‎половины‏ ‎из‏ ‎них ‎нет.

🤪 Полный ‎отвал‏ ‎башки ‎—‏ ‎это ‎когда ‎часа ‎через‏ ‎два‏ ‎некоторые ‎из‏ ‎них ‎возвращаются.‏ ‎Иногда ‎в ‎двойном ‎количестве.

Бывает, ‎при‏ ‎этом‏ ‎выскакивает ‎замысловатое‏ ‎сообщение ‎об‏ ‎ошибке ‎— ‎вроде ‎того, ‎что‏ ‎на‏ ‎скриншоте,‏ ‎хотя ‎и‏ ‎не ‎конкретно‏ ‎оно. ‎Но‏ ‎чаще‏ ‎оценки ‎исчезают‏ ‎молча.

Что ‎за ‎чертовщина? ‎Мне ‎кажется,‏ ‎я ‎знаю.

Чтобы‏ ‎разобраться‏ ‎в ‎проблеме, ‎надо‏ ‎понять, ‎как‏ ‎работают ‎транзакции.

🎯 Транзакция ‎— это ‎цельный‏ ‎набор‏ ‎операций ‎работы‏ ‎с ‎данными.

Транзакция‏ ‎либо ‎обязана ‎выполниться ‎целиком ‎и‏ ‎успешно‏ ‎(при ‎этом‏ ‎целостность ‎данных‏ ‎не ‎нарушается, ‎и ‎наша ‎транзакция‏ ‎не‏ ‎зависит‏ ‎от ‎других),‏ ‎либо ‎не‏ ‎выполниться ‎вообще‏ ‎—‏ ‎и ‎данные‏ ‎никак ‎не ‎изменятся.

Транзакции ‎возникают, ‎например,‏ ‎при ‎совместной‏ ‎работе‏ ‎над ‎документами. ‎Если‏ ‎два ‎пользователя‏ ‎по ‎сети ‎пытаются ‎сохранить‏ ‎изменения‏ ‎одной ‎и‏ ‎той ‎же‏ ‎фразы, ‎транзакция ‎либо ‎совместит ‎эти‏ ‎изменения,‏ ‎либо ‎откатит‏ ‎изменения ‎с‏ ‎обеих ‎сторон, ‎либо ‎примет ‎более‏ ‎ранние‏ ‎или‏ ‎более ‎поздние‏ ‎изменения. ‎Что‏ ‎именно ‎произойдёт‏ ‎и‏ ‎как ‎—‏ ‎зависит ‎от ‎реализации ‎программы.

Ещё ‎чаще‏ ‎понятие ‎транзакции‏ ‎возникает‏ ‎в ‎финансовой ‎области.

НАПРИМЕР,

Вася‏ ‎перечисляет ‎Пете‏ ‎100 ‎р. ‎с ‎карты‏ ‎на‏ ‎карту. ‎Возможно,‏ ‎это ‎осуществляется‏ ‎такой ‎последовательностью ‎операций:

  1. баланс ‎Васи ‎уменьшается‏ ‎на‏ ‎100 ‎р.
  2. баланс‏ ‎Васи ‎сохраняется
  3. баланс‏ ‎Пети ‎увеличивается ‎на ‎100 ‎р.
  4. баланс‏ ‎Пети‏ ‎сохраняется

Если‏ ‎между ‎пунктами‏ ‎2 ‎и‏ ‎3 ‎произойдёт‏ ‎сбой,‏ ‎может ‎оказаться,‏ ‎что ‎Вася ‎100 ‎р. ‎потерял,‏ ‎а ‎Петя‏ ‎не‏ ‎получил. ‎Чтобы ‎этого‏ ‎не ‎произошло,‏ ‎вся ‎последовательность ‎операций ‎представляет‏ ‎собой‏ ‎транзакцию, ‎и‏ ‎если ‎что-то‏ ‎пошло ‎не ‎так, ‎откатывается ‎целиком.

Как‏ ‎мы‏ ‎переносим ‎файл‏ ‎из ‎одной‏ ‎папки ‎в ‎другую? ‎Точно ‎так‏ ‎же:‏ ‎сначала‏ ‎файл ‎копируется‏ ‎по ‎новому‏ ‎адресу ‎и‏ ‎только‏ ‎потом ‎стирается‏ ‎на ‎старом. ‎Если ‎скопироваться ‎он‏ ‎не ‎смог‏ ‎или‏ ‎мы ‎прервали ‎операцию‏ ‎— ‎файл‏ ‎остаётся ‎по ‎старому ‎адресу.

Получается,‏ ‎это‏ ‎тоже ‎транзакция.

Что‏ ‎же ‎происходит‏ ‎с ‎оценками ‎в ‎электронном ‎журнале?

У‏ ‎меня,‏ ‎ясное ‎дело,‏ ‎нет ‎доступа‏ ‎к ‎начинке ‎журнала, ‎но, ‎судя‏ ‎по‏ ‎симптомам,‏ ‎проблема ‎в‏ ‎том, ‎что‏ ‎транзакции ‎не‏ ‎работают.

Порядок‏ ‎операций:

  1. Я ‎ставлю‏ ‎оценку ‎и ‎сохраняю ‎её ‎на‏ ‎своём ‎рабочем‏ ‎компьютере‏ ‎(на ‎стороне ‎«клиента»).
  2. Оценка‏ ‎отправляется ‎на‏ ‎сервер ‎— ‎у ‎нас‏ ‎же‏ ‎централизованная ‎система,‏ ‎все ‎данные‏ ‎всех ‎журналов ‎хранятся ‎в ‎базе‏ ‎на‏ ‎сервере.
  3. При ‎отправке‏ ‎моя ‎оценка‏ ‎стирается: ‎примерно ‎как ‎если ‎бы‏ ‎перенос‏ ‎файла‏ ‎происходил ‎наоборот:‏ ‎сначала ‎удалили‏ ‎на ‎старом‏ ‎месте,‏ ‎потом ‎записали‏ ‎на ‎новое.
  4. На ‎сервере ‎оценка ‎почему-то‏ ‎«не ‎приживается».‏ ‎Например,‏ ‎слишком ‎много ‎одновременных‏ ‎запросов. ‎Все‏ ‎хотят ‎ставить ‎оценки ‎в‏ ‎учебное‏ ‎время, ‎странно,‏ ‎правда? ‎Особенно‏ ‎если ‎учесть, ‎что ‎строго ‎запрещено‏ ‎опаздывать‏ ‎с ‎выставлением‏ ‎😉
  5. Сервер ‎действует‏ ‎по ‎принципу: ‎я ‎не ‎принял,‏ ‎ну‏ ‎и‏ ‎ладно. ‎Это‏ ‎не ‎мои‏ ‎проблемы.

В ‎результате‏ ‎наши‏ ‎100 ‎рублей,‏ ‎верней, ‎наша ‎пятёрка ‎и ‎в‏ ‎локальном ‎журнале‏ ‎исчезла,‏ ‎и ‎до ‎базы‏ ‎данных ‎на‏ ‎сервере ‎не ‎добралась.

Что ‎с‏ ‎этим‏ ‎делать ‎бедному‏ ‎преподу?

В ‎очередной‏ ‎раз ‎писать ‎в ‎техподдержку ‎и‏ ‎через‏ ‎две ‎недели‏ ‎получать ‎очередную‏ ‎отписку, ‎увы. ‎И ‎снова ‎мучительно‏ ‎«протыкивать»‏ ‎колонку‏ ‎оценок, ‎внимательно‏ ‎следя, ‎все‏ ‎ли ‎они‏ ‎«укоренились».

А‏ ‎вы ‎—‏ ‎не ‎будьте ‎такими ‎разрабами, ‎как‏ ‎разрабы ‎электронного‏ ‎журнала.‏ ‎Используйте ‎транзакции ‎и‏ ‎не ‎теряйте‏ ‎данные! ‎🤝


Читать: 1+ мин
logo Информатика с Натальей Массальской

ЕГЭ по информатике. № 8. Комбинаторика: типы и алгоритмы решения

1. Решаем ‎задачу‏ ‎на ‎количество ‎чисел ‎по ‎условиям‏ ‎тремя ‎способами:‏ ‎аналитически,‏ ‎простым ‎перебором ‎на‏ ‎Python ‎и‏ ‎при ‎помощи ‎библиотеки ‎Python‏ ‎itertools.

2. Решаем‏ ‎задачу ‎на‏ ‎алфавитные ‎последовательности‏ ‎двумя ‎способами: ‎при ‎помощи ‎аналитического‏ ‎трюка‏ ‎и ‎при‏ ‎помощи ‎Python:‏ ‎библиотеки ‎itertools ‎и ‎функции ‎enumerate

3. Ещё‏ ‎один‏ ‎вид‏ ‎задач ‎№‏ ‎8 ‎ЕГЭ‏ ‎по ‎информатике‏ ‎(комбинаторика):‏ ‎составление ‎слов‏ ‎перестановками ‎букв. ‎Рассмотрим ‎простой ‎аналитический‏ ‎подход ‎и‏ ‎разберёмся,‏ ‎как ‎решать ‎задачу‏ ‎с ‎подковырками‏ ‎при ‎помощи ‎библиотеки ‎Python‏ ‎itertools‏ ‎и ‎функции‏ ‎enumerate

Итак, ‎в‏ ‎задаче ‎на ‎комбинаторику ‎два ‎основных‏ ‎типа:

  • подсчёт‏ ‎всех ‎возможных‏ ‎слов ‎/‏ ‎числе ‎на ‎базе ‎заданного ‎алфавита‏ ‎и‏ ‎с‏ ‎дополнительными ‎условиями‏ ‎составления
  • решение ‎задач‏ ‎на ‎алфавитные‏ ‎последовательности

При‏ ‎этом ‎у‏ ‎нас ‎три ‎основных ‎типа ‎решения:

  • аналитический‏ ‎(основная ‎формула‏ ‎комбинаторики)
  • программой‏ ‎с ‎простым ‎переборным‏ ‎алгоритмом
  • в ‎Python‏ ‎— ‎использование ‎модуля ‎itertools

А‏ ‎теперь‏ ‎— ‎за‏ ‎тренировку!



Читать: 1+ мин
logo Информатика с Натальей Массальской

Python: .index() и .find() для поиска в коллекции

💾 Методы ‎.index() и‏ ‎.find() делают ‎одно ‎и ‎то ‎же‏ ‎— ‎ищут‏ ‎первое‏ ‎вхождение ‎чего-либо ‎в‏ ‎свою ‎коллекцию.‏ ‎Только ‎.index() ‎применяется ‎к‏ ‎списку‏ ‎и ‎ищет‏ ‎элемент, ‎а‏ ‎.find() ‎работает ‎со ‎строкой ‎и‏ ‎ищет‏ ‎в ‎ней‏ ‎подстроку.

список.index(элемент)
‎строка.find(подстрока)‏

‎

Вот ‎пример:

s ‎= ‎'12345'
‎x‏ ‎=‏ ‎[1,‏ ‎2, ‎3,‏ ‎4, ‎5]‏
‎print(s.find('3'), ‎x.index(3))‏

‎

Получим‏ ‎2 ‎и‏ ‎2, ‎потому ‎что ‎нумерация ‎элементов‏ ‎и ‎в‏ ‎строках,‏ ‎и ‎в ‎списках‏ ‎идёт ‎с‏ ‎нуля.

Но ‎что ‎будет ‎при‏ ‎использовании‏ ‎методов ‎.index()‏ ‎и ‎.find(),‏ ‎если ‎такого ‎элемента ‎или ‎такой‏ ‎подстроки‏ ‎нет?

Например, ‎для‏ ‎строки ‎и‏ ‎списка ‎из ‎примера ‎выше:

s ‎=‏ ‎'12345'‏
‎x‏ ‎= ‎[1,‏ ‎2, ‎3,‏ ‎4, ‎5]‏

‎print(s.find('7'))‏
‎print(x.index(7))

‎

Метод‏ ‎.find() для ‎отсутствующей ‎строки ‎вернёт ‎-1.‏ ‎Почему ‎не‏ ‎ноль?‏ ‎Потому ‎что ‎нулевая‏ ‎позиция ‎существует.

А‏ ‎вот ‎.index() для ‎отсутствующего ‎элемента‏ ‎сгенерирует‏ ‎ошибку. ‎Проще‏ ‎говоря, ‎программа‏ ‎обругает ‎вас ‎и ‎упадёт, ‎вот‏ ‎так:

ValueError:‏ ‎7 ‎is‏ ‎not ‎in‏ ‎list

Как ‎же ‎бороться ‎с ‎падением‏ ‎программы‏ ‎при‏ ‎использовании ‎.index()?‏ ‎Запросто! ‎Мы‏ ‎должны ‎сначала‏ ‎проверить,‏ ‎есть ‎ли‏ ‎вообще ‎такое ‎значение ‎в ‎списке.‏ ‎И ‎только‏ ‎убедившись,‏ ‎что ‎есть ‎—‏ ‎определяем ‎его‏ ‎позицию:

x ‎= ‎[1, ‎2,‏ ‎3,‏ ‎4, ‎5]‏
‎if ‎7‏ ‎in ‎x:
    ‎print(x.index(7))

‎

Теперь ‎вы‏ ‎точно‏ ‎знаете, ‎как‏ ‎искать ‎элемент‏ ‎в ‎коллекции ‎👍

Читать: 3+ мин
logo Информатика с Натальей Массальской

Python: выводим слова введённой строки, отсортированные по длине

Словами ‎будем‏ ‎считать ‎последовательности ‎букв, ‎разделённых ‎пробелами.‏ ‎Знаки ‎препинания‏ ‎не‏ ‎являются ‎частью ‎слова.

ПРИМЕР:‏ ‎если ‎мы‏ ‎ввели ‎строку

Моя ‎головная ‎боль:‏ ‎математика,‏ ‎физика, ‎информатика.‏

‎

программа ‎должна‏ ‎вывести:

Моя
‎боль
‎физика
‎головная
‎математика‏
‎информатика‏

‎

1. Вводим ‎строку:

s‏ ‎= ‎input()‏

‎

2. Чтобы ‎разбить ‎строку ‎на ‎элементы,‏ ‎используем‏ ‎метод‏ ‎.split(), причём ‎без‏ ‎аргумента, ‎потому‏ ‎что ‎разбивать‏ ‎будем‏ ‎по ‎пробелу.

wrds‏ ‎= ‎s.split()

‎

Переменная ‎wrds ‎теперь‏ ‎— ‎это‏ ‎список‏ ‎строк. ‎Каждая ‎строка‏ ‎— ‎слово,‏ ‎причём ‎со ‎знаком ‎препинания‏ ‎в‏ ‎конце, ‎если‏ ‎он ‎там‏ ‎был. ‎Например, ‎«физика, ‎„.

3. Давайте ‎удалим‏ ‎последний‏ ‎символ ‎каждой‏ ‎подстроки, ‎если‏ ‎это ‎знак ‎препинания. ‎Конечно, ‎мы‏ ‎могли‏ ‎бы‏ ‎сделать ‎это‏ ‎«в ‎лоб»:

# для‏ ‎всех ‎подстрок‏ ‎списка‏
‎for ‎i‏ ‎in ‎range(len(wrds)):
    ‎# ‎если ‎последний‏ ‎символ ‎—‏ ‎знак‏ ‎препинания
    ‎if ‎wrds[i][-1]‏ ‎in ‎'.,:‏ ‎; ‎-?! ‎':
        ‎#‏ ‎заменяем‏ ‎строку ‎на‏ ‎неё ‎без‏ ‎последнего ‎символа
        ‎# ‎(фактически ‎ДО‏ ‎последнего‏ ‎символа)
        ‎wrds[i]‏ ‎= ‎wrds[i][:‏ ‎-1]

‎

Но ‎во-первых, ‎а ‎вдруг‏ ‎там‏ ‎будет‏ ‎случайно ‎затесавшаяся‏ ‎цифра ‎или‏ ‎мы ‎не‏ ‎все‏ ‎знаки ‎препинания‏ ‎вспомнили ‎(вот ‎скобки, ‎например, ‎ещё‏ ‎могут ‎быть).

А‏ ‎во-вторых,‏ ‎знак ‎может ‎быть‏ ‎и ‎в‏ ‎начале ‎слова ‎— ‎та‏ ‎же‏ ‎скобка.

Используем ‎метод‏ ‎.isalpha(), который ‎возвращает‏ ‎True, ‎если ‎аргумент ‎состоит ‎только‏ ‎из‏ ‎букв. ‎И‏ ‎будем ‎проверять‏ ‎с ‎обоих ‎концов ‎слова:

for ‎i‏ ‎in‏ ‎range(len(wrds)):‏
    ‎if ‎not(wrds[i][0].isalpha()):‏ ‎wrds[i] ‎=‏ ‎wrds[i][1:]
    ‎if‏ ‎not(wrds[i][-1].isalpha()):‏ ‎wrds[i] ‎=‏ ‎wrds[i][: ‎-1]

‎

4. Теперь ‎бы ‎надо‏ ‎отсортировать ‎список‏ ‎строк.‏ ‎Но ‎если ‎мы‏ ‎будем ‎делать‏ ‎это ‎запросто:

wrds.sort()

‎

получим ‎(естественно!)‏ ‎сортировку‏ ‎по ‎алфавиту,‏ ‎а ‎это‏ ‎не ‎то, ‎что ‎нам ‎нужно.

Вспомним,‏ ‎что‏ ‎у ‎метода‏ ‎.sort() есть ‎параметр‏ ‎key, позволяющий ‎сортировать ‎элементы ‎списка ‎как‏ ‎угодно:‏ ‎хоть‏ ‎по ‎второму‏ ‎символу ‎строк,‏ ‎хоть ‎по‏ ‎остатку‏ ‎от ‎деления‏ ‎чисел ‎на ‎11.

Причём ‎мы ‎можем‏ ‎функцию-ключ ‎сортировки‏ ‎сделать‏ ‎отдельной ‎функцией, ‎вот‏ ‎так:

def ‎key_func(x):‏
    ‎return ‎len(x)

‎

А ‎можем‏ ‎использовать‏ ‎лямбда-функцию ‎прямо‏ ‎в ‎вызове‏ ‎метода.

Лямбда-функции (напомню) ‎— ‎это ‎крохотные ‎функции‏ ‎без‏ ‎имени, ‎которые‏ ‎реализуются ‎прямо‏ ‎там, ‎где ‎используются.

Наша ‎сортировка ‎по‏ ‎длинам‏ ‎строк‏ ‎будет ‎выглядеть‏ ‎так:

wrds.sort(key=lambda ‎x:‏ ‎len(x))

‎

Параметр‏ ‎лямбда-функции‏ ‎х ‎—‏ ‎это ‎элемент ‎списка, ‎для ‎которого‏ ‎вызывается ‎.sort().‏ ‎То‏ ‎есть ‎в ‎нашем‏ ‎случае ‎—‏ ‎строка.

Что ‎возвращает ‎функция-ключ ‎сортировки‏ ‎—‏ ‎по ‎тому‏ ‎и ‎сортируем.‏ ‎Здесь ‎— ‎по ‎длине ‎строк.

5. Осталось‏ ‎вывести‏ ‎наши ‎строки.‏ ‎Можно, ‎конечно,‏ ‎сделать ‎это ‎попросту:

for ‎x ‎in‏ ‎wrds:‏
    ‎print(x)‏

‎

А ‎можно‏ ‎использовать ‎чуть‏ ‎более ‎мудрёный,‏ ‎но‏ ‎краткий ‎функциональный‏ ‎подход ‎и ‎записать ‎так:

[print(x) ‎for‏ ‎x ‎in‏ ‎wrds]‏

‎

Результат ‎получим ‎один‏ ‎и ‎тот‏ ‎же!

Осталось ‎переписать ‎программу ‎полностью‏ ‎и‏ ‎можно ‎💥‏ ‎сдавать ‎лабу‏ ‎😉

Код ‎программы:

s ‎= ‎input()
‎#‏ ‎разбиваем‏ ‎строку ‎на‏ ‎слова
‎wrds‏ ‎= ‎s.split()

‎# ‎для ‎всех‏ ‎подстрок‏ ‎списка‏
‎for ‎i‏ ‎in ‎range(len(wrds)):‏
    ‎# ‎если‏ ‎последний‏ ‎символ ‎-‏ ‎знак ‎препинания
    ‎if ‎wrds[i][-1] ‎in‏ ‎'.,:;-?!':
        ‎#‏ ‎заменяем‏ ‎строку ‎на ‎неё‏ ‎без ‎последнего‏ ‎символа
        ‎# ‎(фактически ‎ДО‏ ‎последнего‏ ‎символа)
        ‎wrds[i]‏ ‎= ‎wrds[i][:-1]‏

‎# ‎удаляем ‎начальные ‎и ‎конечные‏ ‎знаки‏
‎# ‎препинания‏ ‎из ‎каждого‏ ‎слова
‎for ‎i ‎in ‎range(len(wrds)):‏
    ‎if‏ ‎not(wrds[i][0].isalpha()):‏ ‎wrds[i] ‎=‏ ‎wrds[i][1:]
    ‎if‏ ‎not(wrds[i][-1].isalpha()): ‎wrds[i]‏ ‎=‏ ‎wrds[i][:-1]

‎#‏ ‎сортируем ‎список ‎по ‎длинам ‎строк‏
‎wrds.sort(key=lambda ‎x:‏ ‎len(x))‏
‎# ‎выводим ‎по‏ ‎одному ‎слову‏ ‎на ‎строке
‎[print(x) ‎for‏ ‎x‏ ‎in ‎wrds]‏

‎

Или ‎можете‏ ‎скачать ‎готовым ‎файликом ‎🔽🔽🔽

Читать: 2+ мин
logo Информатика с Натальей Массальской

Переводим голоса из процентов в штуки

Telegram ‎даёт‏ ‎результаты ‎голосования ‎в ‎процентах ‎—‏ ‎и ‎только.‏ ‎Но‏ ‎что ‎делать, ‎если‏ ‎вам ‎хочется‏ ‎увидеть ‎реальное ‎количество ‎голосов‏ ‎за‏ ‎тот ‎или‏ ‎иной ‎пункт‏ ‎опроса? ‎Тем ‎более, ‎что ‎вы‏ ‎точно‏ ‎знаете, ‎за‏ ‎что ‎голосовали‏ ‎сами, ‎и ‎хотели ‎бы ‎исключить‏ ‎свой‏ ‎голос.

Давайте‏ ‎разберёмся, ‎как‏ ‎использовать ‎для‏ ‎этого ‎Excel.


Некоторое‏ ‎время‏ ‎я ‎запускала‏ ‎голосовалку ‎«Что ‎вы ‎хотели ‎бы‏ ‎видеть ‎в‏ ‎канале». В‏ ‎силу ‎особенностей ‎ТГ‏ ‎опрос ‎пришлось‏ ‎разбивать ‎на ‎две ‎части,‏ ‎голосующих‏ ‎оба ‎раза‏ ‎было ‎разное‏ ‎количество, ‎а ‎в ‎качестве ‎результата‏ ‎ТГ‏ ‎показывает ‎только‏ ‎проценты. ‎Плюс‏ ‎ещё ‎и ‎мой ‎голос ‎болтался‏ ‎лишним‏ ‎—‏ ‎мне ‎же‏ ‎надо ‎было‏ ‎результаты ‎посмотреть!

В‏ ‎общем,‏ ‎надо ‎пересчитывать,‏ ‎чтоб ‎посмотреть ‎реальный ‎расклад ‎интересов.

Сказано‏ ‎— ‎сделано!

Берём‏ ‎Excel‏ ‎и ‎создаём ‎такую‏ ‎табличку:

Видите: ‎в‏ ‎колонке ‎«Всего» ‎вписано ‎количество‏ ‎голосов‏ ‎для ‎каждой‏ ‎части ‎опроса?‏ ‎14 ‎для ‎первого ‎набора ‎и‏ ‎12‏ ‎для ‎второго.

А‏ ‎как ‎мы‏ ‎подсчитали ‎голоса?

Мы ‎помним, ‎что ‎процент‏ ‎—‏ ‎это‏ ‎сотая ‎часть‏ ‎чего ‎угодно.‏ ‎Значит, ‎наше‏ ‎общее‏ ‎количество ‎голосов‏ ‎надо ‎разделить ‎на ‎100 ‎и‏ ‎умножить ‎на‏ ‎те‏ ‎проценты, ‎которые ‎записаны‏ ‎во ‎втором‏ ‎столбце.

Для ‎начальной ‎строки ‎(с‏ ‎Байками)‏ ‎получим ‎формулу:‏ ‎=C2/100*B2

Всё ‎супер,‏ ‎но ‎число ‎мы ‎получаем ‎корявенькое‏ ‎—‏ ‎с ‎десятичной‏ ‎частью. ‎Тыкаем‏ ‎в ‎кнопку, ‎уменьшающую ‎количество ‎десятичных‏ ‎знаков:‏ ‎на‏ ‎ней ‎нарисовано‏ ‎, 00 →, 0, пока ‎не‏ ‎получим ‎целое‏ ‎число.

Дальше‏ ‎я ‎перенесла‏ ‎первый ‎и ‎последний ‎столбик ‎в‏ ‎отдельную ‎табличку,‏ ‎причём‏ ‎в ‎столбик ‎«Голосов»‏ ‎скопировала ‎не‏ ‎формулы, ‎а ‎значения. ‎Это‏ ‎делается‏ ‎так:

► Копируем ‎нужный‏ ‎диапазон

► ПКМ ‎на‏ ‎первой ‎ячейке ‎диапазона, ‎куда ‎будем‏ ‎вставлять

► Выбираем‏ ‎«Специальная ‎вставка»

► В‏ ‎окошке ‎выбираем‏ ‎«Значения»

Осталось ‎удалить ‎из ‎«Потрындеть» ‎мой‏ ‎голос‏ ‎(мне-то‏ ‎всё ‎интересно,‏ ‎я ‎не‏ ‎показатель). ‎И‏ ‎отсортировать‏ ‎нашу ‎табличку‏ ‎в ‎обратном ‎порядке ‎по ‎голосам.

Результат‏ ‎— ‎вот:

Excel‏ ‎удобно‏ ‎использовать ‎для ‎подобных‏ ‎маленьких ‎бытовых‏ ‎задач. ‎Тем ‎более, ‎что‏ ‎он‏ ‎всегда ‎под‏ ‎рукой, ‎хотя‏ ‎бы ‎в ‎привычных ‎для ‎вас‏ ‎облачных‏ ‎«Документах».


Читать: 6+ мин
logo Информатика с Натальей Массальской

Количество разных путей между вершинами графа

Задача ‎№‏ ‎9 ‎ОГЭ ‎по ‎информатике

В ‎этой‏ ‎задаче ‎нам‏ ‎дан‏ ‎направленный ‎ненагруженный ‎граф.‏ ‎Направленный ‎граф‏ ‎ещё ‎называется ‎ориентированным ‎или‏ ‎орграфом. А‏ ‎ненагруженный ‎или‏ ‎невзвешенный ‎—‏ ‎значит, ‎что ‎его ‎связям ‎не‏ ‎назначены‏ ‎числа ‎—‏ ‎веса.

От ‎нас‏ ‎требуется ‎подсчитать ‎количество ‎всевозможных ‎путей‏ ‎между‏ ‎заданными‏ ‎вершинами ‎этого‏ ‎графа. ‎Иногда‏ ‎дают ‎ещё‏ ‎дополнительные‏ ‎условия: ‎нам‏ ‎либо ‎нельзя ‎проходить ‎по ‎пути‏ ‎через ‎заданную‏ ‎вершину,‏ ‎либо ‎мы ‎обязаны‏ ‎пройти ‎через‏ ‎неё.

Граф ‎может ‎выглядеть, ‎например,‏ ‎так:

Для‏ ‎решения ‎будем‏ ‎использовать ‎приём,‏ ‎который ‎называется ‎динамическим ‎программированием. На ‎самом‏ ‎деле,‏ ‎он ‎не‏ ‎имеет ‎прямого‏ ‎отношения ‎к ‎программированию ‎— ‎это‏ ‎математический‏ ‎метод.

Суть‏ ‎динамического ‎программирования‏ ‎в ‎том,‏ ‎что ‎для‏ ‎вычисления‏ ‎значений ‎на‏ ‎каждом ‎следующем ‎этапе ‎мы ‎используем‏ ‎значения, ‎сохранённые‏ ‎на‏ ‎предыдущем.

Например, ‎для ‎вычисления‏ ‎факториала ‎числа‏ ‎n ‎этим ‎методом ‎мы‏ ‎могли‏ ‎бы ‎заполнить‏ ‎таблицу:

1

Напомню, ‎что‏ ‎факториал ‎n! ‎= ‎1 ‎*‏ ‎2‏ ‎* ‎3‏ ‎*… ‎*‏ ‎n. ‎Видно, ‎что ‎для ‎получения‏ ‎каждого‏ ‎следующего‏ ‎результата ‎мы‏ ‎умножаем ‎текущее‏ ‎n ‎(сиреневое)‏ ‎на‏ ‎результат ‎n!‏ ‎предыдущего ‎шага ‎(это ‎показано ‎синими‏ ‎стрелками).

Давайте ‎посмотрим,‏ ‎как‏ ‎мы ‎можем ‎использовать‏ ‎динамическое ‎программирование‏ ‎для ‎поиска ‎количества ‎путей‏ ‎в‏ ‎графе. ‎Найдём‏ ‎количество ‎разных‏ ‎путей ‎между ‎вершинами ‎А ‎и‏ ‎F.

1) В‏ ‎начальную ‎вершину‏ ‎А ‎мы‏ ‎можем ‎попасть ‎единственным ‎путём: ‎просто‏ ‎оказаться‏ ‎там.‏ ‎Значит ‎в‏ ‎А ‎ведёт‏ ‎один ‎возможный‏ ‎путь.‏ ‎Отметим ‎его‏ ‎возле ‎начальной ‎вершины.

2) Теперь ‎на ‎каждой‏ ‎связи, ‎выходящей‏ ‎из‏ ‎А, ‎запишем ‎число,‏ ‎равное ‎сумме‏ ‎чисел, ‎входящих ‎в ‎А‏ ‎(то‏ ‎есть ‎везде‏ ‎единицы).

3) То ‎же‏ ‎самое ‎повторим ‎для ‎всех ‎следующих‏ ‎вершин:‏ ‎на ‎связях,‏ ‎выходящих ‎из‏ ‎вершины, ‎будем ‎писать ‎число, ‎равное‏ ‎сумме‏ ‎чисел‏ ‎на ‎связях,‏ ‎входящих ‎в‏ ‎эту ‎вершину.

Например, в‏ ‎D‏ ‎входит ‎одна‏ ‎единица, ‎значит ‎у ‎связи ‎D-E‏ ‎ставим ‎тоже‏ ‎единицу.‏ ‎А ‎вот ‎в‏ ‎Е ‎теперь‏ ‎входят ‎две ‎связи ‎с‏ ‎единицами,‏ ‎значит ‎на‏ ‎связях ‎Е-G‏ ‎и ‎E-H ‎поставим ‎двойки.

И ‎так‏ ‎до‏ ‎конца. ‎Главное:‏ ‎для ‎каждой‏ ‎вершины ‎нам ‎уже ‎должны ‎быть‏ ‎известны‏ ‎числа‏ ‎входящих ‎в‏ ‎неё ‎связей.

4) А‏ ‎теперь ‎самое‏ ‎вкусное.‏ ‎Посчитаем ‎сумму‏ ‎чисел ‎всех ‎связей, ‎входящих ‎в‏ ‎последнюю ‎вершину‏ ‎F‏ ‎и ‎— ‎вуаля!‏ ‎Мы ‎получили‏ ‎готовый ‎ответ:


ДОПОЛНИТЕЛЬНЫЕ ‎УСЛОВИЯ

Пусть ‎теперь‏ ‎в‏ ‎этой ‎задаче‏ ‎нам ‎нельзя‏ ‎проходить через ‎вершину ‎D. ‎Тогда ‎в‏ ‎начало‏ ‎добавим ‎ещё‏ ‎один ‎этап:‏ ‎нужно ‎вычеркнуть ‎все ‎участки ‎маршрута,‏ ‎проходящие‏ ‎через‏ ‎D.

В ‎нашем‏ ‎случае ‎пропадут‏ ‎связи ‎А-D,‏ ‎D-E‏ ‎и ‎D-G.‏ ‎Все ‎остальные ‎останутся ‎«рабочими».

Осталось ‎расставить‏ ‎числа, ‎как‏ ‎мы‏ ‎это ‎делали ‎раньше:

Видите?‏ ‎Теперь ‎из‏ ‎Е ‎выходит ‎сумма ‎1,‏ ‎потому‏ ‎что ‎связь‏ ‎D-E ‎нерабочая.‏ ‎А ‎в ‎G ‎суммируются ‎три‏ ‎связи,‏ ‎а ‎не‏ ‎четыре. ‎И‏ ‎результат ‎получился ‎5.

Для ‎задач ‎с‏ ‎дополнительными‏ ‎условиями‏ ‎результат ‎всегда‏ ‎получится ‎меньше,‏ ‎чем ‎для‏ ‎простой‏ ‎задачи ‎на‏ ‎том ‎же ‎графе.


Теперь ‎пусть ‎мы,‏ ‎наоборот, ‎обязаны‏ ‎пройти через‏ ‎вершину ‎D. ‎Значит,‏ ‎нам ‎нужно‏ ‎вычеркнуть ‎все ‎связи, ‎пройдя‏ ‎через‏ ‎которые ‎мы‏ ‎в ‎D‏ ‎не ‎попадаем.

Например, ‎A-C ‎и ‎следующая‏ ‎C-G:‏ ‎из ‎вершины‏ ‎С ‎нам‏ ‎уже ‎никак ‎не ‎вернуться ‎в‏ ‎D.‏ ‎То‏ ‎же ‎для‏ ‎A-B ‎и‏ ‎затем ‎B-F.

A-E‏ ‎вычёркиваем,‏ ‎но ‎сама‏ ‎вершина ‎Е ‎будет ‎работать, ‎ведь‏ ‎мы ‎можем‏ ‎попасть‏ ‎в ‎неё ‎из‏ ‎D ‎и‏ ‎пойти ‎дальше ‎— ‎в‏ ‎Н‏ ‎и ‎G.

1

Расставим‏ ‎числа-суммы ‎как‏ ‎раньше.

Получилось ‎ещё ‎меньше ‎— ‎4. Логично:‏ ‎чем‏ ‎меньше ‎связей‏ ‎участвует ‎в‏ ‎расчёте, ‎тем ‎меньшим ‎количеством ‎разных‏ ‎путей‏ ‎мы‏ ‎можем ‎добраться‏ ‎из ‎начальной‏ ‎вершины ‎до‏ ‎конечной.

Теперь‏ ‎вы ‎точно‏ ‎знаете, ‎как ‎решать ‎задачу ‎№‏ ‎9 ‎из‏ ‎ОГЭ‏ ‎по ‎информатике. ‎Осталось‏ ‎потренироваться!


Смотреть: 27+ мин
logo Маткульт-привет!

ИНФОРМАТИКА ОТ МЕЖДУНАРОДНОГО МАСТЕРА

00:00:00 Маткульт-привет!

00:00:50 Первая ‎задача

00:10:04 Задача‏ ‎J

00:18:22 Задача ‎В ‎— ‎уничножение ‎массива

Наши‏ ‎ресурсы:

https://vk.com/alexei_savvateev

https://www.instagram.com/aleksey_savvateev https://www.facebook.com/savvatan

https://savvateev.livejournal.com

https://savvateev.xyz

https://t.me/savvateev_xyz

Поддержать ‎Алексея‏ ‎Савватеева:‏ ‎https://sponsr.ru/checkout?project=savvateev

Обновления проекта

Статистика

Метки

step1cast 66 видеоподкаст 66 интервью 66 люди 66 молодежь 66 Подкаст 66 шагвбудущее 66 шоу 66 творчество 64 steppodcast 51 Белгородская_область 46 СПО31 27 профессионалы 19 ГодПедагогаНаставника 16 ГПН_2023 16 педагогиинаставники 16 УчитьВдохновлятьРазвивать2023 16 образование 12 Студенты 11 юмор 11 преподаватель 10 наставники 7 ПЕДАГОГИ 7 VK 6 Telegram 4 квн 4 Музыка 4 StandUP 3 предприниматель 3 программист 3 ozon 2 WILDBERRIES 2 блогер 2 врач 2 МАРКЕТПЛЕЙС 2 медицина 2 мчс 2 Писатель 2 Психология 2 смартфоны 2 социальные сети 2 спасатель 2 спорт 2 физическая культура 2 физкультура 2 экономика 2 8марта 1 9 мая 1 charonbabymusic 1 IT 1 messenger 1 music 1 абонентская служба 1 Английский 1 Аниме 1 анимемагазин 1 баскетбол 1 Безопасность жизнедеятельности 1 биология 1 БольшаяПеремена 1 БРОО 1 видеограф 1 вирусы 1 волейбол 1 воркаут 1 ВСКС 1 газпром 1 голосразума 1 госслужба 1 День Победы 1 деньматери 1 деньучителя 1 депутат 1 дискотека 1 женщины 1 здоровье 1 иностранныйязык 1 информатика 1 история 1 кондитер 1 контентмейкер 1 косплей 1 красота 1 Куда 1 лидермнений 1 литература 1 математика 1 межрегионгаз 1 МистерИМиссСтуденчество2023 1 молодежная политика 1 монтаж 1 настольная игра 1 настольные игры 1 НашУрал 1 нейросеть 1 Новое поколение 1 Нр 1 ОБЖ 1 обществознание 1 оператор 1 отношения 1 паркур 1 ПВЗ 1 пекарь 1 повар 1 политология 1 поэзия 1 поэт 1 православие 1 приложения 1 продакшн 1 психиатрия 1 пункт выдачи заказов 1 путешествия 1 РДДМ 1 ремонт 1 семейные традиции 1 Семья 1 Социология 1 танцы 1 техника 1 торговля 1 УДМ 1 узи 1 ультразвук 1 ФКР 1 фото 1 фотограф 1 футбол 1 хлеб 1 ЦМИ 1 экология 1 эмоции 1 юрист 1 Языки 1 Больше тегов

Фильтры

Подарить подписку

Будет создан код, который позволит адресату получить бесплатный для него доступ на определённый уровень подписки.

Оплата за этого пользователя будет списываться с вашей карты вплоть до отмены подписки. Код может быть показан на экране или отправлен по почте вместе с инструкцией.

Будет создан код, который позволит адресату получить сумму на баланс.

Разово будет списана указанная сумма и зачислена на баланс пользователя, воспользовавшегося данным промокодом.

Добавить карту
0/2048