""" Урок 03. Summary session 1 — весь код примеров одним файлом. Источник: subjects/python-fundamentals/course/lessons/03-summary-session-1/examples.html Файл собран автоматически (tools/build_lesson_examples.py): правьте страницу урока. Запуск: python lesson-03.py """ # ==================================================================== # Пример 1. Переменная — это имя, привязанное к значению # ==================================================================== # variables.py coordinate1 = 42 user_name = "Alice" _price = 10 print(coordinate1, user_name, _price) print(type(coordinate1), type(user_name), type(_price)) coordinate1 = "now a string" print(coordinate1, type(coordinate1)) # 42 Alice 10 # # now a string # ==================================================================== # Пример 2. Правила имён переменных: допустимо / недопустимо # ==================================================================== # naming_rules.py import keyword second_variable = "ok" my_variable = "ok" Var_1 = "ok" print(second_variable, my_variable, Var_1) print(keyword.iskeyword("if"), keyword.iskeyword("class"), keyword.iskeyword("total_value")) bad_snippets = ["2nd_variable = 1", "my-variable = 1", "if = 1"] for snippet in bad_snippets: try: compile(snippet, "", "exec") print(snippet, "-> compiled OK") except SyntaxError as error: print(snippet, "-> SyntaxError:", error) # ok ok ok # True True False # 2nd_variable = 1 -> SyntaxError: invalid decimal literal (, line 1) # my-variable = 1 -> SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='? (, line 1) # if = 1 -> SyntaxError: invalid syntax (, line 1) # ==================================================================== # Пример 3. print() и input(): первая интерактивная программа # ==================================================================== # hello_input.py name = input("Введите имя: ") print("Привет, " + name + "!") print(type(name)) # ввод: Alice # Введите имя: Привет, Alice! # # ==================================================================== # Пример 4. type() и базовые типы данных # ==================================================================== # basic_types.py values = [5, 5.0, "5", True, None] for value in values: print(repr(value), "->", type(value)) # 5 -> # 5.0 -> # '5' -> # True -> # None -> # ==================================================================== # Пример 5. Динамическая типизация: одно имя — разные типы # ==================================================================== # dynamic_typing.py value = 10 print(value, type(value)) value = "ten" print(value, type(value)) value = 10.0 print(value, type(value)) # 10 # ten # 10.0 # ==================================================================== # Пример 6. Строки: конкатенация, повторение, кавычки, экранирование # ==================================================================== # strings.py print("Привет" + " " + "Python") print("Hi! " * 3) print("Строка1\nСтрока2") print("Колонка1\tКолонка2") print("Путь: C:\\Users") print('Он сказал: "привет"') text = """Первая строка Вторая строка""" print(text) # Привет Python # Hi! Hi! Hi! # Строка1 # Строка2 # Колонка1 Колонка2 # Путь: C:\Users # Он сказал: "привет" # Первая строка # Вторая строка # ==================================================================== # Пример 7. print(): управление выводом через sep и end # ==================================================================== # print_sep_end.py print("Привет", "Python!") print(1, 2, 3, 4, 5, sep="---") print("Готово", end="!") print() print("a", "b", "c", sep="", end="\n\n") # Привет Python! # 1---2---3---4---5 # Готово! # abc # (и ещё одна пустая строка после abc) # ==================================================================== # Пример 8. Ловушка: print() ничего не возвращает # ==================================================================== # print_returns_none.py result = print("Hello") print(result) print(type(result)) # Hello # None # # ==================================================================== # Пример 9. Комментарии и PEP 8: код работает одинаково, читается — по-разному # ==================================================================== # style_pep8.py # однострочный комментарий поясняет следующую строку total_price=10*3+1 # так тоже работает, но трудно читать total_price = 10 * 3 + 1 # так рекомендует PEP 8: пробелы вокруг операторов print(total_price) """ Строка в тройных кавычках без присваивания — это просто выражение. Интерпретатор его вычисляет и никуда не сохраняет, если она не первая в теле функции или модуля (тогда она стала бы docstring). """ print("готово") # 31 # готово # ==================================================================== # Пример 10. Как устроено сообщение SyntaxError # ==================================================================== # syntax_error_demo.py broken_code = "if a == 5\n print('Hi')\n" # нет двоеточия после условия try: compile(broken_code, "", "exec") except SyntaxError as error: print("SyntaxError:", error) print("lineno=%r, offset=%r, text=%r" % (error.lineno, error.offset, error.text)) # SyntaxError: expected ':' (, line 1) # lineno=1, offset=10, text='if a == 5\n' # ==================================================================== # Пример 11. Практика: личное досье # ==================================================================== # personal_profile.py name = input("Введите имя: ") age = input("Введите возраст: ") city = input("Введите город: ") print(name + " " + age + " лет, проживает в городе " + city) # ввод: Алиса / 25 / Париж # Алиса 25 лет, проживает в городе Париж # ==================================================================== # Пример 12. Практика: повторитель текста — два способа # ==================================================================== # text_repeater.py text = input("Введите текст: ") print(text) print(text) print(text) # ввод: Python is fun # Python is fun # Python is fun # Python is fun # ==================================================================== # Пример 12. Практика: повторитель текста — два способа # ==================================================================== # text_repeater_compact.py text = input("Введите текст: ") print((text + "\n") * 3, end="") # ввод: Python is fun # Python is fun # Python is fun # Python is fun