Друкарня від WE.UA

Всіх вітаю! У цій невеличкій статті ми розберемо вбудовані функції 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. Також ми розглянули нехай й прості, але все ж приклади використання цих вбудованих функцій. Сподіваюся, що даний матеріал вам сподобався! Дякую за увагу!

Статті про вітчизняний бізнес та цікавих людей:

Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Magnifique numérique
Magnifique numérique@magnifiquedigitalworld

Прекрасний цифровий світ

96Довгочити
2KПерегляди
28Підписники
Підтримати
На Друкарні з 14 липня 2025

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

  • Клас Timer у модулі threading в Python

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

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

    Програмування
  • Відтепер для застосунків на Base44 можна додавати push-повідомлення

    Нещодавно компанія-розробник платформи Base44, яка дозволяє створювати застосунки за допомогою ШІ, заявила, що відтепер до своїх застосунків можна підключати push-повідомлення.

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

    It Новини
  • Оновлення проєкту Magnifique numérique

    Відтепер Magnifique numérique — це не лише про статті з програмування, а й новини про IT та технології. Це означає, що відтепер контент стане різноманітнішим.

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

    Оновлення

Це також може зацікавити:

  • Java. Logging

    Наприклад, метрикою може бути кількість викликів до бази даних або кількість отриманих запитів за секунду (rps — requests per second). Ці метрики, коли вони збираються протягом часу, можуть допомогти зрозуміти поведінку та продуктивність додатку.

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

    Програмування
  • Браузер швидкий існує

    один із найпопулярніших веббраузерів для ПК та Android. Він вирізняється високою швидкістю роботи, широкою підтримкою розширень, синхронізацією даних між пристроями та сучасними засобами захисту конфіденційності.

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

    Корисні Програми
  • Світ став занадто складний… через Google. Отримання коду в смс.

    Це буде першою із серії статей які мають на меті дві цілі: показати складність сучасного світу програмування, та розважити майже всіх читачів, хто не має відношення до розробки на Android, хто має відношення - вибачайте, вас очікує масивний жопний біль.

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

    Android

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

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

Це також може зацікавити:

  • Java. Logging

    Наприклад, метрикою може бути кількість викликів до бази даних або кількість отриманих запитів за секунду (rps — requests per second). Ці метрики, коли вони збираються протягом часу, можуть допомогти зрозуміти поведінку та продуктивність додатку.

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

    Програмування
  • Браузер швидкий існує

    один із найпопулярніших веббраузерів для ПК та Android. Він вирізняється високою швидкістю роботи, широкою підтримкою розширень, синхронізацією даних між пристроями та сучасними засобами захисту конфіденційності.

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

    Корисні Програми
  • Світ став занадто складний… через Google. Отримання коду в смс.

    Це буде першою із серії статей які мають на меті дві цілі: показати складність сучасного світу програмування, та розважити майже всіх читачів, хто не має відношення до розробки на Android, хто має відношення - вибачайте, вас очікує масивний жопний біль.

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

    Android