Практичне завдання до уроку
Поняття підпрограми. Функції.
Функція – це засіб (спосіб) групування фрагментів програмного коду таким чином, що цей програмний код може викликатись багатократно з допомогою використання імені функції.
Загальний запис функції:
тут
Визначення функції з допомогою інструкції def може бути реалізовано всередині інших інструкцій, наприклад, всередині інструкції if.
Виклик функції
Після того, як функція створена (оголошена), можна здійснювати її виклик. Виклик функції здійснюється з допомогою її імені та переліку параметрів.
Приклад1.
def dob(a, b):
return a*b
print(dob(3,5))
Результат: 15
Приклад1.1
def dob(a, b):
return a*b
a=int(input('а='))
b=int(input('b='))
d=dob(a,b)
print('d=',d)
Результат:
Приклад3. Функція без параметрів
# Функції без параметрів.
# Оголосити функцію з іменем Hello(),
# яка виводить "Hello world!" на екран.
def Hello():
print("Hello world!")
# Викликати функцію Hello() в циклі while
i=0
while i<3:
Hello()
i=i+1
Результат:
Приклад 4.
Функція, яка отримує параметр та повертає результат. Функція здійснює реверсування рядка.
# Функція, яка реверсує рядок
def Reverse(s):
s2 = ''
i = len(s)-1
while i>=0:
s2 = s2 + s[i]
i = i-1
return s2
# Виклик функції Reverse()
s1 = "abcdef"
s2 = Reverse(s1) # s2 = 'fedcba'
print("s2 = ", s2)
Результат:
Приклад5.
# Функція, яка реверсує рядок
def Reverse(s):
s2 = ''
i = len(s)-1
while i>=0:
s2 = s2 + s[i]
i = i-1
return s2
# Виклик функції Reverse()
s1 = input('s1=')
s2 = Reverse(s1) # s2 -результат
print("s2 = ", s2)
Визначення функції з допомогою засобу def може бути вкладене в іншу інструкцію, наприклад, інструкцію if. У цьому випадку виникає альтернатива при виконанні програми.
Приклад. У прикладі на основі введеного значення n створюється функція Fn(), яка обчислює тригонометричний вираз за наступним правилом:
Потім ця функція викликається для заданого значення x.
# За заданим значенням n визначити функцію Fn(),
# яка обчислює:
# sin(x)*cos(x), якщо n==1
# sin(x*x)+cos(x), якщо n==2
# 1-sin(x), в іншому випадку
# Імпортувати математичну бібліотеку
import math
# Ввести значення n
n = int(input('n = '))
x = float(input('x = '))
# Визначити код функції Fn()
if (n==1):
def Fn(x):
print("n==1. res = sin(x)*cos(x).")
return math.sin(x)*math.cos(x)
else:
if (n==2):
def Fn(x):
print("n==2. res = sin(x*x)+cos(x)")
return math.sin(x*x)+math.cos(x)
else:
def Fn(x):
print("n==3. res = 1-sin(x)")
return 1-math.sin(x)
# Виклик функції Fn()
res = Fn(x)
print("res = ", res)
Результат:
Всередині функції можуть бути оголошені локальні змінні. Локальна змінна – це ім’я (об’єкт), що є доступне тільки всередині визначення функції (інструкції def). Локальна змінна існує тільки під час виконання функції.
У тілі будь-якої функції локальні змінні визначаються на основі наступних ознак:
Приклад. У прикладі створюється функція SquareTriangle(), яка обчислює площу трикутника за його сторонами. Довжини сторін трикутника з іменами a, b, c є вхідними параметрами функції. Якщо з a, b, c неможливо утворити трикутник, то функція повертає значення None.
Потім відбувається виклик функції SquareTriangle() та обробка результату повернення з функції.
# Обчислити площу трикутника на основі його довжин a,b,c
# Імпортувати математичну бібліотеку
import math
def SquareTriangle(a,b,c):
if (((a+b)<c) or ((b+c)<a) or ((a+c)<b)):
return None
else:
p = (a+b+c)/2 # це є локальна змінна p
s = math.sqrt(p*(p-a)*(p-b)*(p-c)) # локальна змінна s
return s
# Використання функції SquareTriangle()
s = SquareTriangle(5,4,5)
if (s==None):
print("The values of a, b, c is incorrect.")
else:
print("s = ", s)
Результат:
s = 9.16515138991168