Всіх вітаю! У цій невеличкій статті ми розберемо вбудовані функції min() та max(). Насправді дуже прості суті цих функцій, тож оглянемо кожну з них по черзі.

Функція max()

Функція max() приймає ітерований тип даних (списки, кортежі, множини) та знаходить елемент із максимальним значенням у ньому.

Ось таким чином ми можемо її застосувати:

data = [37, 25, 64, 102, 0, -12, 90, 81, 4]

max_value = max(data)
print("Max value:", max_value)
Max value: 102

Також max() приймає параметр key, у якому ми можемо вказати функцію за якою будемо знаходити найбільше значення.

Ось приклад такої реалізації у коді:

import math

data = [37, 25, 64, 102, 0, -12, 90, 81, 4]

max_value = max(data, key=math.cos)
print(max_value)
Max value: 0

У даному випадку ми беремо від кожного елементу списку косинус і за таким принципом визначаємо найбільший елемент у списку. Як бачимо, тепер результат вийшов зовсім іншим.

Тепер візьмемо синус замість косинуса. У результаті маємо:

data = [37, 25, 64, 102, 0, -12, 90, 81, 4]

max_value = max(data, key=math.sin)
print("Max value:", max_value)
Max value: 102

Також ми можемо працювати з рядками. У такому разі найбільше значення буде те, яке має більший Unicode код. Ось приклад:

symbols = ["A", "B", "C", "D", "E"]

max_value = max(symbols)
print("Max value:", max_value)
Max value: E

У даному випадку E має найбільший серед усіх іншим елементів Unicode код. У цьому легко переконатися за допомогою функції ord(), яка приймає рядок із символом та повертає його позицію у Unicode. Ми можемо перевірити кожен елемент на їхню позицію та вивести це у консоль:

symbols = ["A", "B", "C", "D", "E"]

for values in symbols:
    print(f"{values}: {ord(values)}")
A: 65
B: 66
C: 67
D: 68
E: 69

Як бачимо, E дійсно найбільше значення тут.

Також наведемо приклад зі словами у списку. У такому випадку функції max() визначає найбільше значення при порівнянні позиції кожної літери слів. Тобто, якщо літери у слові мають більші значення за таблицею Unicode, то це слово буде вважатися більшим. Ось так вийшло у нас:

symbols = ["Same", "Intellect", "Cold", "Straight", "Food"]

max_value = max(symbols)
print("Max value:", max_value)
Max value: Straight

Як max() визначила, що Straight найбільше? Давайте розберемося. Отже, спочатку вона порівняла перші літери усіх слів, а коли знайшла серед них найбільше за позицією у Unicode, просто почала порівнювати інші літери у словах Same та Straight. Літера t у слові Straight виявилася більшою за a, тому слово Straight є найбільшим.

Ми можемо це перевірити, якщо пройдемося по кожній літері у словах зі списку:

symbols = ["Same", "Intellect", "Cold", "Straight", "Food"]

max_value = max(symbols)
print("Max value:", max_value)

print(f"\n"
      f"Word: {symbols[0]}")

for values in symbols[0]:
    print(f"{values}: {ord(values)}")

print(f"\n"
      f"Word: {symbols[1]}")

for values in symbols[1]:
    print(f"{values}: {ord(values)}")

print(f"\n"
      f"Word: {symbols[2]}")

for values in symbols[2]:
    print(f"{values}: {ord(values)}")

print(f"\n"
      f"Word: {symbols[3]}")

for values in symbols[3]:
    print(f"{values}: {ord(values)}")

print(f"\n"
      f"Word: {symbols[4]}")

for values in symbols[4]:
    print(f"{values}: {ord(values)}")
Max value: Straight

Word: Same
S: 83
a: 97
m: 109
e: 101

Word: Intellect
I: 73
n: 110
t: 116
e: 101
l: 108
l: 108
e: 101
c: 99
t: 116

Word: Cold
C: 67
o: 111
l: 108
d: 100

Word: Straight
S: 83
t: 116
r: 114
a: 97
i: 105
g: 103
h: 104
t: 116

Word: Food
F: 70
o: 111
o: 111
d: 100

Як бачимо, слова Same та Straight починаються з S, а ця літера має код 83. Саме тому наступним кроком max() почала порівнювати літери a та t, де t виявилася більшим (97 < 116).

Функція min()

Функція min() приймає ітерований тип даних та знаходить елемент із мінімальним значенням у ньому.

Використовуємо її так само як і попередню функцію:

data = [37, 25, 64, 102, 0, -12, 90, 81, 4]

min_value = min(data)
print("Min value:", min_value)
Min value: -12

Також приклади з параметром key:

data = [37, 25, 64, 102, 0, -12, 90, 81, 4]

min_value = min(data, key=math.exp)
print("Min value:", min_value)
Min value: -12

У цьому прикладі ми визначили найменше значення за експонентою. Тобто брали експоненту з кожного елемента зі списку. Тепер можемо прибрати від’ємні значення та знайти найменше значення за факторіалом, як у цьому прикладі:

data = [37, 25, 64, 102, 0, 12, 90, 81, 4]

min_value = min(data, key=math.factorial)
print("Min value:", min_value)
Min value: 0

А тепер спробуємо знайти найменшезначення серед нашого списку з рядками:

symbols = ["A", "B", "C", "D", "E"]

