Уроки модуля (4/4)
Преобразования типов
Python строго типизирован: он никогда не добавляет строку к числу, если вы
скажи так. Для перехода от одного типа к другому вы используете функции-конструкторы:
int(), float(), str(), bool(), list(), tuple(), set().
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 (обрезается, не
круглый).
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() со строками
Принимает десятичную и научную систему счисления.
float("3.14") # 3.14
float("1e3") # 1000.0
float("inf") # inf
float("nan") # nanstr(): «дружественное» преобразование
str(x) внутренне вызывает x.__str__(), чтобы получить «человеческое» представление.
Существует также repr(x) для представления «отладчика», часто более
явный (с кавычками для строк и т. д.).
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()
Все остальное правда.
bool(0) # False
bool("") # False
bool([]) # False
bool("0") # True ! (stringa non vuota)
bool([0]) # True ! (lista non vuota, anche se contiene 0)Шаблон: безопасный анализ входных данных
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.
Попробуйте это
Учитывая `a = '10'` и `b = '32'` (строки), вычислите `total` как их целую сумму. Оцените «всего».
Показать подсказку
int(a) + int(b), иначе вы объединяете строки.
Решение доступно после 3 попыток
Обзор упражнения
Учитывая список `values = ['', 'x', 0, None, 1, []]`, постройте `truthy` ТОЛЬКО из правдивых элементов, используя bool(). Оценивайте «правдивость».
Показать подсказку
Понимание списка с помощью фильтра bool(v) (или просто «if v»).
Решение доступно после 3 попыток
Дополнительная задача
Учитывая список строк \`string_numbers = ["1", "2", "3"]\`, преобразуйте каждый элемент в целое число с помощью \`int()\` и просуммируйте их, чтобы получить значение \`6\`. Сохраните сумму в «sum_val» и оцените ее.
Показать подсказку
Доступ к элементам по индексу, например. int(string_numbers[0]) и суммируем их.
Решение доступно после 3 попыток