Топ. БНФ-нотация в документации Python
Читая документацию Python, вы могли встретить фрагменты БНФ-нотации (форма Бэкуса-Наура, англ. BNF Notation), которые выглядят примерно так:
Что означает весь этот странный код? Как это может помочь вам в понимании концепций Python? Как читать и интерпретировать эту нотацию?
Эта статья познакомит вас с основами БНФ-нотации Python. Вы узнаете, как ее использовать для глубокого понимания синтаксиса и грамматики языка.
#топ
Читая документацию Python, вы могли встретить фрагменты БНФ-нотации (форма Бэкуса-Наура, англ. BNF Notation), которые выглядят примерно так:
name ::= lc_letter (lc_letter | "_")*
lc_letter ::= "a"..."z"
Что означает весь этот странный код? Как это может помочь вам в понимании концепций Python? Как читать и интерпретировать эту нотацию?
Эта статья познакомит вас с основами БНФ-нотации Python. Вы узнаете, как ее использовать для глубокого понимания синтаксиса и грамматики языка.
#топ
Задача для новичков
Напишите функцию
Если таких букв несколько, то надо вывести ту, которая больше в лексикографическом смысле (
Примеры работы данной функции:
#задача #coding
Напишите функцию
findGreatestLetter()
, которая получает на вход строку, состаящую из английских букв. Эта функция должна вывести букву, которая встречается в строке как в верхнем, так и в нижнем регистре. (Вывести ее нужно в верхнем).Если таких букв несколько, то надо вывести ту, которая больше в лексикографическом смысле (
b > a
например). Если такой буквы нет, то следует вывести пустую строку.Примеры работы данной функции:
findGreatestLetter("arRAzFif") --> 'R'
findGreatestLetter("AbCdEfGhIjK") --> ''
Свои варианты пишите в комментариях! Решение - сегодня вечером.#задача #coding
Задача с кодом. Множитель списков
Напишите функцию, которая будет принимать список (чисел или строк) и возвращать новый список со вложенными списками для каждого элемента исходного списка.
Каждый вложенный список будет заполняться соответствующим элементом исходного списка. Количество элементов во вложенном списке должно быть таким же, как в исходном.
Примеры:
#задача #coding
Напишите функцию, которая будет принимать список (чисел или строк) и возвращать новый список со вложенными списками для каждого элемента исходного списка.
Каждый вложенный список будет заполняться соответствующим элементом исходного списка. Количество элементов во вложенном списке должно быть таким же, как в исходном.
Примеры:
multiply([4, 5])Решение на нашем сайте.
➞ [[4, 4], [5, 5]]
multiply(["*", "%", "$"])
➞ [["*", "*", "*"], ["%", "%", "%"], ["$", "$", "$"]]
multiply(["A", "B", "C", "D", "E"])
➞ [["A", "A", "A", "A", "A"], ["B", "B", "B", "B", "B"], ["C", "C", "C", "C", "C"], ["D", "D", "D", "D", "D"], ["E", "E", "E", "E", "E"]]
#задача #coding
Tips & Tricks. Сколько времени занимает работа вашей функции?
При помощи модуля time можно узнать, сколько времени необходимо для выполнения кода. Пример - в заметке.
#tipsandtricks #модули
При помощи модуля time можно узнать, сколько времени необходимо для выполнения кода. Пример - в заметке.
#tipsandtricks #модули
Задача на логику. 99 мешков фальшивых монет
Есть 100 мешков с монетами. Известно, что в одном из них — настоящее золото, а в остальных — фальшивые монеты. На вид монеты совершенно одинаковы (на вкус и запах — тоже).
Также известно, что любая фальшивая монета весит ровно 1 унцию, а любая настоящая — 1,01 унции.
У вас есть весы (точные, показывающие вес). На них можно взвесить хоть все 100 мешков с монетами одновременно. Но вам доступно только одно взвешивание.
Как определить, в каком мешке золото?
Подсказка: мешки можно помечать, а также брать из них любое количество монет.
Решение тут.
#логическаязадача
Есть 100 мешков с монетами. Известно, что в одном из них — настоящее золото, а в остальных — фальшивые монеты. На вид монеты совершенно одинаковы (на вкус и запах — тоже).
Также известно, что любая фальшивая монета весит ровно 1 унцию, а любая настоящая — 1,01 унции.
У вас есть весы (точные, показывающие вес). На них можно взвесить хоть все 100 мешков с монетами одновременно. Но вам доступно только одно взвешивание.
Как определить, в каком мешке золото?
Подсказка: мешки можно помечать, а также брать из них любое количество монет.
Решение тут.
#логическаязадача
Задача с кодом. Пишем функцию для «тупого добавления»
Условие: Создайте функцию, которая принимает два параметра. Если оба параметра — строки, то сложите их математически, если оба — integer, тогда сконкатенируйте их. Если параметры разного типа — верните None.
Примеры:
#задача #coding
Условие: Создайте функцию, которая принимает два параметра. Если оба параметра — строки, то сложите их математически, если оба — integer, тогда сконкатенируйте их. Если параметры разного типа — верните None.
Примеры:
stupid_addition(1, 2) ➞ "12"Решение на нашем сайте.
stupid_addition("1", "2") ➞ 3
stupid_addition("1", 2) ➞ None
#задача #coding
Знаем, что тут сидят серьезные программисты, но если вдруг кто-то интересуется Бизнес Анализом - милости просим.
Бизнес Аналитик IT - канал о жизненном цикле разработки ПО глазами бизнес аналитика.
На канале вы найдете:
- теоретический материал
- интересные статьи
- профессиональную литературу
- полезные шпаргалки
- вопросы с собеседований
- опросы.
Подпишись и пройди наш тест для начинающего бизнес аналитика.
Бизнес Аналитик IT - канал о жизненном цикле разработки ПО глазами бизнес аналитика.
На канале вы найдете:
- теоретический материал
- интересные статьи
- профессиональную литературу
- полезные шпаргалки
- вопросы с собеседований
- опросы.
Подпишись и пройди наш тест для начинающего бизнес аналитика.
Тест. Битовые операции Python
Хорошо ли вы понимаете битовые операции? Пройдите тест из 10 вопросов и проверьте!
#тест
Хорошо ли вы понимаете битовые операции? Пройдите тест из 10 вопросов и проверьте!
#тест
Задача с кодом. Скользящие числа
Напишите функцию, принимающую число и проверяющую, является ли оно «скользящим». Скользящее число — такое число, соседние цифры которого отличаются между собой на единицу.
Примеры:
Если число записывается одной цифрой, оно считается скользящим.
Решение на нашем сайте.
#задача #coding
Напишите функцию, принимающую число и проверяющую, является ли оно «скользящим». Скользящее число — такое число, соседние цифры которого отличаются между собой на единицу.
Примеры:
is_slidey(123454321) ➞ TrueОбратите внимание на примеры 4 и 5. Если в числе идут подряд одинаковые цифры или какая-то цифра в ряду пропущена, такое число мы не считаем скользящим.
is_slidey(54345) ➞ True
is_slidey(987654321) ➞ True
is_slidey(1123) ➞ False
is_slidey(1357) ➞ False
is_slidey(1) ➞ True
Если число записывается одной цифрой, оно считается скользящим.
Решение на нашем сайте.
#задача #coding
Tips & Tricks. Подсчет наиболее часто встречающихся элементов в итерируемом объекте
Показываем, как помощью инструмента Counter из модуля collections узнать, какие элементы итерируемого объекта встречаются чаще всего, и сколько раз.
#tipsandtricks #списки #строки #модули
Показываем, как помощью инструмента Counter из модуля collections узнать, какие элементы итерируемого объекта встречаются чаще всего, и сколько раз.
#tipsandtricks #списки #строки #модули
Приходите на открытый практический урок «Генераторы и очереди в Python» от OTUS. Спикер Дмитрий Панкрашов — ведущий разработчик в компании-партнере вендора СЭД «Директум».
На вебинаре мы:
- рассмотрим концепции генераторных функций и очередей;
- поговорим о сходствах, различиях и применимости в решении реальных задач;
- разберем несколько практических примеров;
- ответим на все возникающие вопросы.
Встречаемся 13 мая в 20:00 мск в преддверии старта курса «Специализация Python Developer».
Все участники вебинара получат специальную цену на обучение и персональную консультацию от менеджеров OTUS!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Задача на логику. Кто украл кошелек учительницы?
У учительницы пропал кошелек. Украсть его мог только кто-то из 5 учеников: Лилиан, Джуди, Дэвид, Тео или Маргарет. При опросе этих детей каждый из них дал по 3 показания:
Лилиан: 1) я не брала кошелек; 2) я никогда в своей жизни ничего не крала; 3) это сделал Тео.
Джуди: 4) я не брала кошелек; 5) мой папа достаточно богат, и у меня есть собственный кошелек; 6) Маргарет знает, кто это сделал.
Дэвид: 7) я не брал кошелек учительницы; 8) с Маргарет я не был знаком до поступления в школу; 9) это сделал Тео.
Тео: 10) я не виновен; 11) это сделала Маргарет; 12) Лилиан лжет, утверждая, что я украл кошелек.
Маргарет: 13) я не брала кошелек учительницы; 14) в этом виновна Джуди; 15) Дэвид может поручиться за меня, так как знает меня со дня рождения.
При дальнейшем расспрашивании каждый из учеников признал, что из сделанных им трех заявлений два верных и одно неверное.
Вопрос: кто украл кошелек учительницы?
Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.
#логическаязадача
У учительницы пропал кошелек. Украсть его мог только кто-то из 5 учеников: Лилиан, Джуди, Дэвид, Тео или Маргарет. При опросе этих детей каждый из них дал по 3 показания:
Лилиан: 1) я не брала кошелек; 2) я никогда в своей жизни ничего не крала; 3) это сделал Тео.
Джуди: 4) я не брала кошелек; 5) мой папа достаточно богат, и у меня есть собственный кошелек; 6) Маргарет знает, кто это сделал.
Дэвид: 7) я не брал кошелек учительницы; 8) с Маргарет я не был знаком до поступления в школу; 9) это сделал Тео.
Тео: 10) я не виновен; 11) это сделала Маргарет; 12) Лилиан лжет, утверждая, что я украл кошелек.
Маргарет: 13) я не брала кошелек учительницы; 14) в этом виновна Джуди; 15) Дэвид может поручиться за меня, так как знает меня со дня рождения.
При дальнейшем расспрашивании каждый из учеников признал, что из сделанных им трех заявлений два верных и одно неверное.
Вопрос: кто украл кошелек учительницы?
Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.
#логическаязадача
Django. Аутентификация в Django-REST с помощью Auth.js
В этом уроке рассматривается реализация системы аутентификации на основе Django REST (с помощью Django REST Framework) и ее интеграция с Auth.js (ранее известным как NextAuth.js) во фронтенде. Мы разберем настройку аутентификации на основе учетных данных, а также аутентификацию с помощью Google.
#django
В этом уроке рассматривается реализация системы аутентификации на основе Django REST (с помощью Django REST Framework) и ее интеграция с Auth.js (ранее известным как NextAuth.js) во фронтенде. Мы разберем настройку аутентификации на основе учетных данных, а также аутентификацию с помощью Google.
#django
Задача для новичков
Уродливое число — это положительное целое число, простыми множителями которого могут быть только числа
Напишите функцию
Свои варианты пишите в комментариях! Решение - сегодня вечером.
#задача #coding
Уродливое число — это положительное целое число, простыми множителями которого могут быть только числа
2
, 3
и 5
. Напишите функцию
isUgly(n: int)
, которая принимает на вход целое число n и возвращает True
, если число уродливое, и False
в противном случае. Также напишите тесты для этой функции, чтобы убедиться, что она работает нормально.Свои варианты пишите в комментариях! Решение - сегодня вечером.
#задача #coding
Ответ к предыдущей задаче для новичков
# Функция для проверки числа на "уродливость"
#задача #coding
# Функция для проверки числа на "уродливость"
def isUgly(n):
if n <= 0:
return False
while n % 2 == 0:
n /= 2
while n % 3 == 0:
n /= 3
while n % 5 == 0:
n /= 5
return n == 1
# Тесты для функции isUrgly()def test_is_ugly():
assert is_ugly(6) == True
assert is_ugly(1) == True
assert is_ugly(14) == False
assert is_ugly(0) == False
assert is_ugly(-6) == False
#задача #coding
Задача с кодом. Годится ли гора для восхождения?
Напишите функцию, которая будет принимать список чисел, представляющих отдельные высоты горы, и определять, годится ли такая гора для восхождения на нее.
Пригодными для восхождения горами будем считать те, где разница между соседними высотами не превышает 5 единиц.
Примечание. Список может начинаться с любого числа и быть любой длины.
Примеры:
#задача #coding
Напишите функцию, которая будет принимать список чисел, представляющих отдельные высоты горы, и определять, годится ли такая гора для восхождения на нее.
Пригодными для восхождения горами будем считать те, где разница между соседними высотами не превышает 5 единиц.
Примечание. Список может начинаться с любого числа и быть любой длины.
Примеры:
is_scalable([1, 2, 4, 6, 7, 8]) ➞ TrueРешение на нашем сайте.
is_scalable([40, 45, 50, 45, 47, 52]) ➞ True
is_scalable([2, 9, 11, 10, 18, 21]) ➞ False
#задача #coding
Tips & Tricks. Приемы Python, которым редко учат начинающих
Как и в любом языке, в Python есть целый ряд тонкостей и приемов, о которых редко рассказывают. Давайте рассмотрим некоторые из них.
#tipsandtricks #функции
Как и в любом языке, в Python есть целый ряд тонкостей и приемов, о которых редко рассказывают. Давайте рассмотрим некоторые из них.
#tipsandtricks #функции
Задача на логику. Сколько весит брусок мыла?
На одну чашу весов положен брусок мыла, а на другую — 3/4 такого же бруска и еще 3/4 кг. Весы в равновесии. Сколько весит брусок мыла?
Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.
#логическаязадача
На одну чашу весов положен брусок мыла, а на другую — 3/4 такого же бруска и еще 3/4 кг. Весы в равновесии. Сколько весит брусок мыла?
Решение тут. Просьба потратить хотя бы 10 минут перед тем как читать решение.
#логическаязадача