Перейти к основному содержимому
Модуль 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 только для falsy значений 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 попыток