""" Урок 02. Базовые типы данных, работа с функциями — весь код примеров одним файлом. Источник: subjects/python-fundamentals/course/lessons/02-python-data-types-functions/examples.html Файл собран автоматически (tools/build_lesson_examples.py): правьте страницу урока. Запуск: python lesson-02.py """ # ==================================================================== # Пример 1. Тип принадлежит объекту, а не имени переменной # ==================================================================== # dynamic_typing.py value = 10 print(type(value)) # value = "ten" print(type(value)) # value = 3.14 print(type(value)) # # ==================================================================== # Пример 2. Пять примитивных типов одним циклом # ==================================================================== # primitive_types.py samples = [5, -3, 0, 3.14, -5.2, "текст", True, False, None] for item in samples: print(repr(item), "->", type(item).__name__) # 5 -> int # -3 -> int # 0 -> int # 3.14 -> float # -5.2 -> float # 'текст' -> str # True -> bool # False -> bool # None -> NoneType # ==================================================================== # Пример 3. print() выполняет действие и возвращает None # ==================================================================== # print_returns_none.py result = print("Привет, мир!") print(result) print(type(result)) # Привет, мир! # None # # ==================================================================== # Пример 4. Конкатенация, умножение строк и склейка с числом # ==================================================================== # concat_and_repeat.py first_word = "Привет" second_word = "мир" print(first_word + second_word) # Приветмир print(first_word + " " + second_word) # Привет мир separator = "=" * 30 print(separator) # ============================== price = 100 try: print("Цена: " + price) except TypeError as error: print("TypeError:", error) # can only concatenate str (not "int") to str print("Цена: " + str(price)) # Цена: 100 print(f"Цена: {price}") # Цена: 100 # ==================================================================== # Пример 5. Четыре способа записать строку # ==================================================================== # quotes.py s1 = 'Одинарные кавычки' s2 = "Двойные кавычки" s3 = '''Тройные одинарные''' s4 = """Тройные двойные""" print(s1) print(s2) print(s3) print(s4) quote1 = "Она сказала: 'Привет!'" quote2 = 'Он ответил: "Привет!"' print(quote1) # Она сказала: 'Привет!' print(quote2) # Он ответил: "Привет!" # ==================================================================== # Пример 6. Экранирование и «сырые» строки # ==================================================================== # escape_and_raw.py print("Первая строка\nВторая строка") print("Колонка1\tКолонка2") print("Она сказала: \"Привет!\"") print('Это \'пример\' экранирования') path = "C:\\Users\\Student\\Documents" raw_path = r"C:\Users\Student\Documents" print(path) # C:\Users\Student\Documents print(raw_path) # C:\Users\Student\Documents print(path == raw_path) # True — результат один и тот же # ==================================================================== # Пример 7. sep и end на практике # ==================================================================== # sep_end.py print(1, 2, 3, 4, 5, sep="---") # 1---2---3---4---5 print("Привет,", "мир", end="!\n") # Привет, мир! print("a", "b", "c", sep="", end="|END\n") # abc|END for i in range(3): print(i, end=" ") print() # 0 1 2 # ==================================================================== # Пример 8. input() всегда возвращает str — приведение типов # ==================================================================== # type_conversion.py raw_age = "25" # представим, что это результат input("Возраст: ") print(type(raw_age)) # age = int(raw_age) print(type(age), age + 1) # 26 price = float("19.99") print(price * 2) # 39.98 print(str(42) + " штук") # 42 штук print(bool("False"), bool(""), bool("0")) # True False True # ==================================================================== # Пример 9. Типичная ошибка и три способа её избежать # ==================================================================== # fix_typeerror.py count = 3 try: print("Осталось: " + count) except TypeError as error: print("TypeError:", error) # can only concatenate str (not "int") to str print("Осталось:", count) # запятая сама подставит пробел print("Осталось: " + str(count)) # явное приведение print(f"Осталось: {count}") # f-строка, современный стиль # ==================================================================== # Пример 10. type() vs isinstance() — современная проверка типа # ==================================================================== # isinstance_vs_type.py x = True print(type(x) == bool) # True print(type(x) == int) # False — хотя bool является подклассом int print(isinstance(x, bool)) # True print(isinstance(x, int)) # True — bool это и есть int с двумя значениями class Number(int): pass n = Number(5) print(type(n) == int) # False — тип объекта именно Number print(isinstance(n, int)) # True — Number унаследован от int