Графики функций с модулями. 10 класс
Вы можете изучить и скачать доклад-презентацию на тему Графики функций с модулями. 10 класс. Презентация на заданную тему содержит 12 слайдов. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас — поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций в закладки!
Презентации» Математика» Графики функций с модулями. 10 класс
Слайды и текст этой презентации
Слайд 1
Описание слайда:
Графики функций с модулями. Проект: Угарина Сергея, ученика 10п класса.
Слайд 2
Описание слайда:
Цель работы: Научится строить графики функций с модулями. Хорошая подготовка к ЕГЭ.
Слайд 3
Описание слайда:
1 ФУНКЦИЯ С МОДУЛЕМ Y=lXl Строим график функции у = x Из-за модуля положительная часть графика отразится вдоль оси У.
Слайд 4
Описание слайда:
2 функция с модулем. У=l10х+4l Строим график функции у=10х+4 Подставляем модуль и функция станет положительной во всей области определения. Положительная часть первой функции отразится от х=-0,4
Слайд 5
Описание слайда:
3 функция с модулем У=lx²-4l Строим график функции у= х²-4 Это квадратичная функция, графиком является парабола. Чтобы построить параболу надо найти как можно больше точек.
Сейчас строим график функции у=lх²-4l, тогда отрицательная сторона графика функции у=х²-4 отразится по оси Х. Областью определения будут все числа, функция будет равняться нулю в точках х = ±2.Слайд 6
Описание слайда:
4 функция с модулем У=2х²-5lхl-7 Строим гр.функции у=2х²-5х-7, приравняем нулю и получим два корня х=3,5 и х’=-1 Найдём вершину функции. В точке х=1,5 у=-10 Строим график функции у=2х²-5lхl-7.
Слайд 7
Описание слайда:
5 функция с модулем У=l2х²-5х-7l Строим график функции у=2х²-5х-7 Всё также ,как и в предыдущем слайде. Потом строим график функции у=l2х²-5х-7l Функция станет только положительным. Отрицательная сторона первой функции отразится по оси Х
Слайд 8
Описание слайда:
6 функция с модулем У=l2х²-5lхl-7l – сложная функция. Строим сперва график функции у=2х²-5lхl-7 как в 4-ом слайде. Потом всю эту функцию берём под модуль. Функция у=l2х²-5lхl-7l будет положительным на всей области определения. Функция будет равняться нулю в точках х=±3,5
Слайд 9
Описание слайда:
7 функция с модулем У=lх²+хl Строим гр.ф у=х²+х Эта квадратичная функция, графиком является парабола. Чтобы построить параболу надо как можно больше точек. Строим гр.ф у=lх²+хl Отрицательная сторона отразится в положительную сторону по оси Х.
Слайд 10
Описание слайда:
8 функция с модулем У=lх³+х²-lхl+1l – сложная функция. Строи график функции у=х³+х²-х+1. Это кубическая функция, графиком является гипербола. Чтобы построить гиперболу надо найти как можно больше точек. Потом строим гр. ф. у=х³+х²-lхl+1 Из-за модуль х, первая функция от х=0 понижется резко. Потом строим гр.ф. у=lх³+х²-lхl+1l
Слайд 11
Описание слайда:
Графики функций с модулями очень много встречаются на Е.Г.Э. В средней школе графики функций с модулями обучают в 10, 11 классах.
Слайд 12
Вывод:Графики функций надо обязательно уметь строить, чтобы не было проблем с такими функциями на экзамене.
Tags Графики функций с модулями. 10 класс
Похожие презентации
Презентация успешно отправлена!
Ошибка! Введите корректный Email!
Модули. Урок 16 курса «Python. Введение в программирование»
Встроенные в язык программирования функции доступны сразу. Чтобы их вызвать, не надо выполнять никаких дополнительных действий. Однако за время существования любого популярного языка на нем было написано столько функций и классов, которые оказались востребованными множеством программистов и в разных областях, что включить весь этот объем кода в сам язык если возможно, то нецелесообразно.
Чтобы разрешить проблему доступа к дополнительным возможностям языка, в программировании стало общепринятой практикой использовать так называемые модули, пакеты и библиотеки. Каждый модуль содержит коллекцию функций и классов, предназначенных для решения задач из определенной области. Так в модуле math языка Python содержатся математические функции, модуль random позволяет генерировать псевдослучайные числа, в модуле datetime содержатся классы для работы с датами и временем, модуль sys предоставляет доступ к системным переменным и т. д.
Количество модулей для языка Python огромно, что связано с популярностью языка. Часть модулей собрана в так называемую стандартную библиотеку. Стандартная она потому, что поставляется вместе с установочным пакетом. Однако существуют сторонние библиотеки. Они скачиваются и устанавливаются отдельно.
Для доступа к функционалу модуля, его надо импортировать в программу. После импорта интерпретатор «знает» о существовании дополнительных классов и функций и позволяет ими пользоваться.
В Питоне импорт осуществляется командой import
. При этом существует несколько способов импорта. Рассмотрим работу с модулем на примере math
. Итак,
>>> import math
Ничего не произошло. Однако в глобальной области видимости появилось имя math
. Если до импорта вы упомянули бы имя math
, то возникла бы ошибка NameError
. Теперь же
>>> math <module 'math' (built-in)>
В программе завелся объект math
, относящийся к классу module
.
Чтобы увидеть перечень функций, входящих в этот модуль, воспользуемся встроенной в Python функцией dir()
, передав ей в качестве аргумента имя модуля:
>>> dir(math) ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']
Проигнорируем имена с двойными подчеркиваниями. Все остальное – имена функций и констант (переменных, которые не меняют своих значений), включенных в модуль math. Чтобы вызвать функцию из модуля, надо впереди написать имя модуля, поставить точку, далее указать имя функции, после чего в скобках передать аргументы, если они требуются. Например, чтобы вызвать функцию pow из math, надо написать так:
>>> math.pow(2, 2) 4.0
Обратите внимание, эта другая функция pow()
, не та, что встроена в сам язык. «Обычная» функция pow()
возвращает целое, если аргументы целые числа:
>>> pow(2, 2) 4
Для обращения к константе скобки не нужны:
>>> math.pi 3.141592653589793
Если мы не знаем, что делает та или иная функция, то можем получить справочную информацию о ней с помощью встроенной в язык Python функции help()
:
>>> help(math.gcd) Help on built-in function gcd in module math: gcd(...) gcd(x, y) -> int greatest common divisor of x and y
Для выхода из интерактивной справки надо нажать клавишу q. В данном случае сообщается, что функция возвращает целое число, и это наибольший общий делитель для чисел x и y. Описание модулей и их содержания также можно посмотреть в официальной документации на сайте python.org.
Второй способ импорта – это когда импортируется не сам модуль, а только необходимые функции из него.
>>> from math import gcd, sqrt, hypot
Перевести можно как «из модуля math
импортировать функции gcd
, sqrt
и hypot
«.
В таком случае при их вызове не надо перед именем функции указывать имя модуля:
>>> gcd(100, 150) 50 >>> sqrt(16) 4.0 >>> hypot(3, 4) 5.0
Чтобы импортировать сразу все функции из модуля:
>>> from math import *
Импорт через from
не лишен недостатка. В программе уже может быть идентификатор с таким же именем, как имя одной из импортируемых функций или констант.
>>> pi = 3.14 >>> from math import pi >>> pi 3.141592653589793
Здесь исчезает значение 3.14, присвоенное переменной pi. Это имя теперь указывает на число из модуля math
. Если импорт сделать раньше, чем присвоение значения pi, то будет все наоборот:
>>> from math import pi >>> pi = 3.14 >>> pi 3.14
В этой связи более опасен именно импорт всех функций. Так как в этом случае очень легко не заметить подмены значений идентификаторов.
Однако можно изменить имя идентификатора из модуля на какое угодно:
>>> from math import pi as P >>> P 3.141592653589793 >>> pi 3.14
В данном случае константа pi
из модуля импортируется под именем P. Смысл подобных импортов в сокращении имен, так как есть модули с длинными именами, а имена функций и классов в них еще длиннее. Если в программу импортируется всего пара сущностей, и они используются в ней часто, то имеет смысл переименовать их на более короткий вариант. Сравните:
>>> import calendar >>> calendar.weekheader(2) 'Mo Tu We Th Fr Sa Su'
и
>>> from calendar import weekheader as week >>> week(3) 'Mon Tue Wed Thu Fri Sat Sun'
Во всех остальных случаях лучше оставлять идентификаторы содержимого модуля в пространстве имен самого модуля и получать доступ к ним через имя модуля, то есть выполнять импорт командой import имя_модуля
, а вызывать, например, функции через имя_модуля.имя_функции()
.
Программист на Python всегда может создать собственный модуль, чтобы использовать его в нескольких своих программах или даже предоставить в пользование всему миру. В качестве тренировки создадим модуль с функциями для вычисления площадей прямоугольника, треугольника и круга:
from math import pi, pow def rectangle(a, b): return round(a * b, 2) def triangle(a, h): return round(0. 5 * a * h, 2) def circle(r): return round(pi * pow(r, 2), 2)
Здесь также иллюстрируется принцип, что один модуль может импортировать другие. В данном случае импортируются функции из модуля math
.
Поместите данный код в отдельный файл square.py. Однако куда поместить сам файл?
Когда интерпретатор Питона встречает команду импорта, то просматривает на наличие файла-модуля определенные каталоги. Их перечень можно увидеть по содержимому sys.path
:
>>> import sys >>> sys.path ['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/home/pl/.local/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']
Это список адресов в Linux. В Windows он будет несколько другим. Первый элемент – пустая строка, что обозначает текущий каталог, то есть то место, где сохранена сама программа, импортирующая модуль. Если вы сохраните файл-модуль и файл-программу в одном каталоге, то интерпретатор без труда найдет модуль.
Также модуль можно положить в любой другой из указанных в списке каталогов. Тогда он будет доступен для всех программ на Python, а также его можно будет импортировать в интерактивном режиме.
Можно добавить в sys.path
свой каталог. Однако в этом случае либо код программы должен содержать команды изменения значения sys.path
, либо надо править конфигурационный файл операционной системы. В большинстве случаев лучше так не делать.
Поместите файл square.py в тот же каталог, где будет исполняемая программа. Ее код должен включать инструкцию импорта модуля square (при импорте расширение файла не указывается) и вызов той функции и с теми параметрами, которые ввел пользователь. То есть у пользователя надо спросить, площадь какой фигуры он хочет вычислить. Далее запросить у него аргументы для соответствующей функции. Передать их в функцию из модуля square, а полученный оттуда результат вывести на экран.
Примечание. Исполнение модуля как самостоятельного скрипта, а также создание строк документации, которые отображает встроенная в Python функция help()
, будут рассмотрены в курсе объектно-ориентированного программирования.
Примеры решения и дополнительные уроки в pdf-версии и android-приложении курса
Функции
Функция отличается от процедуры тем, что у нее нет выходных параметров, а все входные параметры принято называть аргументами. В результате работы функции программа обязательно должна получить определенное значение (функция возвращает свое значение).
Создание функции аналогично созданию процедуры, но для того чтобы функция вернула свое значение, внутри нее обязательно должен быть оператор присваивания.
Имя_функции = выражение
Вызов функции также отличается от вызова процедуры:
Имя_Переменной = Имя_функции ( Список параметров)
Имя функции используется в выражениях , например, Тext1. Text = Тext1.Text + InputBox( “Введите число”)
Задание 3. Создайте функцию, которая выдает произвольное число, начало и конец интервала задается в аргументах. В программе по кнопке печатается произвольное число, интервал задается в двух Текстовых Окнах. По другой кнопке заполняется массив произвольными числами до 100 и печатается.
Задание 4. Создайте функцию, которая определяет и сообщает наибольшее из 3 чисел. Задавайте входные параметры и вызывайте функцию разными способами.
Если при вызове функции указать не все аргументы, то выдастся сообщение об ошибке. Но в процессе описания процедуры можно определить, что не все аргументы обязательно должны указываться при вызове.
Такие параметры(аргументы) называются необязательными.
Для того, чтобы аргумент был необязательным перед ним нужно поставить слово Optional. Необязательные аргументы должны замыкать список аргументов, так как после первого необязательного аргумента все последующие будут необязательными.
Имя_Функции ( a As Integer, Optional b As Integer)
Задание 5. Измените функцию в задании 4, сделав необязательным аргумент ‘начало интервала’. Попробуйте вызывать по-разному функцию, используя один или два аргумента. Будет ли отличие?
Если в процедуре или функции используется массив, то в параметрах он указывается так Имя_Массива() As Тип, например:
Sub AAA( d() As Integer, n as Byte)
В процедуре будет использоваться числовой массив d. Чаще всего следует еще указать размерность массива. Вызывается такая процедура аналогично, используя при вызове имя массива.
Задание 6. Создайте процедуру создания массива произвольных чисел, размер задавайте как входной параметр, используйте созданную функцию произвольного числа. В командной кнопке вызовите процедуру и после напечатайте массив.
Возможности многократного использования процедуры или функции ограничены, если эта процедура находится в коде формы. Если нужно ее использовать в другом проекте, то туда придется добавлять всю форму. Процедуру, допускающую многократное использование, лучше создавать внутри модуля.
Если процедура должна входить в состав универсального модуля, то она определяется в окне программного кода для этого модуля.
Для этого надо сначала создать стандартный модуль (добавить новый модуль в проект). – Project(главная панель) — Add Module – New. Открывается чистое окно программного кода, где уже обычным способом определяем процедуру или функцию. В окне проводника проекта появится информация о созданном модуле.
Если хотим добавить в проект уже имеющийся программный код (файл с расширением bas), то тогда выбираем Project — Add Module – Existings.
Для сохранения модуля в виде файла с расширением bas надо при сохранении проекта присвоить модулю какое-нибудь имя.
В дальнейшем, при создании нового проекта, Вы можете присоединить к нему готовый программный модуль. Так программисты создают собственные библиотеки полезных им процедур.
Для правильного оформления модуля надо в окне свойств задать ему соответствующее имя (это не имя файла, а имя модуля в этом проекте).
При создании процедур и функций очень желательно оформить заголовок: закомментированная информация о процедуре, ее аргументах и прочее.
Задание 7. Процедуру создания произвольного массива и функцию произвольного числа разместите в программном модуле.
Но не каждую процедуру можно поместить в программный модуль, а только ту, которая не зависит от других процедур в проекте (инкапсулированную).
Хорошо инкапсулированной называется такая процедура, которая не зависит от других частей кода и конкретных объектов (элементов управления). Такая процедура работает всегда одинаково.
Домашнее задание.
Создайте функцию, определяющую сколько определенных символов встречается в заданной строке. В этой функции два аргумента (строка и символ).
Общие процедуры и функции: ввод массива, определение максимального и минимального элемента массива, определение среднего значения, перестановка элементов массива разместите в одном программном модуле, назовите его, например, «Работа с массивами» и используйте в дальнейших программах.
Контрольные вопросы:
Что такое процедура общего типа?
Чем функция отличается от процедуры?
Как создать собственную процедуру или функцию?
Как вызвать процедуру, функцию?
Что такое входные и выходные параметры, как они задаются?
УРОК 22
Цель урока. Ознакомление студентов с объектами, позволяющими работать с дисками, папками и файлами на компьютере. Научить студентов создавать горизонтальное и контекстное меню и программировать их пункты.
модулей и функций в Python. Функции, модули и пакеты | Яши Агарвал
Все путаются между всеми этими тремя функциями, модулями и пакетами.
Пакеты, модули и функцииПросто посмотрите на это изображение…….Мы понимаем, что пакет содержит набор модулей, а модуль содержит набор функций.
Таким образом, мы можем сказать, что функции — это подмножество модулей, а модули — это подмножество пакетов.
Модуль — это просто файл Python с .py , которое можно импортировать в другую программу Python.
Имя файла Python становится именем модуля.
Модуль содержит — 1) определения и реализацию классов 2) переменных и 3) функции которые можно использовать внутри другой программы.
Преимущества модулей –
- Повторное использование : Работа с модулями позволяет повторно использовать код.
- Простота: Модуль фокусируется на небольшой части проблемы, а не на всей проблеме.
- Область действия: Отдельное пространство имен определяется модулем, который помогает избежать конфликтов между идентификаторами.
Создание функции — Функция определяется с помощью ключевого слова def
1. Создание модуля
Создание модуля, содержащего одну функциюВ этой программе создается функция с именем «Модуль» и сохранить этот файл с именем Yashi. py, т.е. именем файла и с расширением .py
Создание модуля, содержащего множество функцийВ этой программе мы создали 4 функции для сложения, умножения, вычитания и деления.
Сохранение этого файла как Operations.py
2. Импорт модуля Импорт модуляИмпорт функции с использованием оператора import t (когда интерпретатор встречает оператор импорта, он импортирует модуль, если модуль присутствует в пути поиска).
Функция — это блок кода, который запускается только при вызове. В функцию можно передавать данные, называемые параметрами.
В результате функция может возвращать данные.
Типы функций 1. Пользовательские функции:Функции, которые мы определяем сами для выполнения определенных задач, называются пользовательскими функциями.
Как видно из приведенного выше примера файла Yashi.py, мы создали собственную функцию для выполнения определенной операции.
Преимущества функций, определяемых пользователем
- Функции, определяемые пользователем, помогают разбивать большую программу на небольшие сегменты, что упрощает ее понимание, сопровождение и отладку.
- Если в программе встречается повторяющийся код. Функция может использоваться для включения этих кодов и выполнения при необходимости путем вызова этой функции.
2. Встроенные функции:
Python имеет несколько функций, которые легко доступны для использования. Эти функции называются встроенными функциями.
abs(),delattr(),hash(),memoryview(),set(),all(),dict(),help(),min(),setattr(),any(),dir() ,hex(),next(),slice(),ascii(),divmod(),id(),object(),sorted(),bin(),enumerate(),input(),oct(),staticmethod (),bool(),eval(),int(),open(),str(),breakpoint(),exec(),isinstance(),ord(),sum(),bytearray(),filter() ,issubclass(),pow(),super(),bytes(),float(),iter(),print()tuple(),callable(),format(),len(),property(),type( ),chr(),frozenset(),list(),range(),vars(),classmethod(),getattr(),locals(),repr(),zip(),compile(),globals(), map(),reversed(),__import__(),complex(),hasattr(),max(),round()
abs() возвращает абсолютное значение числа. Абсолют отрицательного значения состоит в том, что значение положительно.
all() возвращает True, если все значения в итерации Python имеют логическое значение True, в противном случае — False.
ascii() возвращает печатное представление объекта Python (строка или список Python).
bin() преобразует целое число в двоичную строку.
bytearray() возвращает массив Python заданного размера в байтах.
compile() возвращает объект кода Python.
3. Лямбда-функции:
Они называются анонимными функциями , которые определены без имени.
В то время как обычные функции определяются с помощью ключевого слова def в Python, анонимные функции определяются с помощью ключевого слова lambda .
Использование лямбда-функции в python —
Для запроса безымянной функции на короткий период времени. В Python мы обычно используем ее в качестве аргумента для функции более высокого порядка (функции, которая принимает другие функции как аргументы).
Лямбда-функции используются вместе со встроенными функциями, такими как filter(), map() и т. д.
filter() — Как следует из названия, он используется для фильтрации итерируемых объектов в соответствии с условиями. Фильтр фильтрует исходный итерируемый объект и передает элементы, которые возвращают True для функции, предоставленной для фильтрации.
map() — Карта выполняет все условия функции для элементов в итерируемом объекте и позволяет применить к ней функцию, а затем передает ее на выход, который может иметь как одинаковые, так и разные значения.
Использование функции фильтра и карты.Как вы видите в программе, где мы делим каждый элемент на 2, а его модуль равен 0. Новый список, который использует filter() , возвращает только те числа, которые удовлетворяются условию, а когда мы используем map() возвращает элементы в логической форме и удовлетворяет условию, возвращает True.
4. Функции рекурсии
Рекурсивная функция — это функция, определенная в терминах самой себя через самореферентных выражений. Это означает, что функция будет продолжать вызывать себя и повторять свое поведение до тех пор, пока не будет выполнено какое-либо условие для возврата результата.
СинтаксисЭто пример рекурсивной функции для нахождения факториала целого числа.
Факториал числа — это произведение всех целых чисел от 1 до этого числа. Например, факториал числа 3 (обозначается как 3!) равен 1*2*3 = 6.
Здесь функция factorial рекурсивно вызывает себя до тех пор, пока условие не станет ложным.
Использование рекурсивной функцииЧтение и запись электронного текста
Эллисон Пэрриш
Эта глава посвящена функциям и модулям в Python. Функции – это удобный способ изолировать определенную часть функциональности вашей программы и сделать его многоразовым. Модули — это способ собрать ряд полезных функций в одном файле, который затем можно использовать в нескольких проектах и делиться с другими программисты.
Мы уже широко использовали функции в наших программах; функции
один из основных строительных блоков программирования на Python. Всякий раз, когда вы печатали
что-то вроде len(x)
или type(y)
или даже random.choice([1, 2, 3])
, вы
использовал функции. Просто эти функции предопределены
Питон. В этой главе мы научимся писать собственные функции.
Чтобы начать объяснение того, чем полезны функции и как они работают синтаксически, я собираюсь объяснить сценарий, с которым столкнулся довольно часто: капитализация строк в Python.
Случай с заглавной строкой
У меня проблема с Python: строковые значения не имеют встроенного
метод капитализации строк. Или, точнее, у него есть два метода, ни
из которых делает именно то, что я хочу. Метод .title()
делает каждое слово заглавным
в строке:
>>> "это тест, Арлин". title() # каждое слово пишется с заглавной буквы «Это испытание, Арлин»
Метод .capitalize()
делает первую букву строки заглавной, но
преобразует остальную часть строки в нижний регистр:
>>> "это тест, Арлин".capitalize() # преобразует оставшуюся часть строки в нижний регистр «Это тест, Арлин»
Обратите внимание, как Arlene
в исходной строке преобразуется в arlene
. Не то, что я
вообще хотел! Чего я действительно хочу, так это сделать первую букву слова заглавной.
строку, а затем сохранить остальную часть строки в случае, если она была
изначально . Конечно, легко написать выражение, которое делает это:
>>> s = "это тест, Арлин" >>> s[0].upper() + s[1:] «Это испытание, Арлин»
Выражение s[0].upper() + s[1:]
делает именно то, что я хочу — при условии, что
строка, которую я хочу использовать, находится в переменной s
. Так здорово, правда? Я понял это. Всякий раз, когда я хочу использовать строку с заглавной буквы, я могу просто вспомнить, что
выражение, а затем перепишите выражение с соответствующей переменной.
Превратите это в функцию
Было бы неплохо, если бы вместо повторного ввода этого выражения всякий раз, когда я хотел написать строку с заглавной буквы, я мог написать что-то еще мнемоника — что-то похожее на встроенную функцию Python, например?
>>> print ucfirst("это тест, Арлин")
(здесь я использую ucfirst
как дань почтению почтенной Perl
функция.)
«Невозможно», — скажете вы. «Только великая клика дизайнеров языка Python может работают такие хитрости. Для нас, простых смертных, это запрещено. Запрещенный! я не буду терпеть эту ересь». Я не уверен, почему ты так говоришь. Вы действительно принимаете это программирование вещь серьезно.
В любом случае, оказывается, мы можем осуществить эту мечту! мы можем определяют собственные функции в Python. Определение функции выглядит так:
def your_function_name (параметры): заявления возвращаемое выражение
То есть определение функции состоит из:
- Ключевое слово
def
(сокращение от «define»), за которым следует имя вашей функции. Имя вашей функции может быть любым допустимым идентификатором Python. - Пара скобок после имени функции, которая представляет собой список из параметров к функции. (Мы поговорим об этом ниже.)
- Двоеточие после скобок.
- Возможно, некоторые операторы Python. (Эти операторы будут выполняться при вызове вашей функции.)
- Ключевое слово
возвращает
, за которым следует выражение. Это выражение — то, что функция оценит как при вызове.
Вот определение нашей функции ucfirst
, которая вычисляет копию
строка, которую вы ей передали, с заглавной буквой первого символа и остальными
pf строка осталась одна:
по умолчанию ucfirst(s): вернуть s[0]. upper() + s[1:]
Вы можете определить функцию в интерактивном интерпретаторе, просто набрав ее
in. (Подсказка изменится с >>>
на ...
, когда вы набираете тело
функцию.) Вот сеанс интерактивного интерпретатора, который показывает, как я определяю
функция ucfirst
, а затем использование ее в строке:
>>> def ucfirst(s): ... вернуть s[0].upper() + s[1:] ... >>> ucfirst("это тест, Арлин") «Это испытание, Арлин»
Как только мы определили функцию ucfirst
, мы можем вызвать ее, введя имя
функции, за которой следует пара круглых скобок. Когда вы вызываете функцию,
Python перестает выполнять операторы в обычном потоке программы и «прыгает»
в функцию и вместо этого выполняет операторы там. Как только это будет сделано
при выполнении этих операторов весь вызов функции фактически «заменяется»
со значением любого выражения справа от return
ключевое слово
внутри функции. Мы говорим, что функция «вычисляет» значение до
справа от ключевого слова возвращает
.
Когда Python начинает выполнять функцию, любые значения в скобках в
вызов функции (в примере выше строка это тест, Arlene
)
доступны функции как переменные, названные в функции
скобки определения. В случае функции ucfirst
значение это тест, Арлин
теперь доступен как переменная s
внутри
функция.
Использование функций в программе
Вот программа, которая определяет функцию ucfirst
, а затем использует ее для
распечатать каждую строку стандартного ввода с ее первым символом, преобразованным в
верхний регистр.
импорт системы деф ucfirst(s): вернуть s[0].upper() + s[1:] для строки в sys.stdin: строка = строка.strip() если длина (строка) > 0: напечатать ucfirst(строка) еще: линия печати
Программа: make_it_upper.py
Вот как это выглядит при использовании sea_rose.txt
в качестве входных данных:
$ Python make_it_upper. pyПодробнее о параметрах
Функция может иметь более одного параметра. Напишем функцию, которая принимает две строки в качестве параметров и возвращает первую половину одной добавленной строки ко второй половине второй строки. Мы назовем эту функцию
.половин
:>>> определение половин (слева, справа): ... левая_часть = левая[:len(левая)/2] ... правая_часть = правая [длина (правая)/2:] ... вернуть левая_часть + правая_часть ... >>> halfsies("Интерактивная Телекоммуникационная Программа", "Международный Блинный Дом") «Интерактивная телекомуза блинов»В этом случае параметры
left
иright
получают значенияInteractive Телекоммуникационная программа
иInternational House of Pancakes
, соответственно. Внутри функции есть несколько операторов для получения половины обеих строк, а затем функциявозвращает
результат объединение этих двух строк вместе с оператором+
.Параметры функций, конечно, не обязательно должны быть строками: их можно значения любого типа. Вот функция,
human_join
, который объединяет строки более «человеческим» способом (соединяет их запятой, а затем использует соединение между предпоследним и конечным элементами). Эта функция занимает два параметры: список строк, которые нужно объединить, и «союз», который будет использоваться для их объединения.>>> def human_join(части, соединение): ... если len(parts) == 1: ... вернуть запчасти[0] ... first_join = ', '.join(parts[:-1]) ... return first_join + " " + соединение + " " + parts[-1] ... >>> some_things = ["счеты", "колокольня", "кухонное искусство"] >>> human_join(some_things, "и") >>> human_join(["только это одно!"], "и") 'счеты, колокольня и кулинария' 'только это одно!'Здесь параметр
частей
функции должен быть списком. Этот функция также сразу же использует операторif
, чтобы проверить, список имеет только один элемент; если это так, он просто возвращает один элемент из списка без дальнейшей обработки. (Вы не можете объединить элементы из в конце концов, список содержит менее двух элементов.)Упражнение: измените функцию
human_join
так, чтобы она принимала третий параметр,oxford
, который определяет, будет ли функция использовать оксфордскую запятую.Значения по умолчанию для параметров
Одной из полезных функций Python является возможность иметь параметры функции с значения по умолчанию . Значение по умолчанию — это значение, присвоенное функциональному параметру. если для этого параметра в вызове функции не передается значение. Вы можете установить значение по умолчанию для параметра в определении функции, помещая знак равенства (
=
) после имени параметра, за которым следует желаемое значение использовать по умолчанию.Например, вот функция, которая генерирует названия ресторанов в соответствии с очень простой шаблон. Если вы не передаете параметры функции, она использует значение «Дом» по умолчанию:
>>> ресторан определения (здание = "Дом"): ... отдача "Международная" + корпус + "Блины" ... >>> restaurant() # возвращает "Международный блинный дом" >>> restaurant("Лачуга") # возвращает "Международная Блинная Лачуга" «Международный Дом Блинов» «Международная блинная лачуга»Более чем один параметр может иметь значение по умолчанию. Давайте расширим пример выше, чтобы сгенерировать названия ресторанов, содержащие как здание, так и продукт питания:
>>> def restaurant(building="Дом", foodtuff="Блины"): ... отдача "Международная" + строительная + "д" + продукты питания ... >>> restaurant() # возвращает "Международный блинный дом" >>> restaurant("Лачуга") # возвращает "Международная Блинная Лачуга" >>> restaurant("Дуплекс", "Кастрюли") # и т.д. «Международный Дом Блинов» «Международная блинная лачуга» «Международный дуплекс запеканок»Как показано в приведенном выше примере, если функция имеет более одного параметра со значением по умолчанию параметры, переданные в вызове функции, назначаются параметры в функции слева направо, т. е. во втором вызове выше, значение
Лачуга
присваивается параметруздание
, а непродукты питания
(который вместо этого использует значение по умолчанию).Именованные параметры
Python имеет еще одну полезную функцию, связанную с функциями, которая заключается в том, что вы можете укажите параметры по имени в вашем вызове функции. Основное преимущество этого заключается в том, что вам не нужно точно помнить, в каком порядке указывать параметры для конкретной функции. (Это особенно полезно для функций с много параметров.)
Чтобы воспользоваться этой функцией, включите имя нужного параметра. указать в функции вызов , за которым следует знак равенства (
=
), за которым следует значением, которое вы хотите передать для этого параметра. Для иллюстрации воспользуемсяресторан
функция из предыдущего примера.>>> def restaurant(building="Дом", foodtuff="Блины"): . .. отдача "Международная" + строительная + "д" + продукты питания ... >>> restaurant(building="Hangar") # Международный Ангар Блинов >>> restaurant(foodstuff="Quinoa") # Международный Дом Киноа >>> restaurant(foodstuff="Pineapple", building="Pyramid") # и т.д. и т.п. «Международный ангар блинов» «Международный дом киноа» «Международная пирамида ананаса»Как видно из приведенного выше примера, использование именованных параметров имеет несколько преимущества. Использование именованных параметров позволяет указать значения для конкретных параметры, оставляя другие параметры с их значениями по умолчанию, даже если они в порядке, который в противном случае воспрепятствовал бы этому. Именованные параметры также позволяют для указания параметров функций не по порядку.
Пример: генератор случайных названий ресторанов
Вот пример программы, использующей нашу простую функцию генератора названий ресторанов, наш
функция human_join
иucfirst
совместно сsowpods. txt
для создать список случайно сгенерированных абсурдных названий ресторанов.импорт системы импортировать случайный деф ucfirst(s): вернуть s[0].upper() + s[1:] ресторан def(building="Дом", foodtuff="Блины"): возврат "Международный" + строительство + "д" + продукты питания def human_join (части, соединение): если len(parts) == 1: возврат частей[0] first_join = ', '.join(части[:-1]) return first_join + " " + соединение + " " + части[-1] слова = список() для строки в sys.stdin: строка = строка.strip() слова.append(ucfirst(строка)) для я в диапазоне (10): number_to_sample = случайный.randrange(1, 5) вещи = random.sample (слова, number_to_sample) напечатать ресторан (random.choice (слова), human_join (вещи, «и»))Программа: restaurant_forever.py
Вот как это выглядит:
$ python restaurant_forever.pyИтак! Как показано здесь, есть несколько преимуществ разбиения вашей программы на части. в функции.
- Ваш код легче читать, особенно для тех, кто хочет прочитать ваш код и просто понять суть этого, но не обязательно более глубокие детали. (Этот человек, вероятно, будет , вы , через неделю после того, как вы написали код.)
human_join
гораздо понятнее, чем выписывать всю процедуру внутрина
цикл.- Вы сократили количество повторений. Как только вы определили функцию, вы можете используйте его в любом месте вашей программы, не вводя его снова.
- Вы изолировали места, где нужно внести изменения в вашу программу. Если вы использовали (например)
ресторан
функционирует более чем в одном месте в вашем коде, и вы хотел изменить его, чтобы он возвращал строки в форматеInternational [продукты питания] [здание]
(или что-то подобное), вам нужно будет внести это изменение в только одно место.Модули
Модуль Python — это файл, содержащий одно или несколько определений функций. Модули — это удобный способ объединения связанных функций, так что вы можете легко повторно использовать их между проектами или делиться ими с другими программистами.
Сделать модуль легко. Просто создайте файл с расширением
.py
и содержащий толькооператоров импорта
и определений функций. (Вы также можете определить простой переменные в модуле, если хотите.) Вот модуль с именемrestaurantutils
который содержит многие функции, над которыми мы работали в этой главе.деф ucfirst(s): вернуть s[0].upper() + s[1:] деф полуси (слева, справа): левая_часть = левая[:len(левая)/2] правая_часть = правая[длина(правая)/2:] вернуть левая_часть + правая_часть ресторан def(building="Дом", foodtuff="Блины"): возврат "Международный" + строительство + "д" + продукты питания def human_join (части, соединение): если len(parts) == 1: возврат частей[0] first_join = ', '.join(части[:-1]) return first_join + " " + соединение + " " + части[-1]Программа: restaurantutils. py
Обратите внимание, что если вы попытаетесь запустить этот файл, ничего не произойдет:
$ python restaurantutils.pyЭто потому, что модуль на самом деле ничего не делает — в нем нет кода. там, что работает со стандартным вводом или выводит что-то на экран. Его просто определения функций. Но как только мы создали файл, мы можем использовать те функции в другой программе или в интерактивном интерпретаторе. Как? С использованием
импорт
ключевое слово:>>> импортировать restaurantutils >>> print restaurantutils.restaurant(building="Embassy", foodtuff="Ganache") Международное посольство ГанашаМодуль, который вы создаете, ничем не отличается от любого другого модуля стандарта Python. библиотеку или любой другой модуль, который вы установили с
pip
(с оговоркой что он должен находиться в вашем текущем рабочем каталоге, чтобыimport
работал.) Вы можете использоватьиз X импортировать Y
, чтобы получить только одну конкретную функцию из модуль:>>> от restaurantutils импортировать половинки >>> print halfsies("Это были лучшие времена", "Это были худшие времена") Это было самое тяжелое времяИ вы можете использовать свой модуль в других программах. Вот
restaurant_forever.py
переписан для использования функций, определенных вrestaurantutils
:импорт системы импортировать случайный из restaurantutils импортировать ucfirst, restaurant, human_join слова = список() для строки в sys.stdin: строка = строка.strip() слова.append(ucfirst(строка)) для я в диапазоне (10): number_to_sample = случайный.randrange(1, 5) вещи = random.sample (слова, number_to_sample) напечатать ресторан (random.choice (слова), human_join (вещи, «и»))Программа: restaurant_forever_with_import.py
Вывод должен быть практически таким же:$ python restaurant_forever_with_import.pyМодули, которые также являются программами
Иногда бывает полезно сделать модули, которые и функционируют как скрипты, поэтому что вы можете
импортировать
их для использования содержащихся в них функций, но также запускать их из командной строки. Например, допустим, у нас есть модуль называетсяucfirst.py
, в котором определена только одна функция,ucfirst
функция из обсуждения выше.деф ucfirst(s): вернуть s[0].upper() + s[1:]Программа: ucfirst.py
Я могу использовать этот файл в интерактивном интерпретаторе так:
>>> из ucfirst импортировать ucfirst >>> print ucfirst("давай вынесем это наружу, Бифф") Давай вынесем это наружу, Бифф.Но было бы неплохо, если бы я мог использовать этот модуль напрямую в командной строке, сделать что-то полезное — например, взять каждую строку стандартного ввода и распечатайте его с заглавной первой буквы. С модулем как есть мы бы необходимо создать отдельную программу Python, которая импортирует модуль, а затем использовал функцию, которая является хлопот.
К счастью, есть небольшая хитрость, которую вы можете использовать:
if __name__ == '__main__'
. Если вы включите этот операторif
внутри своего модуля, то любой код в блокеif
будет выполняться только , когда ваш модуль запускается из командной строки (а не если этоимпорт
из интерактивного интерпретатора или другая программа на Python). Давайте изменим файлucfirst.py
, чтобы попробовать.деф ucfirst(s): вернуть s[0].upper() + s[1:] если __name__ == '__main__': импорт системы для строки в sys.stdin: строка = строка.strip() если длина (строка) > 0: напечатать ucfirst(строка) еще: линия печатиПрограмма: ucfirst.py
Теперь мы можем использовать модуль как отдельную программу, например:
$ python ucfirst.py… но работает и как модуль:
>>> из ucfirst импортировать ucfirst >>> print ucfirst("мои любимые имена Гертруда, Иосефат и Гэри") Мои любимые имена — Гертруда, Иосефат и Гэри.Вперед!
- Если вы хотите упаковать свои модули, чтобы другие люди могли их установить с помощью
pip
, прочтите «Автостопом по упаковке».- функций из Learn Python Hard Way
- Определение функций и модулей из документации Python
Лекция 4 — Использование функций и модулей — Информатика 1
Лекция 4 — Использование функций и модулей — Информатика 1 — Spring 2016 1.0 документацияЧтение
- Материал для этой лекции взят из Главы 4 учебника Практика Программирование .
- Сначала мы сосредоточимся на функциях для различных данных типы. Python уже поставляется со многими функциями, которые мы можем использовать для решить много интересных задач.
- Затем мы поговорим об использовании модулей, в том числе модулей, которые вы записывать.
- Мы вернемся ко всем этим понятиям в последующих лекциях.
Что мы уже узнали?
На данный момент мы изучили три основных типа данных: целое число, число с плавающей запятой и струны.
- Мы также изучили некоторые полезные функции, работающие со строками
(
len
) и преобразование между типами данных (int
,стр
)>>> name = "Нил Деграсс Тайсон" >>> Лен(имя) 19 >>> (имя+"!")*3 «Нил Деграсс Тайсон! Нил Деграсс Тайсон! Нил Деграсс Тайсон! ' >>> print "%s выступил на церемонии открытия %d" %(name,2010) Нил Деграсс Тайсон выступил на церемонии вручения дипломов в 2010 году.Функции, предоставляемые Python, называются встроенными функциями.
Мы увидим примеры этих функций и поэкспериментируем с их использовать в этом классе.
Строковые функции
Мы узнаем о многих других интересных и полезных строковых функциях. работает в течение всего семестра.
Вот еще несколько строковых функций:
>>> name = "Нил Деграсс Тайсон" >>> имя.нижнее() Нил Деграсс Тайсон >>> нижнее имя = имя. нижнее() >>> нижнее имя.верхнее() «НИЛ ДЕГРАС ТАЙСОН» >>> нижнее имя.capitalize() «Нил Деграсс Тайсон» >>> нижнее имя.название() «Нил Деграсс Тайсон» >>> "абракадабра".replace("br", "dr") адракадра >>> "абракадабра".replace("а", "") 'brcdbr' >>> "Нил Деграсс Тайсон".find(" ") 4 >>> "Нил Деграсс Тайсон".find("a") 9>>> "Нил Деграсс Тайсон".find("x") -1 >>> "Монти Пайтон".count("o") 2 >>> "aaabbbfsassassaaaa".strip("a") 'bbbfsassass'Все эти функции принимают одно или несколько значений и возвращают новое значение. Но называются они по-разному. Мы должны научиться, как каждый вызывается функция. Мы увидим причину различий позже в семестре.
>>> серия = "Сырная лавка" >>> эпизод.нижний() 'сырная лавка' >>> лен(эпизод) 11 >>> эпизод + "!" 'Сырная лавка!'Будьте осторожны, ни одна из этих функций не изменяет переменную, которую они применяются к.
Набор упражнений 1
Напишите код, который принимает строку в переменной с именем
, фразу
и печатает строку, в которой удалены все гласные.Возьмите строку в переменной с именем
имя
и повторите каждую буквыa
в именистолько раз, сколько
a
встречается в имени (предположим, что все слова в нижнем регистре).Например,
>>> имя = "Амос Итон" ## здесь находится ваш код >>> имя 'Аамос Иатон'Учитывая строку в переменной с именем
имя
, поменять местами все буквыи
ии
(только строчные версии). Предположим, что переменная содержит только буквы и пробелы.Подсказка: сначала замените каждую букву «а» на «1».
>>> name = "Политехнический институт Ренсселера" ## здесь находится ваш код >>> имя «Ранссалеарский политехнический институт»Предположим, вам дана строка, состоящая только из букв и пробелов. Напишите программа, которая преобразует строку в хэштег.
Например,
«Вещи, которые вы хотели бы знать на первом курсе»
становится'#ThingsYouWishYouKnewAsAFreshman'
.>>> word = 'Верните рой' ## здесь ваш код >>> слово ``'#Верните Рой'``Как насчет числовых функций
Объекты и встроенные функции
Все функции, которые мы видели до сих пор, встроены в ядро . Питон. Это означает, что эти функции доступны при запуске Питон.
Тип
>>> помощь (__builtins__), чтобы увидеть полный список.
Все переменные в Python являются объектами.
Объекты являются абстракциями:
- Каждый объект определяет организацию и структуру данных, которые они хранить.
- У них есть операции/функции — мы называем их методами — применяется для доступа и управления этими данными.
Часто функции применяются к определенному типу объекта, например к строке. Мы видели эти функции для строк. Их вызов принимает вид:
.переменная.функция(аргументы)Например:
>>> b = 'доброе утро' >>> б. найти('о', 3)Также работает:
значение.функция(аргументы)как в
>>> 'доброе утро'.find('o', 3)Вы можете увидеть все функции которые также применяются к объектному типу со справкой. Попробуйте:
>>> помощь(стр)Модули
Модули представляют собой наборы функций и констант, которые предоставить дополнительную мощность программам Python.
Некоторые модули поставляются с Python, но не загружаются автоматически. Например
математический модуль
.Сначала необходимо установить другие модули. Когда мы установили программное обеспечение в Лаборатории 0 мы установили ряд внешних модулей, таких как
PIL
для изображений, которые мы будем использовать позже в семестр.Чтобы использовать функцию в модуле, сначала вы должны загрузить ее в свой программа, использующая
, импортирует
. Давайте посмотрим на математический модуль:
>>> импортировать математику >>> math.sqrt(5) 2.2360679774997898 >>> math.trunc(4.5) 4 >>> math.ceil(4.5) 5,0 >>> math.log(1024,2) 10,0 >>> math.pi 3.1415926535897931Мы можем получить объяснение того, какие функции и переменные предоставляется в модуле с помощью
help
function>>> импортировать математику >>> помощь(математика)Набор упражнений 2
Напишите программу на Python, которая вычисляет площадь круга. Ваш программа должна использовать математический модуль. Помните, формула
Что происходит, когда мы набираем
импорт математики математика.пи = 3, а затем используйте
math.pi
?Различные способы импорта
Способ импорта модуля определяет используемый синтаксис содержимое модуля в вашей программе.
Мы можем импортировать только набор функций и переменных:
>>> из математического импорта sqrt,pi >>> пи 3. 141592653589793 >>> кв(4) 2.0Или мы можем дать модулю новое имя в нашей программе:
>>> импортировать математику как m >>> м.пи 3.141592653589793 >>> м.кв.(4) 2.0Оба эти метода помогают нам различать функцию
sqrt
и данныеpi
, определенные в математическом модуле из одноименную функцию (если она у нас есть) в нашей программе.Мы также можем сделать это (что НЕ рекомендуется!):
>>> из математического импорта *Теперь между функциями математического модуля нет разницы в именах. и наш. Так как это приводит к путанице при появлении одного и того же имени в двух разных модулях его почти всегда избегают.
Структура программы
Мы рассмотрели несколько компонентов программы:
импорт
, комментарии и собственный код, включая ввод, операторы вычисления и вывода. Мы добавим больше компонентов, например, наши собственные функции в течение семестра.Вы должны организовать эти компоненты в ваших программных файлах, чтобы сделать их легко увидеть ход программы
Мы будем использовать следующее соглашение для заказа программы комплектующие:
- начальный комментарий, поясняющий назначение программы,
- все
импорт
операторов,- затем все переменные и команды ввода,
- затем все вычисления,
- наконец-то все выводятся.
В остальной части класса мы сначала рассмотрим следующее структуру программы, а затем написать нашу собственную программу для вычисления длина гипотенузы треугольника того же формата.
""" Автор: CS-1 Staff Назначение: Эта программа считывает радиус и высоту цилиндра и выводит его площадь и объем. """ импортировать математику print "Вычисление площади и объема цилиндра" радиус = поплавок (raw_input («Введите радиус ==>»)) высота = поплавок (raw_input («Введите высоту ==>»)) площадь = 2*math.