В предыдущих постах этого блога мы уже касались темы объявления функций. Так же упоминалось, что в функции может быть не одна, а несколько переменных.
Ниже рассмотрим нюансы и ошибки, которые могут возникнуть при использовании такого инструмента.
Как мы обычно это делаем, разберем все на примере.
Изображение Alexa с сайта Pixabay
Руководство одного из зоопарков обратилось к нам с техническим заданием.
Нам нужно написать функцию, которая будет выводить в каком вольере расположилось каждое животное.
Для нас такое задание не было сложным и мы справились почти мгновенно:
Изображение автора
Мы просто перечислили аргументы функции через запятую и передаем их при каждом использовании.
Однако случилось так, что Медведя собрались переселять, а номер вольера для него пока не определен.
Как думаете, что будет, если мы не станем передавать в функцию номер вольера (один из аргументов) для Медведя?
Изображение автора
Программа ожидаемо завершилась ошибкой "info() missing 1 required positional argument: 'aviary'", которая означает, функция info() не получила 1 позиционный аргумент, а именно "aviary".
Что же означает термин "позиционный"?
Давайте так же посмотрим на практике.
Попробуем вернуть Медведю его номер вольера, но передадим аргументы в обратном порядке: сначала номер, потом уже "Медведь":
Изображение автора
Функция не "сломалась", но обратите внимание на первую строку вывода: получилось, что 2 расположился в вольере Медведь.
Это именно потому, что аргументы функции позиционные и передаваться они должны именно в том порядке, в котором расположились в объявленной функции.
Кстати, если бы мы попытались совершить в теле функции операции, которые допустимы только для числа, а на этом месте оказалась бы строка, то программа и вовсе завершилась бы ошибкой.
Как думаете, что получится, если мы захотим передать в функцию не только номер вольера Медведя, где он живет сейчас, но и тот, в который его собираются переселить?
Изображение автора
Верно! Работа программы завершится ошибкой "info() takes 2 positional arguments but 3 were given", которая означает, что функция info() принимает 2 позиционных аргумента, но было передано 3.
Обращайте внимание на описанные детали при работе с функциями.
(Изображение Alexa с сайта Pixabay)
Мы используем cookie-файлы, чтобы улучшить сервисы для вас. Если ваш возраст менее 13 лет, настроить cookie-файлы должен ваш законный представитель. Больше информации
Конвертор времени на Python. Задача с решением и пояснениями
Есть несомненная польза от решения абстрактных задач. Но всегда интереснее делать что-то, пусть не сложное, но такое что действительно может пригодиться в реальной жизни.
Хотя бы в теории.
Начну данный пост с практического примера, на котором будет проще объяснить основную мысль данного материала.
Давайте попробуем решить такую задачу:
Человек пошел за грибами.
Программа запрашивает у пользователя количество собранных грибов, и если грибы продолжают попадаться, то есть их количество не равно 0, то сбор грибов продолжается.
Если в какой-то момент пользователь закончил сбор дикоросов и вводит количество грибов равное 0, то программа выводит сообщение о завершении мероприятия и завершает свою работу.
Циклы в решении использовать нельзя.
Изучая типы данных в языке программирования Python, можно заметить, что даже числа порой удобнее обрабатывать в коде, преобразовав их в стоковый тип.
Это позволяет гибче смотреть на тип каждой переменной и шире использовать возможности языка.
В предыдущих постах этого блога мы уже касались темы объявления функций. Так же упоминалось, что в функции может быть не одна, а несколько переменных.
Ниже рассмотрим нюансы и ошибки, которые могут возникнуть при использовании такого инструмента.
Как мы обычно это делаем, разберем все на примере.
Сегодня будет представлена практическая часть материала, которая поможет начать лучше ориентироваться в применении функций с переданным в них единственным аргументом.
Рассмотрим и решим задачи где такая возможность языка программирования Python может быть использована.
Задача 1
Необходимо написать программу, которая будет запрашивать имя пользователя, и выводить на экран приветствие.
Вывод нужно реализовать в отдельной функции, а основной код поместить в "бесконечный" цикл с возможностью выхода из него при вводе "0".
В предыдущем посте мы уже открыли для себя возможность самостоятельного объявления функций, а сегодня немного расширим познания в этой сфере.
Как мы можем видеть на примере встроенных функций Python, внутри функций зачастую передается тот или иной аргумент.
К примеру, если нам нужно преобразовать число с плавающей точкой 5.0 в целочисленное значение, то мы просто передаем его в виде аргумента в функцию int() и получаем на выходе нужный нам результат.
А чтобы вывести на экран это число, мы передаем его в качестве аргумента во встроенную функцию print():
Для чего писать функции в языке программирования Python
В языке программирования Python есть встроенные функции, которые уже рассматривались в других постах блога.
Но есть ситуации, а главное, возможность, писать функции самостоятельно.
Ниже рассмотрим ситуации, когда целесообразно создавать собственные функции и напишем одну для понимания принципа их работы в структуре программного кода.
Программирование тесно переплетено с математикой, и как бы этого не хотелось делать некоторым, вспоминать математику, если она забыта, придется.
Понятие простых чисел так же изучается в школьном курсе математики, и напомнить его считаю не лишним.
Если говорить "человеческим" языком, простым называют то натуральное число, которое без остатка делится только на единицу и само на себя.
Чисел таких довольно много:
Функция round() для округления чисел с плавающей точкой. Python
Безусловно, все математики и другие ученые вздохнули бы с облегчением, если бы вдруг стало возможным в своих вычислениях использовать только целые числа.
Но реальность такова, что строго говоря происходит наоборот. Целые числа встречаются лишь в математических моделях, а в природе наоборот, их днем с огнем не сыскать.
Поэтому ученые, как действительно объективные люди, не стали игнорировать реальность, и широко используют дробные числа, и информатика с программированием не могла стать исключением.
Цикл for: нахождение максимального числа в списке. Python
Сразу сделаю оговорку, что данный метод не является самым эффективным и лаконичным, а используется больше для изучения циклов и улучшения понимания алгоритмов их работы.
Тем не менее в этой ипостаси данная задача весьма привлекательна, имеет интересное решение и не скучна даже для решения опытными разработчиками.
Задача на вложенные циклы с решением и его разбором. Python для начинающих
Циклы – один из важнейших инструментов разработчика. Поэтому понимание алгоритма их работы – это важное звено в цепочке знаний, которое ни в коем случае не должно быть слабым.
Поэтому практически во всех обучающих материалах по программированию большое внимание уделяется решению даже простых задач с применением циклов.
Сегодня займемся решением типовых задач, которые не столько сложны, сколько помогают понять механизм работы циклов.
Ну и конечно, задачи эти для начинающих разработчиков и решаются соответствующими методами.
Методы списков append() и extend() в Python. Применение
Коллекции типа list являются изменяемыми. Соответственно у нас есть возможность как добавить в список элементы, так и изменить, а то и вовсе удалить их.
Методы списков append() и extend() в Python используются для добавления элементов в конец списка.
Но если они делают одно действие, зачем нужны два метода?
О различии в их работе мы сегодня и поговорим.
Простым и эффективным способом генерации списков с заданными заранее условиями в Python являются циклы for, в теле которых прописывается код, генерирующий элемент списка и последовательно, при каждой итерации, добавляющий его в коллекцию.
3 задачи с подвохом на Python с решением и комментариями
Иногда очевидные вещи не настолько очевидные, как могут показаться на первый взгляд.
И если результат работы кода из нескольких тысяч строк оценить беглым взглядом сложно, то когда перед глазами 3-5 строчек, кажется, что точно знаешь ответ и подвоху спрятаться негде.
Вложенные циклы в Python. Применение при решении задач
В предыдущих постах уже много раз была затронута тема использования циклов в программировании.
Это и понятно, циклы – это крайне удобный и широко применяемый инструмент при написании кода и решении поставленных перед разработчиком задач.
Калькулятор за 5 минут на языке программирования Python
Писать абстрактный код – это, безусловно, здорово. Но всегда интереснее то, что можно применить на практике.
Это как сделать своими руками инструмент. Пусть он будет не так красив, удобен и функционален, как аналог, купленный в магазине.
Но его использование доставляет особое удовольствие.
Методы строк lower() и upper() в языке программирования Python
Продолжаем знакомиться с методами, которые применимы к коллекциям типа str языка программирования Python.
Сегодня разберем два парных метода, которые имеют одинаковый принцип действия, но используются для достижения противоположных результатов.
Циклы в Python: задачи с решением и разбором для начинающих. Язык программирования Python
Как бы не было сильно рвение к новым знаниям и освоению новых возможностей, практика – это то, без чего полученная информация будет бесполезной.
Разберем ряд задач, которые решаются при помощи циклов.
Задача 1
Условие:
Дан некий список из произвольных чисел ([5, -6, 1, -12, 2, -41, 19]).
Получить новый список, в который должны войти каждое число из первого списка, при условии, что оно по модулю больше 6.
Аргументы start, stop и step функции range() в языке программирования Python
Встроенная функция range() языка программирования Python может иметь до трех аргументов, один из которых, а именно stop, является обязательным.
В общем виде синтаксис выглядит так:
Нет комментариев