функции. Программирование на языке Python Функции Что такое функция
Скачать 113.7 Kb.
|
Программирование на языке PythonФункцииЧто такое функция?Функция – это вспомогательный алгоритм, который возвращает значение-результат (число, символ или объект другого типа). Задача. Написать функцию, которая вычисляет сумму цифр числа. Алгоритм: сумма = 0 пока n != 0: сумма += n % 10 n = n // 10 Сумма цифр числа# основная программа print ( sumDigits(12345) ) def sumDigits( n ): sum = 0 while n!= 0: sum += n % 10 n = n // 10 return sum return sum передача результата Использование функцийx = 2*sumDigits(n+5) z = sumDigits(k) + sumDigits(m) if sumDigits(n) % 2 == 0: print ( "Сумма цифр чётная" ) print ( "Она равна", sumDigits(n) ) Функция, возвращающая целое число, может использоваться везде, где и целая величина! ! Одна функция вызывает другую: def middle ( a, b, c ): mi = min ( a, b, c ) ma = max ( a, b, c ) return a + b + c - mi - ma вызываются min и max Что вычисляет? ? Задачи«A»: Напишите функцию, которая находит наибольший общий делитель двух натуральных чисел. Пример: Введите два натуральных числа: 7006652 112307574 НОД(7006652,112307574) = 1234. «B»: Напишите функцию, которая определяет сумму цифр переданного ей числа. Пример: Введите натуральное число: 123 Сумма цифр числа 123 равна 6. Задачи«C»: Напишите функцию, которая «переворачивает» число, то есть возвращает число, в котором цифры стоят в обратном порядке. Пример: Введите натуральное число: 1234 После переворота: 4321. Как вернуть несколько значений?def divmod ( x, y ): d = x // y m = x % y return d, m d – частное, m – остаток a, b = divmod ( 7, 3 ) print ( a, b ) # 2 1 q = divmod ( 7, 3 ) print ( q ) # (2, 1) (2, 1) кортеж – набор элементов Задачи«A»: Напишите функцию, которая переставляет три переданные ей числа в порядке возрастания. Пример: Введите три натуральных числа: 10 15 5 5 10 15 «B»: Напишите функцию, которая сокращает дробь вида M/N. Пример: Введите числитель и знаменатель дроби: 25 15 После сокращения: 5/3 Задачи«C»: Напишите функцию, которая вычисляет наибольший общий делитель и наименьшее общее кратное двух натуральных чисел. Пример: Введите два натуральных числа: 10 15 НОД(10,15)=5 НОК(10,15)=30 Логические функцииЗадача. Найти все простые числа в диапазоне от 2 до 100. for i in range(2,1001): if i - простое : print ( i ) i - простое isPrime(i) функция, возвращающая логическое значение (True/False) Функция: простое число или нет?Какой алгоритм? ? def isPrime ( n ): k = 2 while k*k <= n and n % k != 0: k += 1 return (k*k > n) return (k*k > n) if k*k > n: return True else: return False Логические функции: использованиеn = int ( input() ) while isPrime(n): print ( n, "– простое число" ) n = int ( input() ) Функция, возвращающая логическое значение, может использоваться везде, где и логическая величина! ! Задачи«A»: Напишите логическую функцию, которая определяет, является ли переданное ей число совершенным, то есть, равно ли оно сумме своих делителей, меньших его самого. Пример: Введите натуральное число: 28 Число 28 совершенное. Пример: Введите натуральное число: 29 Число 29 не совершенное. Задачи«B»: Напишите логическую функцию, которая определяет, являются ли два переданные ей числа взаимно простыми, то есть, не имеющими общих делителей, кроме 1. Пример: Введите два натуральных числа: 28 15 Числа 28 и 15 взаимно простые. Пример: Введите два натуральных числа: 28 16 Числа 28 и 16 не взаимно простые. Задачи«С»: Простое число называется гиперпростым, если любое число, получающееся из него откидыванием нескольких цифр, тоже является простым. Например, число 733 – гиперпростое, так как и оно само, и числа 73 и 7 – простые. Напишите логическую функцию, которая определяет, верно ли, что переданное ей число – гиперпростое. Используйте уже готовую функцию isPrime, которая приведена в учебнике. Пример: Введите натуральное число: 733 Число 733 гиперпростое. Пример: Введите натуральное число: 19 Число 19 не гиперпростое. |