Python_практикум. Методическое пособие для практических и лабораторных работ для студентов направлений подготовки
Скачать 267 Kb.
|
6. ФункцииФункцией называют именованный фрагмент программного кода, к которому можно обратиться из другого места вашей программы. Как правило, функции создаются для работы с данными, которые передаются ей в качестве аргументов, также функция может формировать некоторое возвращаемое значение. Для создания функции используется ключевое слово def, после которого указывается имя и список аргументов в круглых скобках. Тело функции выделяется также как тело условия (или цикла): четырьмя пробелами. Таким образом самая простая функция, которая ничего не делает, будет выглядеть так. def fun (): pass Возврат значения функцией осуществляется с помощью ключевого слова return, после которого указывается возвращаемое значение. Пример функции возвращающей единицу представлен ниже. def fun(): return 1 Во многих случаях функции используют для обработки данных. Эти данные могут быть глобальными, либо передаваться в функцию через аргументы. Список аргументов определяется на этапе реализации и указывается в круглых скобках после имени функции. Например, операцию сложения двух аргументов можно реализовать вот так. def summa(a, b): return a + b Вызвав эту функцию таким образом: print(summa( 3 , 4 )) получим 7 Функция в программе должна быть определена до ее вызова. Для удобства работы рекомендуется все функции помещать в начало файла. Допускается вызов функцией самой себя. Такой прием называется рекурсией: def rec_func(n): if n==0: return … else: return rec_func(n-1) Рассмотрим еще два примера использования функции: вычисление числа Фибоначчи с использованием рекурсии и вычисление факториала с использованием цикла. Напомним, что последовательность Фибоначчи устроена следующим образом: первые два ее члена (нулевой и первый) равны соответственно 0 и 1. Каждый следующий член, начиная со второго, равен сумме двух предыдущих. Таким образом, начало последовательности Фибоначчи выглядит так: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 и т.д. Вычисление числа Фибоначчи. def fibb(n): if n == 0 : return 0 elif n == 1 : return 1 elif n == 2 : return 1 else : return fibb(n - 1 ) + fibb(n - 2 ) Вызвав эту функцию с параметром 10, print (fibb( 10 )) получим десятый член последовательности Фибоначчи 55 Вычисление факториала. def factorial(n): prod = 1 for i in range ( 1 , n + 1 ): prod *= i return prod Вызвав эту функцию с параметром 5, print (factorial( 5 )) получим значение 5! 120 Задания Напишите функцию с параметром n, которая вычисляет и возвращает сумму квадратов натуральных чисел от 1 до n. Проверьте ее работу на нескольких значениях входных параметров. Напишите функцию для решения квадратного уравнения. Входные параметры – коэффициенты уравнения. Возвращаемый результат – список из двух корней [x1, x2] или пустое значение None, если уравнение не имеет корней. Напишите функцию вычисления n-го члена последовательности Фибоначчи без использования рекурсии. Напишите функцию вычисления n! с использованием рекурсии. 7. Строки ( тип данных str)Большое число задач связано с обработкой не числовых, а текстовых (строковых) данных. Для этого в языке Python имеется тип данных str. Преобразование числа в строку выполняет функция str(число). Обратные преобразования: int(строка) преобразует строку в целое число, float(строка) – в вещественное число. Возможно возникновение исключения. Ввод строки выполняется командой string = input(). Строка состоит из символов, каждый из которых имеет порядковый номер, нумерация начинается с нуля. В этом плане строки похожи на списки. Все символы строки можно перебрать с помощью цикла for: for symbol in string: действия с symbol например, код string = "пример " for symbol in string: print(symbol) напечатает все символы строки в столбик. Некоторые встроенные функции обработки строк приведены ниже:
Больше о строках см.[2]-[4]. Задания Напишите программу, которая подсчитает количество букв «а» во введенной строке. Напишите программу, которая вводит строку и формирует строку, содержащую столько символов «*», сколько символов во введенной строке. Сформированную строку вывести. Например, вводится «мама», выводится «****». Дополните программу из предыдущего задания, чтобы пробелы во введенной строке не заменялись на «*». Например, вводится «мама мыла раму», выводится «**** **** ****». Дополните программу из предыдущего задания, чтобы сохранялись не только пробелы, но и все небуквенные символы. Например, вводится «Мама, ты мыла раму?», выводится «****, **** ****?». Напишите программу, которая проверяет пароль на сложность. Проверку пароля следует проводить по таким критериям: длина должна быть не менее 5 символов; могут присутствовать только буквы латинского алфавита в верхнем и нижнем регистре и цифры; должны присутствовать и буквы, и цифры. Напишите программу, которая вводит строку из нескольких слов, разделенных пробелами, и создает список входящих в нее слов (используйте метод split) |