min_value = min(symbols)
print("Min value:", min_value)
Min value: A

Тепер знайдемо найменше значення серед слів:

symbols = ["Same", "Intellect", "Cold", "Straight", "Food"]

min_value = min(symbols)
print("Min value:", min_value)
Min value: Cold

Приклад використання обох функцій у програмі

Тепер думаю настав час розглянути приклад викоирстання обох функцій на у більш цікавому коді. Ось тут повна програма:

import random

data = []


def data_creation():
    while len(data) < 10:
        random_element = random.randint(-10, 100)
        data.append(random_element)

        if len(data) >= 10:
            break

    print("Created data:", data)


def data_analysis():
    max_value = max(data)
    min_value = min(data)
    middle_value = max_value + min_value / 2

    print("Max value:", max_value)
    print("Min value:", min_value)
    print("Middle value:", middle_value)


data_creation()
data_analysis()
Created data: [46, 97, 16, 53, 22, 20, 20, 74, 70, 53]
Max value: 97
Min value: 16
Middle value: 105.0

Отже, пропоную почати поступовий розбір коду. Почнемо з того, шо напочатку ми імпортуємо модуль random:

import random

Далі створюємо поки що пустий словник під назвою data:

data = []

1. Щодо функції data_creation().

Створюємо цикл while, у якому ставимо умову, щоб довжина списку data повинна бути менше 10:

while len(data) < 10:

Генеруємо випадкове число від -10 до 100 та додаємо його у список data:

random_element = random.randint(-10, 100)
data.append(random_element)

Якщо довжина списку data більше або дорівнює 10, то ми зупиняємо цикл:

if len(data) >= 10:
    break

Виводимо список з випадково згенерованих чисел:

print("Created data:", data)

2. Щодо функції data_analysis().

Визначаємо найбільше та найменше значення списку data:

max_value = max(data)
min_value = min(data)

Обчислюємо середнє арифметичне значення між найбільшим та найменшим елементами списку:

middle_value = max_value + min_value / 2

Виводимо значення:

print("Max value:", max_value)
print("Min value:", min_value)
print("Middle value:", middle_value)

Наприкінці програми викликаємо створені функції:

data_creation()
data_analysis()

На цьому все. Це був останній приклад, який ми розібрали.

Висновок

У цій статті ми розібрали функції max() та min() у Python. Також ми розглянули нехай й прості, але все ж приклади використання цих вбудованих функцій. Сподіваюся, що даний матеріал вам сподобався! Дякую за увагу!

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Mystique Lord
Mystique Lord@nocturnal_reader

Нічний читач

219Прочитань
17Автори
7Читачі
На Друкарні з 14 липня

Більше від автора

  • Комплексні числа у Python

    Всіх вітаю! У цій невеличкій статті ми дізнаємося як створювати комплексні числа та як працювати з ними. Ми роглянемо два способи створення комплексних чисел та оглянемо декілька функцій з модуля, котрий спеціалізується на роботі з ними.

    Теми цього довгочиту:

    Програмування
  • Функції isinstance() та issubclass() у Python

    Всіх вітаю! У цьому матеріалі ми розберемо суть вбудованих функцій isinstance() та issubclass() та як ними користуватися у коді.

    Теми цього довгочиту:

    Програмування
  • Обчислення похибок вимірювань у Python

    Всіх вітаю! У сьогоднішній статті ми створимо програму для обчислення похибок, а саме абсолютної та відносної. Також детально розглянемо код та протестуємо його.

    Теми цього довгочиту:

    Програмування

Вам також сподобається

  • Java. Трішки про JVM та graceful shutdown

    У сучасних Java-додатках важливо забезпечити не лише високу продуктивність, але й коректне завершення роботи. Тому розглянемо основні потоки JVM, процес graceful shutdown, використання класу Runtime та механізму shutdown hooks для ефективного завершення роботи програм.

    Теми цього довгочиту:

    Java
  • Secure networking. Deep Dive

    Глибоке занурення в протоколи TLS/SSL та інфраструктуру відкритих ключів (PKI). Основні поняття, процес встановлення захищеного з'єднання, роль сертифікатів та ланцюжка довіри

    Теми цього довгочиту:

    Security
  • PHP 8.3: Що нового?

    Це наступний великий реліз мови програмування PHP. Його випуск заплановано на 2023 рік. Сьогодні ми разберемо нові функціі.

    Теми цього довгочиту:

    Програмування

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Вам також сподобається

  • Java. Трішки про JVM та graceful shutdown

    У сучасних Java-додатках важливо забезпечити не лише високу продуктивність, але й коректне завершення роботи. Тому розглянемо основні потоки JVM, процес graceful shutdown, використання класу Runtime та механізму shutdown hooks для ефективного завершення роботи програм.

    Теми цього довгочиту:

    Java
  • Secure networking. Deep Dive

    Глибоке занурення в протоколи TLS/SSL та інфраструктуру відкритих ключів (PKI). Основні поняття, процес встановлення захищеного з'єднання, роль сертифікатів та ланцюжка довіри

    Теми цього довгочиту:

    Security
  • PHP 8.3: Що нового?

    Це наступний великий реліз мови програмування PHP. Його випуск заплановано на 2023 рік. Сьогодні ми разберемо нові функціі.

    Теми цього довгочиту:

    Програмування