DEV Community

Cover image for Функції

Функції

  1. Невід'ємна частина програми і/або мови програмування.
  2. Розбивають програму на під-програму.
  3. Запобігають повторному написанню того чи іншого коду.

Top comments (6)

The discussion has been locked. New comments can't be added.
Collapse
 
gr555 profile image
Григорій Лізанець • Edited

Ще такий варіант, додадючий функції універсальності, коли кортедж *args - невідомо, скільки аргументів ми передаватимемо:

def sum_of_squares(*args):

    return_value = 0

    for num in args:
        return_value += num**2

    return return_value


print(sum_of_squares(2, 2, 3))
Enter fullscreen mode Exit fullscreen mode

-Виведе 17

Collapse
 
gr555 profile image
Григорій Лізанець • Edited

Така собі функція-конструктор домашньої тваринки:

def build_pet(species, name, **pet_info):

    pet = {}
    pet['species'] = species
    pet['name'] = name

    for key, value in pet_info.items():
        pet[key] = value

    return pet


my_pet = build_pet('Dvorova', 'Jessy', color='Sun-fire', age=7)

print(my_pet)
Enter fullscreen mode Exit fullscreen mode

-Виведе словник з ключ-значеннями песика.

Collapse
 
gr555 profile image
Григорій Лізанець • Edited

А так ми виведемо ялинку з доларів:

def print_tree(n):

    for i in range(n):

        for j in range(n-i):
            print(' ', end='')

        for k in range(2*i + 1):
            print('$', end='')

        print()


print_tree(7)
Enter fullscreen mode Exit fullscreen mode

-Вийде щось таке:

        $
       $$$
      $$$$$
     $$$$$$$
    $$$$$$$$$
   $$$$$$$$$$$
  $$$$$$$$$$$$$
Enter fullscreen mode Exit fullscreen mode
Collapse
 
gr555 profile image
Григорій Лізанець • Edited

Числа Фібоначчі в список:

def fib_func(count):

    fib_list = []

    while len(fib_list) < 10:

        if len(fib_list) < 2:
            fib_list.append(count)
            count += 1
        else:
            fib_list.append(fib_list[-1] + fib_list[-2])

    return print(fib_list)


fib_func(0)
Enter fullscreen mode Exit fullscreen mode

Маю надію, що це можна зробити простіше.. згодом гляну.

Collapse
 
gr555 profile image
Григорій Лізанець • Edited

Цю домашку хочу зарефакторити

def make_operation(sign, *args):

    res = args[0]

    if type(sign) == str and (sign == '+' or sign == '-' or sign == '*') and len(args) > 1:

        for i in args[1:]:
            if type(i) == int:
                if sign == '+':
                    res += i
                elif sign == '-':
                    res -= i
                elif sign == '*':
                    res *= i
            else: 
                return print('Invalid input parameter') 

    else: 
        return print('Invalid input parameter')

    return print(res)


make_operation('/', 5, 7, -12)
Enter fullscreen mode Exit fullscreen mode
Collapse
 
gr555 profile image
Григорій Лізанець
def say_hello(name):
    print(f'Hello, I'm {name}.')


say_hello('Peter')
Enter fullscreen mode Exit fullscreen mode

-Виведе 'Hello, I'm Peter.'
Найкраще, коли функція має тільки одне застосування, а її ім'я це досконально відображає.