Перейти до основного вмісту
Модуль 4 · Урок 4 із 416/36 у курсі~10 min
Модульні уроки (4/4)

Перетворення типів

Python строго типізований: він ніколи не додає рядок до числа, якщо ви не додасте його скажи так. Для переходу від одного типу до іншого ви використовуєте функції конструктора: int(), float(), str(), bool(), list(), tuple(), set().

Python
int("42")        # 42
float("3.14")    # 3.14
str(42)          # '42'
list("abc")      # ['a', 'b', 'c']
tuple([1, 2])    # (1, 2)
set([1, 1, 2])   # {1, 2}

int() з рядками

int("42") працює; int("42.5") підвищує ValueError. Для десяткових рядків, спочатку пройдіть через float: int(float("42.5")) → 42 (урізає, не круглий).

Python
int("42")         # 42
int("  42  ")     # 42        (strip automatico degli spazi)
int("42.5")       # ValueError
int(float("42.5"))  # 42
int("ff", 16)     # 255       (base esplicita)

float() з рядками

Приймає десяткову та наукову систему числення.

Python
float("3.14")      # 3.14
float("1e3")       # 1000.0
float("inf")       # inf
float("nan")       # nan

str(): «дружнє» перетворення

str(x) внутрішньо викликає x.__str__(), щоб отримати «людське» представлення. Існує також repr(x) для представлення «відладчика», часто більше явні (з лапками для рядків тощо).

Python
str(3.14)       # '3.14'
str([1, 2])     # '[1, 2]'
str(True)       # 'True'

bool() і правдивість

bool(x) повертає False лише для фальшивих значень Python:

  • False, None
  • нульові числа: 0, 0.0
  • порожні контейнери: "", [], (), {}, set()

Все інше правда.

Python
bool(0)       # False
bool("")      # False
bool([])      # False
bool("0")     # True  !  (stringa non vuota)
bool([0])     # True  !  (lista non vuota, anche se contiene 0)

Шаблон: аналіз безпечного введення

Python
testo = input("età: ")
try:
    eta = int(testo)
except ValueError:
    print(f"non è un numero: {testo!r}")
    eta = None

Булева оцінка (правдивість)

У Python кожен об’єкт має неявне значення істинності. Ви можете перевірити логічне значення будь-якого об’єкта за допомогою функції bool(...). Порожні колекції (наприклад, "", [], {}, set()) і нульові значення (0, 0.0) завжди обчислюються як False. Усі інші об’єкти оцінюються як True.

Спробуйте

вправи#python.m4.l4.e1
Спроби: 0Завантаження…

Якщо задано `a = '10'` і `b = '32'` (рядки), обчисліть `total` як їх ЦІЛУ суму. Оцініть `загальний`.

Завантаження редактора…
Показати підказку

int(a) + int(b), інакше ви об’єднуєте рядки.

Рішення доступне після 3 спроб

Повторна вправа

вправи#python.m4.l4.e2
Спроби: 0Завантаження…

Враховуючи список `values ​​= ['', 'x', 0, None, 1, []]`, створіть `truthy` з ТІЛЬКИ правдивими елементами за допомогою bool(). Оцініть «правдивий».

Завантаження редактора…
Показати підказку

Розуміння списку за допомогою фільтра bool(v) (або просто 'if v').

Рішення доступне після 3 спроб

Додатковий виклик

вправи#python.m4.l4.e3
Спроби: 0Завантаження…

За наявності списку рядків \`string_numbers = ["1", "2", "3"]\`, перетворити кожен елемент на ціле число за допомогою \`int()\` і підсумувати їх разом, щоб отримати значення \`6\`. Збережіть суму в \`sum_val\` і обчисліть її.

Завантаження редактора…
Показати підказку

Доступ до елементів за індексом, напр. int(string_numbers[0]), і підсумуйте їх.

Рішення доступне після 3 спроб