ИиДУД - Информатика и другие учебные дисциплины (iikt.ru)

курс "Python с нуля"

Раздел 1. Основы языка Python
Тема 1. Введение в программирование: что такое программирование, почему это важно
Тема 2. Отличие интерпретируемых и компилируемых языков
Тема 3. Преимущества и особенности Python
Тема 4. Установка и настройка среды разработки (IDE). Рекомендовано использование IDLE или PyCharm для начинающих
Тема 5. Работа с командной строкой
Тема 6. Первая программа: вывод “Hello, World!”
Тема 7. Задачи для практики

Раздел 2. Переменный и типы данных
Тема 1. Что такое переменные и зачем они нужны Тема 2. Создание и именование переменных
Тема 3. Основные типы данных: int, float, str, bool
Тема 4. Операторы: арифметические, сравнения
Тема 5. Приоритет и ассоциативность операторов
Тема 6. Преобразование типов данных
Тема 7. Задачи для практики


Раздел 3. Структура данных в Python
Тема 1. Списки
Тема 2. Кортежи
Тема 3. Словари

Раздел 4. Условные операторы
Тема 1. Что такое ветвление и зачем оно нужно
Тема 2. Оператор if
Тема 3. Условные выражения: and, or, not
Тема 4. Каскадные условия: if-elif-else
Тема 5. Вложенные условия
Тема 6. Задачи для практики


Раздел 5. Циклы
Тема 1. Что такое цикл и применение его в программировании
Тема 2. Цикл while: синтаксис, примеры
Тема 3. Цикл for, использование с функцией range()
Тема 4. Практические примеры: вычисление суммы ряда, создание таблицы значений функции
Тема 5. Задачи для практики


Раздел 6. Работа с циклами и алгоритмами
Тема 1. Разветвления в цикле: операторы break, continue
Тема 2. Факторизация чисел
Тема 3. Наибольший общий делитель (НОД) и наименьшее общее кратное (НОК)
Тема 4. Алгоритм Евклида
Тема 5. Быстрое возведение в степень
Тема 6. Задачи для практики

Лекция. Введение в программирование: что такое программирование, почему это важно

Определение программирования

Программирование — это процесс создания компьютерных программ с помощью языков программирования. Компьютерные программы — это инструкции, которые говорят компьютеру, что делать. Это может быть чем-то простым, например, калькулятором, который выполняет математические действия, или чем-то сложным, например, видеоигрой или социальной сетью.

Пример: Помните игры на компьютере или приложения на смартфоне? Все они были созданы с помощью программирования!


Почему это важно?

1. Цифровой мир вокруг нас

Почти в каждой области жизни используются программы. От медицины (аппараты МРТ, анализы данных) до автомобильной промышленности (автопилоты в автомобилях), от образования (образовательные платформы и онлайн-курсы) до искусства (цифровая графика, анимация).

2. Профессиональные возможности

Программирование — одна из самых востребованных профессий в мире. Это не только хорошо оплачиваемая работа, но и возможность создавать что-то новое и полезное.

3. Развитие логического мышления

Программирование учит мыслить системно, структурировать информацию и решать сложные задачи шаг за шагом.

4. Реализация идей

Знание программирования позволяет воплощать свои идеи в жизнь. Хотите создать свою игру или приложение? Нет проблем, если вы умеете программировать!

Как это связано с Python?

Python — это один из самых популярных языков программирования в мире. Он отличается простотой и понятностью, что делает его идеальным для начинающих. С помощью Python можно создавать веб-сайты, научные приложения, игры и многое другое.

Пример: Когда люди хотят рекомендовать книги или фильмы на основе ваших предпочтений (как это делает Amazon или Netflix), они используют алгоритмы машинного обучения, написанные на Python!


Программирование не только открывает перед нами огромный мир возможностей, но и помогает лучше понять, как работает цифровой мир вокруг нас. Независимо от того, планируете ли вы стать профессиональным программистом или просто хотите узнать больше о том, как создаются ваши любимые приложения и сайты, изучение программирования будет полезным и увлекательным опытом.

Лекция. Отличие интерпретируемых и компилируемых языков

Введение

Когда речь заходит о программировании, одним из первых вопросов, которые могут возникнуть, является: “Что такое интерпретируемый и компилируемый языки программирования?” Этот вопрос касается того, как компьютер понимает и выполняет инструкции, написанные на разных языках программирования.

Базовые понятия

Прежде чем погрузиться в детали, давайте определим два ключевых термина:

1. Компиляция – это процесс преобразования кода, написанного на высокоуровневом языке программирования, в машинный код, который может быть непосредственно исполнен компьютером.

2. Интерпретация – это процесс построчного чтения и выполнения кода без его предварительного преобразования в машинный код.

Компилируемые языки программирования

Примеры: C, C++, Fortran, Swift

Особенности: 

1. Требуется компилятор для преобразования исходного кода в машинный. 

2. Обычно работает быстрее, так как код уже был предварительно преобразован. 

3. При ошибке в коде вы узнаете о ней на этапе компиляции. 

4. Сгенерированный машинный код зависит от платформы, что может затруднить перенос кода между различными ОС или устройствами.

Пример: Если вы напишете программу на C++, перед тем как её запустить, вы должны будете использовать компилятор, чтобы превратить ваш исходный код в исполняемый файл.

Интерпретируемые языки программирования

Примеры: Python, JavaScript, Ruby

Особенности:

1. Требуется интерпретатор для построчного чтения и выполнения кода. 

2. Может работать медленнее, так как код интерпретируется в реальном времени. 

3. Ошибки в коде обнаруживаются во время выполнения программы. 

4. В большинстве случаев легко переносим между различными платформами и операционными системами.

Пример: Когда вы запускаете программу на Python, интерпретатор Python читает ваш код и исполняет его построчно. Вы можете немедленно видеть результаты или ошибки.

Итак, почему Python интерпретируемый?

Python часто выбирают для изучения программирования из-за его простоты и понятности. Благодаря интерпретируемости, новички могут быстро видеть результаты своей работы, что делает процесс обучения более наглядным и увлекательным.

Интерпретируемые и компилируемые языки имеют свои преимущества и недостатки. Выбор между ними зависит от конкретной задачи, требований к производительности и предпочтений разработчика. В любом случае, понимание различий между этими подходами поможет вам лучше ориентироваться в мире программирования.

Лекция. Преимущества и особенности Python

Введение

Python – это высокоуровневый язык программирования, который с годами только укреплял свои позиции среди топовых языков программирования в мире. Но почему Python так популярен и что делает его особенным? Давайте разберёмся!

Основные особенности Python

1. Интерпретируемый язык

Как мы узнали ранее, Python не требует компиляции в машинный код. Это позволяет быстро и просто запускать и тестировать программы.

2. Читаемость

Python ставит в приоритет простоту и читаемость кода. Благодаря четкой структуре и отсутствию лишних скобок, новички могут легко понять логику даже чужого кода.

Пример: 

if age >= 18:

    print("Вы совершеннолетний!")

3. Высокоуровневый язык

Python автоматически управляет памятью, делая жизнь программиста проще.

4. Многозадачность

Python поддерживает многопоточность, что позволяет эффективно выполнять несколько задач одновременно (но эта тема выходит сильно за пределы этого начального курса). 

5. Богатая стандартная библиотека

В Python есть библиотеки почти на все случаи жизни – от работы с вебом до научных расчетов.

Преимущества Python

1. Всесторонность

Python используется в веб-разработке (платформы Django, Flask), научных расчетах (библиотеки NumPy, SciPy), искусственном интеллекте (библиотеки TensorFlow, Keras), разработке игр и многих других областях.

2. Сообщество

Огромное и активное сообщество Python делает его незаменимым для новичков. Это обеспечивает быстрый поиск решений, помощь в обучении и множество библиотек для любых нужд.

3. Переносимость

Код на Python, как правило, может быть запущен на разных платформах без изменений.

4. Простота обучения

Python часто рекомендуют как первый язык программирования, так как он прост в изучении, но в то же время мощен в функциональности.

5. Расширяемость

Python легко интегрируется с другими языками, такими как C, C++, Java и др.

Примеры использования Python

1. Веб-разработка

Сайты, такие как Instagram и Pinterest, написаны на Python (фреймворк Django).

2. Научные исследования

NASA использует Python для научных расчетов.

3. Машинное обучение

Крупнейшие IT-компании, такие как Google, используют Python для разработки своих систем искусственного интеллекта.


Python справедливо занимает одно из лидирующих мест среди языков программирования благодаря своей универсальности, простоте и мощным возможностям. Если вы начинаете свой путь в программировании или ищете язык для реализации сложного проекта, Python – отличный выбор!

Лекция. Установка и настройка среды разработки (IDE). Рекомендовано использование IDLE или PyCharm для начинающих

Введение

Для того чтобы начать программировать, необходима среда разработки, где можно будет писать, тестировать и отлаживать код. В этом разделе мы рассмотрим две популярные среды разработки для Python: IDLE и PyCharm.

IDLE

IDLE (Integrated Development and Learning Environment) – это стандартная среда разработки для Python, которая идет в комплекте с Python.

Установка:

1. При установке Python с официального сайта (python.org), убедитесь, что опция IDLE также отмечена для установки.

  

2. После установки Python, IDLE автоматически появится в меню программ.

  

Особенности:

1. Простой и понятный интерфейс.

2. Интерактивный режим, позволяющий быстро тестировать код.

3. Встроенный редактор с подсветкой синтаксиса.

Пример использования: Открыв IDLE, вы можете сразу начать вводить команды Python в интерактивном режиме или открыть новое окно редактора для написания и сохранения полных программ.

PyCharm

PyCharm – это профессиональная интегрированная среда разработки от JetBrains, предназначенная специально для Python.

Установка:

1. Перейдите на сайт JetBrains.

2. Скачайте версию “Community” (она бесплатная).

3. Установите скачанный файл, следуя инструкциям установщика.

  

Особенности:

1. Продвинутая система подсветки синтаксиса.

2. Встроенные инструменты для автоматического форматирования кода и проверки на ошибки.

3. Возможность установки дополнительных плагинов.

4. Удобная система для работы с проектами.

Пример использования: После запуска PyCharm, вы можете создать новый проект или открыть существующий. Среда предоставляет все необходимые инструменты для написания, тестирования и отладки вашего кода.

Рекомендации для начинающих

IDLE идеально подойдет для тех, кто только начинает изучать программирование. Её простой интерфейс и минималистичные функции позволяют сосредоточиться на изучении языка.

PyCharm рекомендуется для тех, кто уже имеет небольшой опыт в программировании или хочет более глубоко погрузиться в разработку на Python. Его функционал делает процесс написания кода более продуктивным.


Выбор среды разработки зависит от ваших индивидуальных предпочтений и опыта. Важно, чтобы среда была удобной для вас и помогала, а не мешала процессу обучения. Независимо от вашего выбора, главное – начать практиковаться и писать код!

Лекция. Работа с командной строкой

Введение

Прежде чем начать изучать синтаксис языка программирования, давайте изучим основы работы с командной строкой. Это позволит нам лучше разбираться в работе операционной системы, поможет понять, как работает Python и его библиотеки (процессы их установки, обновления и удаления). Да и просто сделает нас более уверенными пользователями.

Что такое командная строка (терминал) и для чего она нужна

Командная строка (или терминал) - это интерфейс, в котором пользователь взаимодействует с компьютером с помощью текстовых команд. В отличие от графического интерфейса, где мы используем мышь для кликов по иконкам и запуска программ, в командной строке все действия выполняются с помощью команд, вводимых с клавиатуры.

Пример:

1. Графический интерфейс: мы открываем папку "Документы", дважды кликая по ее иконке.

2. Командная строка: мы вводим команду cd Документы (перейти в папку "Документы").

Зачем это нужно?

1. Быстродействие

Иногда выполнение задач через командную строку может быть быстрее, чем через графический интерфейс.

2. Мощь

Некоторые задачи можно выполнить только через командную строку.

3. Основа

Многие программы и инструменты для программистов базируются на командной строке.

Краткий обзор различий между командной строкой Windows (Command Prompt и PowerShell) и терминалом Linux

В зависимости от вашей операционной системы у вас будет доступ к разным командным оболочкам:


Windows:

- Command Prompt (cmd.exe): традиционная командная строка Windows.

- PowerShell: более мощная командная оболочка и язык сценариев, предоставляющая дополнительные возможности.

C:\> dir


Linux:

- Терминал: Обычно используется с различными оболочками, такими как bash или zsh.

$ ls


Командная строка - это мощный инструмент, который позволяет вам взаимодействовать с компьютером на глубоком уровне. На следующих занятиях мы узнаем, как запустить командную строку и начать использовать базовые команды для работы с файлами, каталогами и другими задачами. Не бойтесь экспериментировать и исследовать командную строку - это ключевой навык для каждого программиста!

Лекция. Работа с командной строкой

Запуск терминала

Запуск Command Prompt и PowerShell на Windows

Command Prompt и PowerShell - это две разные командные оболочки, доступные в Windows. В зависимости от вашей версии Windows и предпочтений, вы можете использовать любую из них.


Command Prompt (cmd.exe)

Чтобы запустить Command Prompt, нажмите на клавиатуре Win + R, чтобы открыть окно "Выполнить".

cmd


PowerShell

Чтобы запустить PowerShell, нажмите на клавиатуре Win + R.

powershell

Также вы можете найти их в меню "Пуск" Windows, введя соответствующие имена в поисковой строке.

Запуск терминала на Linux

В большинстве дистрибутивов Linux вы можете запустить терминал, используя ярлык терминала на рабочем столе или в меню приложений. Если вы используете графический интерфейс, ищите приложение с именем "Терминал" или что-то похожее.

Если у вас есть несколько оболочек установлено (например, bash и zsh), то по умолчанию будет запущена оболочка, указанная в вашем профиле пользователя.

Кроме того, в большинстве дистрибутивов Linux вы можете быстро запустить терминал, используя горячие клавиши. Наиболее распространенная комбинация — это Ctrl + Alt + T.


Теперь вы знаете, как запустить командную строку или терминал на вашем компьютере. Это первый шаг к тому, чтобы начать работать с командами и изучать возможности вашей операционной системы с помощью текстового интерфейса. Далее мы начнем изучать базовые команды и понятия, которые пригодятся при работе в командной строке.

Лекция. Работа с командной строкой

Основные команды для работы с файлами и каталогами

Просмотр содержимого каталога

Чтобы узнать, какие файлы и папки находятся в текущем каталоге, вы можете использовать команды `dir` (в Windows) и `ls` (в Linux).

Windows (Command Prompt):

C:\> dir

Linux:

$ ls

Переход между каталогами

Команда `cd` (change directory) позволяет вам переходить между каталогами.

Windows (Command Prompt):

C:\> cd Documents

Linux:

$ cd Documents

Создание нового каталога

Чтобы создать новую папку (или каталог), используйте команду `mkdir` (make directory).

Windows (Command Prompt):

C:\> mkdir NewFolder

Linux:

$ mkdir NewFolder

Удаление каталога

Чтобы удалить папку, используйте команду `rmdir` (remove directory). Обратите внимание, что этой командой можно удалить только пустые папки.

Windows (Command Prompt):

C:\> rmdir NewFolder

Linux:

$ rmdir NewFolder

Создание файла

Вы можете создать новый пустой файл с помощью различных команд в зависимости от вашей операционной системы.

Windows (Command Prompt):

C:\> echo. > newfile.txt

Linux:

$ touch newfile.txt

Удаление файла

Для удаления файлов используйте команду `del` в Windows и `rm` в Linux.

Windows (Command Prompt):

C:\> del newfile.txt

Linux:

$ rm newfile.txt

Переименование или перемещение файла

Windows (Command Prompt):

C:\> rename oldname.txt newname.txt

C:\> move oldname.txt newname.txt

Linux:

$ mv oldname.txt newname.txt

Копирование файла

Windows (Command Prompt):

C:\> copy source.txt destination.txt

Linux:

$ cp source.txt destination.txt


Команды, которые вы только что изучили, являются основой для работы с файлами и каталогами в командной строке. Практика покажет, что они могут быть очень полезными в повседневной работе. Не забывайте экспериментировать и исследовать различные опции и возможности этих команд, чтобы стать настоящим мастером командной строки!

Лекция. Работа с командной строкой

Основные команды для просмотра содержимого файлов

Вывод содержимого файла на экран

Для того чтобы быстро просмотреть содержимое файла прямо в командной строке, вы можете использовать команды `type` (в Windows) и `cat` (в Linux).

Windows (Command Prompt):

C:\> type filename.txt

Linux:

$ cat filename.txt

Постраничный просмотр содержимого файла

Иногда, когда файл слишком большой, его удобнее просматривать постранично. В Linux для этого есть команды `more` и `less`. В Windows аналогом может служить команда `more`.

Windows (Command Prompt):

C:\> more filename.txt

Linux:

$ more filename.txt

$ less filename.txt


Знание того, как просматривать содержимое файлов прямо из командной строки, может быть очень полезным, особенно когда вы работаете на удаленных серверах или в средах без графического интерфейса. Эти команды позволяют вам быстро оценить содержимое файла или найти нужную информацию. На следующих занятиях мы углубимся в более сложные команды и техники работы с файлами и каталогами.

Лекция. Работа с командной строкой

Работа с Python из командной строки

Запуск интерактивного режима Python

Интерактивный режим Python позволяет вам вводить команды Python и видеть результаты их выполнения непосредственно в командной строке. Это удобный способ быстро проверить какой-либо код или провести небольшие эксперименты.

Запуск интерактивного режима:

  • Windows (Command Prompt):

C:\> python

  • Linux:

$ python3

Запуск скриптов на Python из командной строки

Если у вас есть файл со скриптом на Python (например, `myscript.py`), вы можете запустить его из командной строки.

Запуск скрипта:

  • Windows (Command Prompt):

C:\> python myscript.py

  • Linux:

$ python3 myscript.py

Установка пакетов с помощью pip

`pip` — это инструмент для установки пакетов Python из репозитория PyPI. С его помощью вы можете устанавливать различные библиотеки и инструменты, которые облегчат вам разработку на Python.

Установка пакета:

  • Windows (Command Prompt):

C:\> pip install package-name

  • Linux:

$ pip3 install package-name


Работа с Python из командной строки дает вам возможность быстро тестировать код, запускать скрипты и устанавливать необходимые библиотеки. Это навык, который пригодится каждому программисту на Python. На следующих занятиях мы погрузимся глубже в особенности языка Python и его возможности

Лекция. Работа с командной строкой

Практические упражнения

Упражнение 1. Навигация по файловой системе

Откройте командную строку или терминал.

Просмотрите содержимое текущего каталога.

Перейдите в каталог "Документы" (или аналогичный на вашем компьютере).

Создайте новую папку с именем "МояПрактика".

Войдите в папку "МояПрактика" и убедитесь, что она пуста.

Упражнение 2. Работа с файлами

Создайте новый текстовый файл с именем "мои_заметки.txt" внутри папки "МояПрактика".

Просмотрите содержимое файла (он должен быть пустым).

Удалите файл "мои_заметки.txt".

Убедитесь, что файл был удален, просмотрев содержимое каталога.

Упражнение 3. Интерактивный режим Python

Запустите интерактивный режим Python.

Выполните следующие команды:

- 2 + 3

- 10 - 4

- "Hello, " + "World!"

Выйдите из интерактивного режима.

Упражнение 4. Установка библиотеки Python

Используя `pip` (или `pip3` для Linux), установите пакет `requests`.

Откройте интерактивный режим Python и попробуйте импортировать только что установленную библиотеку с помощью команды `import requests`.

Упражнение 5. Создание и запуск простого Python-скрипта

Создайте новый текстовый файл с именем "hello.py".

Добавьте в этот файл следующий код:

print("Hello, World!")

Сохраните файл и закройте его.

Запустите скрипт из командной строки, используя команду `python hello.py` (или `python3 hello.py` для Linux).

Вопрос 1

Текст вопроса

Что такое командная строка?


a.Интерфейс для взаимодействия с компьютером с помощью текстовых команд

b.Список команд, которые выполняются автоматически

c.Графический интерфейс для работы с файлами

d.Специальный язык программирования

Вопрос 2

Текст вопроса

Какая команда используется для просмотра содержимого каталога в Linux?


a.list

b.show

c.ls

d.dir

Вопрос 3

Текст вопроса

Какая команда позволяет перейти в другой каталог?


a.go

b.move

c.cd

d.jump

Вопрос 4

Текст вопроса

Какая команда удаляет файл в Windows?


a.del

b.delete

c.rm

d.remove

Отзыв

Вопрос 5

Текст вопроса

Что делает команда mkdir?


a.Перемещает каталог

b.Удаляет каталог

c.Создает новый каталог

d.Переименовывает каталог

Вопрос 6

Текст вопроса

Как в интерактивном режиме Python вывести на экран текст "Hello, World!"?


a.print("Hello, World!")

b.echo "Hello, World!"

c.display("Hello, World!")

d.show "Hello, World!"

Вопрос 7

Текст вопроса

Какая команда в Linux позволяет просмотреть содержимое файла?


a.read

b.cat

c.view

d.type

Вопрос 8

Текст вопроса

Что делает команда pip install package-name?


a.Устанавливает пакет с именем package-name

b.Показывает информацию о пакете package-name

c.Удаляет пакет с именем package-name

d.Обновляет пакет с именем package-name

Вопрос 9

Текст вопроса

Какая команда позволяет переименовать файл в Linux?


a.namechange

b.mv

c.rename

d.change

Вопрос 10

Текст вопроса

Что делает команда `cd ..`?


a.Показывает содержимое текущего каталога

b.Переходит в следующий каталог

c.Переходит в каталог выше

d.Удаляет текущий каталог

Лекция. Первая программа: вывод “Hello, World!”

Введение

Начать изучение любого языка программирования принято с написания программы, которая выводит на экран простое сообщение “Hello, World!”. Этот ритуал является не только традицией, но и отличным способом убедиться, что ваша среда разработки настроена правильно.

Шаг 1: Создание файла

1. Откройте вашу выбранную среду разработки (например, IDLE или PyCharm).

2. Создайте новый файл.

3. Сохраните файл с расширением .py, например, hello_world.py. Расширение .py указывает на то, что это файл на языке Python.

Шаг 2: Написание кода

В открытом файле напишите следующий код:

print("Hello, World!")

Здесь print() – это функция в Python, которая выводит переданный ей текст на экран.

Шаг 3: Запуск программы

1. В зависимости от вашей среды разработки, найдите кнопку “Запустить” или “Run” и нажмите на неё.

2. После этого на экране должно появиться сообщение: “Hello, World!”.

Что произошло?

Когда вы запустили программу, Python интерпретировал вашу команду print("Hello, World!") и вывел соответствующий текст на экран. Это самый простой пример программы на Python, который демонстрирует, как язык может взаимодействовать с пользователем через консоль.

Модификации и эксперименты

1. Изменение текста

Попробуйте изменить текст внутри кавычек и посмотрите, что получится.

Пример:

print("Привет, мир!")


2. Несколько строк

Вы можете напечатать несколько строк одновременно, добавив дополнительные команды print().

Пример:

print("Hello, World!")

print("Меня зовут [Ваше имя].")

print("Я изучаю Python!")

3. Комментарии

В Python вы можете добавить комментарии, начиная строку с символа #. Комментарии не выполняются программой, но позволяют добавлять пояснения к коду.

Пример:

# Это моя первая программа на Python

print("Hello, World!")

Поздравляем, вы успешно написали и запустили свою первую программу на Python! Это может показаться незначительным шагом, но каждое большое путешествие начинается с первого шага. Теперь, когда у вас есть базовое понимание того, как создавать и запускать программы на Python, вы готовы к дальнейшему изучению этого мощного языка программирования!

Задачи для практики

Введение

После изучения основ языка Python пришло время закрепить знания на практике! Ниже представлены задачи разной сложности, которые помогут вам убедиться в своем понимании материала.

Задача 1: Приветствие пользователя

Цель: Познакомьтесь с функцией ввода данных input() и вывода print().

Описание: Напишите программу, которая спрашивает имя пользователя, а затем приветствует его.

Пример:

Как вас зовут? Анна

Привет, Анна!

Задача 2: Конвертер температур

Цель: Отработать работу с переменными и базовыми арифметическими операциями.

Описание: Напишите программу, которая преобразует градусы Цельсия в градусы Фаренгейта по формуле: (F = C  + 32).

Пример:

Введите температуру в градусах Цельсия: 25

Температура в градусах Фаренгейта: 77.0

Задача 3: Площадь и периметр прямоугольника

Цель: Отработать работу с несколькими переменными и арифметическими операциями.

Описание: Напишите программу, которая запрашивает у пользователя длины сторон прямоугольника и вычисляет его площадь и периметр.

Пример:

Введите длину прямоугольника: 10

Введите ширину прямоугольника: 5

Площадь прямоугольника: 50

Периметр прямоугольника: 30

Задача 4: Комментарии к коду

Цель: Познакомиться с комментированием кода.

Описание: Напишите любую программу и добавьте к ней комментарии, поясняющие, что делает каждая строка.

Пример:

# Запросим у пользователя число

number = int(input("Введите число: "))

# Выведем удвоенное значение числа

print(number * 2)

Практика – ключ к усвоению нового материала. Не бойтесь экспериментировать с кодом и модифицировать задачи по своему усмотрению. Чем больше вы практикуетесь, тем лучше будет ваше понимание языка Python. Удачи в решении!

Лекция. Что такое переменные и зачем они нужны

Введение

Когда мы говорим о программировании, мы часто сталкиваемся с понятием “переменная”. Но что это такое? Зачем они нужны? И как они работают? В этом разделе мы разберёмся с этими вопросами.

Представление переменных

Представьте, что ваш компьютер - это огромная библиотека, а переменные - это книги. Каждая книга имеет свое имя (например, “История Рима” или “Рецепты пирогов”), и когда вы хотите узнать содержание книги, вы ищете ее по имени. Точно так же компьютер использует переменные, чтобы хранить и восстанавливать информацию.

Зачем нужны переменные?

1. Хранение данных

Как и книга хранит информацию на своих страницах, так и переменная хранит данные в памяти компьютера. Например, когда пользователь вводит свое имя в форму на веб-сайте, это имя сохраняется в переменной.

2. Обработка данных

В программировании мы часто обрабатываем разные данные. Переменные позволяют нам манипулировать этими данными: изменять их, сравнивать, комбинировать и так далее.

3. Упрощение кода

Без переменных нам пришлось бы каждый раз вручную вставлять данные в код, что делает программирование громоздким и неэффективным.

Примеры использования переменных

1. Хранение информации о пользователе

При регистрации на сайте ваше имя, электронная почта и пароль сохраняются в разных переменных, чтобы в дальнейшем использовать их для разных задач, например, для авторизации.

username = "Вася"

email = "vasya@email.com"

password = "secret123"


2. Вычисления

Предположим, у вас есть интернет-магазин, и вы хотите рассчитать общую стоимость заказа. В этом случае вы можете использовать переменные для хранения стоимости каждого товара и количества заказанных товаров.

price_per_item = 100

quantity = 5

total_cost = price_per_item * quantity

print(total_cost)  # Вывод: 500

Переменные - это ключевой элемент в программировании. Они позволяют нам сохранять, извлекать и обрабатывать данные, делая код более упорядоченным и эффективным. В следующих разделах мы узнаем, как создавать и правильно именовать переменные, а также познакомимся с различными типами данных, которые можно хранить в переменных.

Лекция. Создание и именование переменных

Введение

Как мы уже узнали, переменные играют ключевую роль в программировании. Они представляют собой “ячейки памяти”, в которых можно хранить различные данные. Но как создать переменную и дать ей имя? И какие правила следует соблюдать при именовании переменных? В этом разделе мы узнаем ответы на эти вопросы.

Создание переменной

В Python создать переменную легко: просто дайте ей имя и присвойте ей значение с помощью символа =.

name = "Анна"

age = 15

В приведенном выше коде мы создали две переменные: name, которой присвоено значение “Анна”, и age, которой присвоено значение 15.

Правила именования переменных

1. Имя переменной может начинаться с буквы (A-Z, a-z) или символа подчеркивания _, но не с цифры. 

_data = "correct"     

First_name = "correct"     

1name = "incorrect"  # Вызовет ошибку

2. Имя переменной может содержать буквы, цифры и символы подчеркивания. 

name123 = "correct"     

name_age = "correct"     

name@age = "incorrect"  # Вызовет ошибку

3. Имена переменных чувствительны к регистру.

Это означает, что Name, NAME и name будут разными переменными.     

Name = "Алекс"

NAME = "Маша"     

name = "Сергей"

4. Не используйте ключевые слова Python в качестве имен переменных.

Слова, такие как if, else, while, являются зарезервированными словами и не могут быть использованы в качестве имен переменных.

Рекомендации для именования переменных

1. Давайте переменным понятные имена.

Имя должно отражать суть данных, которые она хранит.     

first_name = "Иван"   # Хорошо     

fn = "Иван"           # Менее понятно

2. Используйте нижний регистр при именовании переменных.

Это общепринятая практика в Python.     

username = "Петр"  # Хорошо     

UserName = "Петр"  # Менее стандартно

3. Для составных имен используйте символ подчеркивания для разделения слов.     

birth_date = "01.01.2000"  # Хорошо     

birthdate = "01.01.2000"   # Допустимо, но менее читаемо

Переменные - это способ присвоения имен данным в вашем коде. Правильное именование переменных делает ваш код более читаемым и понятным. В следующем разделе мы узнаем о различных типах данных, которые можно хранить в переменных.

Лекция. Основные типы данных: int, float, str, bool

Введение

В программировании не все данные одинаковы. Число 5, дробное число 5.2, текст “Привет” и логическое значение “Правда” являются разными типами данных. В Python есть множество встроенных типов данных, но сейчас мы рассмотрим четыре основных: int, float, str и bool.

1. int (Целые числа)

Тип данных int представляет собой целые числа. Это могут быть положительные или отрицательные числа без десятичных точек.

a = 5

b = -7

c = 0

Пример:

age = 16

print(age)  # Выведет: 16

2. float (Числа с плавающей точкой)

Тип данных float представляет собой числа с десятичными точками. Они могут быть использованы для представления дробных чисел.

x = 5.5

y = -3.14

z = 0.0

Пример:

weight = 58.7

print(weight)  # Выведет: 58.7

3. str (Строки)

Тип данных str представляет собой строки. Строки используются для хранения текстовой информации и заключаются в кавычки.

name = "Алексей"

greeting = 'Привет, мир!'

Примеры:

first_name = "Ирина"

last_name = 'Сергеева'

print(first_name + " " + last_name)  # Выведет: Ирина Сергеева

4. bool (Логический тип)

Тип данных bool имеет только два значения: True (истина) и False (ложь). Этот тип данных часто используется для условных операторов и циклов.

Примеры:

is_student = True

has_car = False

print(is_student)  # Выведет: True

print(has_car)     # Выведет: False

Как узнать тип данных?

Вы можете использовать встроенную функцию type() для определения типа данных переменной.

x = 10

print(type(x))  # Выведет: <class 'int'>

y = "Привет"

print(type(y))  # Выведет: <class 'str'>

Понимание основных типов данных в Python — это ключевой элемент успешного программирования. Каждый тип данных имеет свои особенности и используется в разных ситуациях. В следующих разделах мы узнаем больше о том, как использовать и комбинировать эти типы данных в Python.

Лекция. Операторы: арифметические, сравнения

Введение

Операторы — это символы, которые используются для выполнения операций над переменными и значениями. В Python существует множество операторов, но сейчас мы сосредоточимся на двух основных категориях: арифметические и операторы сравнения.

1. Арифметические операторы

Арифметические операторы используются для выполнения математических операций, таких как сложение, вычитание, умножение и деление.

+ : Сложение     

x = 5 + 3     

print(x)  # Выведет: 8

- : Вычитание     

y = 10 - 4     

print(y)  # Выведет: 6

* : Умножение     

z = 6 * 7     

print(z)  # Выведет: 42

/ : Деление      

a = 8 / 2     

print(a)  # Выведет: 4.0

//: Целочисленное деление     

b = 9 // 2     

print(b)  # Выведет: 4

%: Остаток от деления     

c = 9 % 2     

print(c)  # Выведет: 1

**: Возведение в степень     

d = 3 ** 3     

print(d)  # Выведет: 27

2. Операторы сравнения

Операторы сравнения используются для сравнения двух значений.

==: Равно     

e = (5 == 5)     

print(e)  # Выведет: True

!=: Не равно     

f = (5 != 6)     

print(f)  # Выведет: True

> : Больше     

g = (10 > 5)     

print(g)  # Выведет: True

< : Меньше     

h = (4 < 7)     

print(h)  # Выведет: True

>=: Больше или равно     

i = (7 >= 7)     

print(i)  # Выведет: True

<=: Меньше или равно     

j = (5 <= 10)     

print(j)  # Выведет: True

Операторы играют ключевую роль в программировании, позволяя выполнять разнообразные операции с данными. Арифметические операторы помогают нам решать математические задачи, в то время как операторы сравнения позволяют нам принимать решения на основе сравнения значений. Умение правильно использовать и комбинировать эти операторы — основа эффективного кодирования.

Лекция. Приоритет и ассоциативность операторов

При написании программы иногда приходится работать с различными операторами в одном выражении. Чтобы правильно понимать, в какой последовательности будут выполняться операции, нужно знать о приоритете и ассоциативности операторов.

1. Приоритет операторов

Приоритет оператора определяет порядок, в котором выполняются операции в сложных выражениях.

Пример:

result = 3 + 4 * 2

В данном примере сначала выполняется умножение (4 * 2), а затем сложение, так как умножение имеет более высокий приоритет. Таким образом, result будет равен 11, а не 14.

Основной список приоритетов операторов в Python (от наивысшего к наименьшему):

  1. () - Скобки
  2. ** - Возведение в степень
  3. *, /, %, // - Умножение, деление, остаток от деления, деление с округлением вниз
  4. +, - - Сложение и вычитание
  5. <, <=, >, >=, ==, != - Операторы сравнения
  6. not - Логическое отрицание
  7. and - Логическое И
  8. or - Логическое ИЛИ

2. Ассоциативность операторов

Если в выражении встречаются операторы с одинаковым приоритетом, то порядок их выполнения определяется ассоциативностью. Большинство операторов в Python имеют левую ассоциативность, что означает, что они выполняются слева направо.

Пример:

result = 15 - 7 - 3

Сначала будет выполнено 15 - 7, затем к результату будет применено - 3. Таким образом, result будет равен 5.

Однако оператор возведения в степень (**) имеет правую ассоциативность.

Пример:

result = 2 ** 3 ** 2

Сначала будет выполнено 3 ** 2, затем 2 ** 9. Таким образом, result будет равен (2^9) или 512.

Советы:

  • Чтобы избежать путаницы и ошибок, старайтесь использовать скобки для явного указания порядка операций.
  • Всегда проверяйте сложные выражения на правильность вычислений.

Примеры:

1. Каким будет результат выражения 5 + 3 * 2 - 8 / 4?

Сначала выполняется умножение и деление: 5 + 6 - 2, затем сложение и вычитание: 11 - 2 = 9.

2. Что покажет выражение 3 < 4 and 5 > 6?

Оператор and возвращает True только тогда, когда оба выражения истинны. В данном случае 3 < 4 верно, но 5 > 6 неверно, таким образом результат – False.

3. Каков результат выражения 10 - 3 + 2?

Операции выполняются слева направо, поэтому 10 - 3 = 7, 7 + 2 = 9.

Итак, понимание приоритета и ассоциативности операторов критически важно для написания корректного и понятного кода.

Лекция. Преобразование типов данных

В программировании на Python и вообще в любом языке программирования вам часто придется преобразовывать один тип данных в другой. Это может быть необходимо по разным причинам, например, когда вы получаете ввод данных от пользователя или при работе с различными источниками данных. Python предоставляет встроенные функции для преобразования между основными типами данных. Рассмотрим каждый из них по очереди.

1. int() - преобразование к целому числу

Эта функция используется для преобразования других типов данных в целочисленный формат.

Примеры:

float_num = 12.5

int_num = int(float_num)

print(int_num)  # вывод: 12

str_num = "123"

int_num2 = int(str_num)

print(int_num2)  # вывод: 123

Обратите внимание, что при преобразовании числа с плавающей точкой в целое число дробная часть отбрасывается.

2. float() - преобразование к числу с плавающей точкой

Примеры:

int_num = 12

float_num = float(int_num)

print(float_num)  # вывод: 12.0

str_num = "12.34"

float_num2 = float(str_num)

print(float_num2)  # вывод: 12.34

3. str() - преобразование к строке

Любой тип данных может быть преобразован в строку.

Примеры:

int_num = 123

str_num = str(int_num)

print(str_num)  # вывод: "123"

float_num = 12.34

str_num2 = str(float_num)

print(str_num2)  # вывод: "12.34"

4. bool() - преобразование к булеву типу

В Python пустые структуры данных, нулевые числовые значения и пустые строки обычно интерпретируются как False, в то время как ненулевые значения и непустые структуры данных интерпретируются как True.

Примеры:

print(bool(0))  # вывод: False

print(bool(123))  # вывод: True

print(bool(""))  # вывод: False

print(bool("Hello"))  # вывод: True

print(bool([]))  # вывод: False (пустой список)

print(bool([1, 2, 3]))  # вывод: True (непустой список)

Предостережения при преобразовании типов

  • При попытке преобразования строки, которая не может быть интерпретирована как число, в число, возникнет ошибка. Например, преобразование строки "Hello" в int или float вызовет ошибку.
  • При преобразовании числа с плавающей точкой в целое число дробная часть отбрасывается. Например, int(12.9) даст 12.

Преобразование типов данных - важный элемент программирования. Это позволяет адаптировать данные для различных нужд и обеспечивает гибкость при работе с различными источниками данных. Всегда учитывайте предостережения, чтобы избежать непредвиденных ошибок и проблем при преобразовании.

Задачи для практики

Задача 1. Конвертация температуры

Напишите программу, которая запрашивает у пользователя температуру в градусах Цельсия и преобразует её в градусы Фаренгейта. Формула для преобразования: F = C * 9/5 + 32.

Задача 2. Сколько лет и дней

Пользователь вводит количество дней. Программа должна вывести, сколько это лет и дней. Например, 390 дней - это 1 год и 25 дней (если считать год за 365 дней).

Задача 3. Сравнение строк

Пользователь вводит две строки. Программа должна сообщить, равны ли строки, и если нет, то какая из них длиннее.

Задача 4. Булевы операции

Пользователь вводит три числа: a, b и c. Проверьте и выведите на экран результат, равно ли среднее арифметическое этих чисел a.

Задача 5. Конвертация числа в строку и обратно

Пользователь вводит число. Преобразуйте это число в строку, а затем обратно в число, но с плавающей точкой. Выведите оба значения и убедитесь, что они разные.

Задача 6. Что больше?

Пользователь вводит два числа. Программа должна выводить различные сообщения в зависимости от того, какое число больше, или же сообщать, что числа равны.

Задача 7. Преобразование типов

Пользователь вводит три числа. Найдите их среднее арифметическое и выведите результат как целое число.

Задача 8. Булево преобразование

Пользователь вводит строку. Преобразуйте эту строку в булев тип и выведите результат. Попробуйте ввести пустую строку и строку с пробелами, чтобы увидеть, как это влияет на результат.

Лекция. Списки

Введение в списки: создание, индексация и срезы

Что такое список?

В Python список - это упорядоченная коллекция объектов, которые могут быть любого типа. Списки являются одной из основных структур данных в Python и используются в большинстве приложений.

Создание списка

Список в Python создается путем размещения всех элементов (элементами могут быть числа, строки, другие списки и так далее) внутри квадратных скобок [], разделив их запятыми.

Пример:

my_list = [1, 2, 3, 4, 5]

print(my_list)  # Вывод: [1, 2, 3, 4, 5]

Список может содержать элементы разных типов:

mixed_list = [1, "Hello", 3.14, [1, 2, 3]]

print(mixed_list)  # Вывод: [1, 'Hello', 3.14, [1, 2, 3]]

Индексация

Каждый элемент в списке имеет определенный индекс, начиная с 0 для первого элемента, 1 для второго и так далее. Для обращения к элементам списка используются квадратные скобки с индексом внутри.

Пример:

my_list = [1, 2, 3, 4, 5]

print(my_list[0])  # Вывод: 1

print(my_list[2])  # Вывод: 3

Python также поддерживает отрицательную индексацию. -1 обозначает последний элемент, -2 – предпоследний и так далее.

Пример:

my_list = [1, 2, 3, 4, 5]

print(my_list[-1])  # Вывод: 5

print(my_list[-3])  # Вывод: 3

Срезы

Срезы позволяют получать подмножества элементов из списка. Синтаксис среза: [start:stop:step]. Если некоторые из этих значений не указаны, то по умолчанию start равен 0, stop равен длине списка, а step равен 1.

Примеры:

my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(my_list[2:5])    # Вывод: [2, 3, 4]

print(my_list[:4])     # Вывод: [0, 1, 2, 3]

print(my_list[7:])     # Вывод: [7, 8, 9]

print(my_list[::2])    # Вывод: [0, 2, 4, 6, 8]

print(my_list[1:8:2])  # Вывод: [1, 3, 5, 7]


Списки – это мощный инструмент в Python, который позволяет работать с упорядоченными коллекциями данных. Основы работы со списками, такие как создание, индексация и срезы, являются фундаментом для дальнейшего изучения более сложных операций со списками и другими структурами данных.

Лекция. Списки

Методы списков

Список в Python не просто упорядоченная коллекция элементов, но и объект со множеством полезных встроенных методов. Эти методы облегчают многие операции с элементами списка.

Давайте рассмотрим основные методы списка:

1. append()

Метод append() используется для добавления элемента в конец списка.

Пример:

fruits = ["apple", "banana"]

fruits.append("cherry")

print(fruits)  # Вывод: ['apple', 'banana', 'cherry']

2. extend()

Метод extend() используется для добавления элементов из другого списка (или любого итерируемого объекта) к существующему списку.

Пример:

fruits1 = ["apple", "banana"]

fruits2 = ["cherry", "date"]

fruits1.extend(fruits2)

print(fruits1)  # Вывод: ['apple', 'banana', 'cherry', 'date']

3. insert()

Метод insert() позволяет вставить элемент на определенную позицию в списке.

Пример:

fruits = ["apple", "cherry"]

fruits.insert(1, "banana")

print(fruits)  # Вывод: ['apple', 'banana', 'cherry']

4. remove()

Метод remove() удаляет первое вхождение указанного элемента из списка. Если такого элемента нет, вызывается ошибка.

Пример:

fruits = ["apple", "banana", "cherry"]

fruits.remove("banana")

print(fruits)  # Вывод: ['apple', 'cherry']

5. pop()

Метод pop() удаляет элемент на указанной позиции и возвращает его. Если индекс не указан, удаляется последний элемент.

Пример:

fruits = ["apple", "banana", "cherry"]

removed_fruit = fruits.pop(1)

print(removed_fruit)  # Вывод: 'banana'

print(fruits)         # Вывод: ['apple', 'cherry']

6. index()

Метод index() возвращает индекс первого вхождения указанного элемента.

Пример:

fruits = ["apple", "banana", "cherry", "banana"]

print(fruits.index("banana"))  # Вывод: 1

7. count()

Метод count() возвращает количество вхождений указанного элемента в список.

Пример:

fruits = ["apple", "banana", "cherry", "banana"]

print(fruits.count("banana"))  # Вывод: 2

8. sort()

Метод sort() сортирует список. Можно указать аргумент reverse=True для сортировки в обратном порядке.

Пример:

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]

numbers.sort()

print(numbers)  # Вывод: [1, 1, 2, 3, 3, 4, 5, 5, 6, 9]

9. reverse()

Метод reverse() инвертирует порядок элементов в списке.

Пример:

numbers = [1, 2, 3, 4, 5]

numbers.reverse()

print(numbers)  # Вывод: [5, 4, 3, 2, 1]

10. clear()

Метод clear() удаляет все элементы из списка.

Пример:

fruits = ["apple", "banana", "cherry"]

fruits.clear()

print(fruits)  # Вывод: []

Методы списка облегчают работу с ним, предоставляя инструменты для выполнения различных операций: добавления, удаления, поиска и многих других. Овладев этими методами, вы сможете эффективно манипулировать списками в Python.

Лекция. Списки

Примеры и задачи на использование списков

Пример 1: Инвертирование списка

Допустим, вы хотите инвертировать порядок элементов в списке. Это можно сделать с помощью срезов.

numbers = [1, 2, 3, 4, 5]

reversed_numbers = numbers[::-1]

print(reversed_numbers)  # Вывод: [5, 4, 3, 2, 1]

Пример 2: Поиск минимального и максимального элемента

С помощью встроенных функций min() и max() можно найти минимальный и максимальный элементы списка.

numbers = [34, 67, 2, 89, 45, 23]

print(min(numbers))  # Вывод: 2

print(max(numbers))  # Вывод: 89

Задача 1: Сумма элементов

Найдите сумму всех элементов списка.

numbers = [1, 2, 3, 4, 5]

total = sum(numbers)

print(total)  # Вывод: 15

Задача 2: Добавление элементов в список

Добавьте число 6 в конец списка и число 0 в начало списка.

numbers = [1, 2, 3, 4, 5]

numbers.append(6)

numbers.insert(0, 0)

print(numbers)  # Вывод: [0, 1, 2, 3, 4, 5, 6]

Задача 3: Удаление последнего элемента из списка

Удалите последний элемент из списка.

numbers = [1, 2, 3, 4, 5]

numbers.pop()

print(numbers)  # Вывод: [1, 2, 3, 4]

Списки в Python - это мощный инструмент для работы с наборами данных. Простые операции с элементами списка, такие как добавление, удаление и поиск, могут быть выполнены без использования сложных структур, таких как циклы или условия. Приведенные выше примеры и задачи помогут закрепить ваши знания и умения в работе со списками.

Лекция. Кортежи

Введение в кортежи

Кортеж (tuple) - это упорядоченная коллекция объектов. Кортежи очень похожи на списки, но, в отличие от них, кортежи являются неизменяемыми, т.е. после создания кортежа вы не можете изменить его элементы или добавить новые.

Создание кортежей

1. С помощью круглых скобок:

my_tuple = (1, 2, 3, 4)

print(my_tuple)  # Вывод: (1, 2, 3, 4)

2. Без использования скобок:

my_tuple = 1, 2, 3, 4

print(my_tuple)  # Вывод: (1, 2, 3, 4)

3. Кортеж с одним элементом:

Для создания кортежа с одним элементом необходимо поставить запятую после этого элемента.

single_element_tuple = (5,)

print(single_element_tuple)  # Вывод: (5,)

4. С помощью встроенной функции tuple():

list_to_convert = [1, 2, 3, 4]

my_tuple = tuple(list_to_convert)

print(my_tuple)  # Вывод: (1, 2, 3, 4)

Индексация и срезы

Как и со списками, вы можете получать доступ к элементам кортежа по индексу:

my_tuple = (1, 2, 3, 4, 5)

print(my_tuple[2])  # Вывод: 3

Срезы также работают аналогичным образом:

my_tuple = (1, 2, 3, 4, 5)

print(my_tuple[1:4])  # Вывод: (2, 3, 4)

Неизменяемость кортежей

Основное отличие кортежей от списков - это их неизменяемость. Попытка изменить кортеж приведет к ошибке:

my_tuple = (1, 2, 3, 4)

# my_tuple[1] = 5  # Этот код вызовет ошибку


Кортежи - это полезная структура данных в Python, когда вам нужно сохранить упорядоченную коллекцию объектов, которая не должна изменяться. Несмотря на их схожесть со списками, кортежи имеют свои особенности и преимущества, особенно когда дело касается сохранности данных и эффективности использования памяти.

Лекция. Кортежи

Отличия кортежей от списков

Как кортежи, так и списки являются основными структурами данных для хранения последовательностей в Python. Однако они имеют ряд важных различий, которые определяют их применение в различных сценариях.

1. Изменяемость

  • Списки являются изменяемыми, что означает, что вы можете изменять их содержимое (добавлять, удалять или изменять элементы) после их создания.

list_example = [1, 2, 3]

list_example[2] = 4

print(list_example)  # Вывод: [1, 2, 4]

  • Кортежи являются неизменяемыми, что означает, что после их создания вы не можете изменить их содержимое.

tuple_example = (1, 2, 3)

# tuple_example[2] = 4  # Этот код вызовет ошибку

2. Синтаксис

  • Списки создаются с помощью квадратных скобок:

list_example = [1, 2, 3]

  • Кортежи могут быть созданы с помощью круглых скобок или без них:

tuple_example = (1, 2, 3)

another_tuple = 1, 2, 3

3. Методы

  • Списки предоставляют множество методов, таких как append(), remove(), reverse() и др.

list_example = [1, 2, 3]

list_example.append(4)

print(list_example)  # Вывод: [1, 2, 3, 4]

  • Кортежи имеют ограниченное количество доступных методов. Наиболее часто используемые - count() и index().

tuple_example = (1, 2, 3, 2)

print(tuple_example.count(2))  # Вывод: 2

4. Применение

  • Списки используются там, где необходима динамическая структура данных с возможностью частых изменений.
  • Кортежи идеально подходят для представления данных, которые не должны изменяться, например, ключей словаря или элементов конфигурации.

5. Производительность

  • Кортежи работают быстрее списков при выполнении итераций, так как данные в кортежах занимают непрерывный блок памяти.

  • Списки могут быть менее эффективными из-за издержек, связанных с поддержкой динамического изменения размера и содержимого.


Выбор между списками и кортежами зависит от вашей конкретной задачи. Если вам нужна изменяемая последовательность, используйте список. Если вам нужна неизменяемая последовательность или вы заботитесь о производительности при больших итерациях, выберите кортеж.

Лекция. Кортежи

Примеры использования кортежей

Кортежи в Python представляют собой неизменяемые последовательности объектов. Давайте рассмотрим несколько практических примеров использования кортежей, чтобы понять их применение в реальных задачах.

1. Множественное присваивание

Одной из основных особенностей кортежей является возможность множественного присваивания:

a, b, c = (1, 2, 3)

print(a)  # Вывод: 1

print(b)  # Вывод: 2

print(c)  # Вывод: 3

2. Обмен значениями переменных

С помощью кортежей можно легко менять значения переменных местами без использования дополнительной переменной:

a, b = 5, 10

a, b = b, a

print(a)  # Вывод: 10

print(b)  # Вывод: 5

3. Защита данных

Используя кортежи вместо списков, вы можете гарантировать, что данные не будут изменены:

days_of_week = ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')

# days_of_week[0] = 'New day'  # Это вызовет ошибку

4. Применение в строках формата

Кортежи можно использовать для форматирования строк:

person_info = ("John", 25)

print("My name is %s and I am %d years old." % person_info)  # Вывод: My name is John and I am 25 years old.

Форматирование строк с помощью кортежей в Python – это метод, с помощью которого можно вставлять значения из кортежа (или любого другого итерируемого объекта) в строку. Существует несколько способов форматирования строк в Python, но в данном примере мы используем “старый” метод, применяя оператор %.

Данный метод напоминает способ форматирования, применяющийся в языке программирования C. Оператор % используется в комбинации с определенными символами для указания типа значения, которое должно быть вставлено.

Основные символы:

  • %s - строка
  • %d - целое число
  • %f - число с плавающей точкой

5. Сложные структуры данных

Кортежи могут содержать другие кортежи, создавая сложные структуры данных:

matrix = ((1, 2, 3), (4, 5, 6), (7, 8, 9))

print(matrix[1][2])  # Вывод: 6


Кортежи - это универсальный и мощный инструмент в Python. Хотя они похожи на списки, их неизменяемость предоставляет ряд преимуществ, которые делают их предпочтительным выбором в определенных ситуациях. Как показано выше, кортежи могут быть использованы в различных задачах, от простого множественного присваивания до создания сложных структур данных.

Лекция. Словари

Основы работы со словарями

Введение

Словарь в Python — это неупорядоченная коллекция, используемая для хранения пар “ключ-значение”. Каждый ключ в словаре должен быть уникальным. Словари в Python создаются с помощью фигурных скобок {} или с помощью функции dict().

Создание словаря

1. С помощью фигурных скобок:

person = {

    'name': 'Alex',

    'age': 25,

    'is_student': False

}

2. С помощью функции dict():

person = dict(name='Alex', age=25, is_student=False)

Доступ к элементам словаря

Для доступа к значению в словаре используется ключ:

name = person['name'# Alex

Если попробовать получить значение по ключу, которого нет в словаре, Python вернет ошибку. Чтобы избежать этого, можно использовать метод get(), который возвращает None, если ключ не найден:

address = person.get('address'# None

Изменение и добавление элементов

Для изменения значения по определенному ключу просто присвойте ему новое значение:

person['age'] = 26

Для добавления нового элемента присвойте значение новому ключу:

person['address'] = '123 Main St'

Удаление элементов

del person['address'# Удаляет ключ 'address' и его значение

Ключи и значения

Для получения всех ключей и всех значений из словаря можно использовать методы keys() и values() соответственно:

all_keys = person.keys()  # dict_keys(['name', 'age', 'is_student'])

all_values = person.values()  # dict_values(['Alex', 25, False])

Проверка наличия ключа

if 'name' in person:

    print("Key 'name' exists in the dictionary.")

Подробнее про использование команды if и ее важность мы узнаем в последующих уроках.

Вложенные словари

Словари могут содержать другие словари, создавая тем самым вложенные структуры:

student = {

    'name': 'Anna',

    'age': 20,

    'courses': {

        'math': 'A',

        'history': 'B'

    }

}

math_grade = student['courses']['math' # A


Словари являются одной из наиболее полезных и гибких структур данных в Python. Они предоставляют простой способ организации и хранения данных, основанный на парах ключ-значение, что делает поиск, добавление и удаление элементов быстрыми и удобными. Понимание основ работы со словарями является ключевым навыком для каждого программиста на Python.

Лекция. Словари

Методы словарей

Словари в Python имеют ряд встроенных методов, которые упрощают работу с ними. Рассмотрим основные из них на примерах.

1. dict.get(key[, default])

Возвращает значение для указанного ключа, если ключ находится в словаре. В противном случае возвращает значение, указанное в параметре default (по умолчанию None).

person = {'name': 'Alex', 'age': 25}

print(person.get('name'))  # Alex

print(person.get('address'))  # None

print(person.get('address', 'Not Found'))  # Not Found

2. dict.keys()

Возвращает объект dict_keys, который представляет собой список всех ключей в словаре.

print(person.keys())  # dict_keys(['name', 'age'])

3. dict.values()

Возвращает объект dict_values, который содержит все значения словаря.

print(person.values())  # dict_values(['Alex', 25])

4. dict.items()

Возвращает объект dict_items, представляющий собой список кортежей, где каждый кортеж содержит ключ и значение.

print(person.items())  # dict_items([('name', 'Alex'), ('age', 25)])

5. dict.update([other])

Обновляет словарь, добавляя пары ключ-значение из другого словаря или итерируемого объекта. Если ключ уже существует, его значение обновляется.

person.update({'age': 26, 'address': 'Main Street'})

print(person)  # {'name': 'Alex', 'age': 26, 'address': 'Main Street'}

6. dict.setdefault(key[, default])

Возвращает значение ключа, если он есть в словаре. Если ключа нет, вставляет ключ со значением default (по умолчанию None).

print(person.setdefault('job', 'Engineer'))  # Engineer

print(person)  # {'name': 'Alex', 'age': 26, 'address': 'Main Street', 'job': 'Engineer'}

7. dict.pop(key[, default])

Удаляет ключ и возвращает его значение. Если ключа нет, возвращает значение default. Если default не указан и ключа нет, вызывает ошибку.

address = person.pop('address')

print(address)  # Main Street

8. dict.popitem()

Удаляет и возвращает пару (ключ, значение) в виде кортежа. Если словарь пуст, вызывает ошибку.

item = person.popitem()

print(item)  # ('job', 'Engineer')

9. dict.clear()

Очищает словарь от всех элементов.

person.clear()

print(person)  # {}


Методы словарей делают работу с ними удобной и эффективной. Эти методы предоставляют множество операций, таких как извлечение, обновление, добавление и удаление элементов. На практике у вас может возникнуть необходимость использовать комбинации этих методов для достижения конкретных результатов при работе со словарями.

Лекция. Словари

Примеры и задачи на использование словарей

Пример 1: Хранение личной информации

Словари могут быть использованы для хранения различной информации о человеке.

person = {

    "имя": "Анна",

    "возраст": 25,

    "город": "Москва"

}

print(person["имя"])  # Анна

Задача 1: Добавление информации в словарь

Дополните словарь person информацией о любимом цвете человека.

Решение:

person["любимый цвет"] = "синий"

print(person)  # {'имя': 'Анна', 'возраст': 25, 'город': 'Москва', 'любимый цвет': 'синий'}

Пример 2: Хранение информации о книге

Используем словари для хранения информации о книге.

book = {

    "название": "1984",

    "автор": "Джордж Оруэлл",

    "год": 1949

}

print(book["автор"])  # Джордж Оруэлл

Задача 2: Добавление информации о книге

Создайте свой собственный словарь, который будет содержать информацию о вашей любимой книге.

Пример 3: Словарь с контактной информацией

Можно использовать словари для хранения контактной информации.

contact = {

    "имя": "Виктор",

    "телефон": "+79221234567",

    "email": "viktor@example.com"

}

print(contact["email"])  # viktor@example.com

Задача 3: Поиск информации в словаре

Используя словарь contact, выведите номер телефона Виктора.

Решение:

print(contact["телефон"])  # +79221234567


Словари предоставляют удобный способ для хранения и организации данных в парах ключ-значение. Они идеально подходят для хранения связанных данных, таких как личная или контактная информация. С пониманием основ работы со словарями вы сможете эффективно структурировать свои данные в Python.

Лекция. Что такое ветвление и зачем оно нужно

Определение

Ветвление в программировании - это механизм, позволяющий программе принимать решения и выбирать разные направления выполнения в зависимости от конкретных условий. Проще говоря, это способ сказать программе: “Если происходит X, делай Y, иначе делай Z”.

Зачем нужно ветвление

1. Адаптивность программы

В реальном мире часто возникают ситуации, когда на одни и те же входные данные требуются разные реакции. Ветвление позволяет программе адаптироваться к различным ситуациям.

2. Эффективность

Иногда выполнение определенных блоков кода может быть нецелесообразным или даже вредным в определенных условиях. Ветвление позволяет избегать лишних действий.

3. Условное выполнение

Без ветвления программы были бы линейными и последовательными, что ограничивает их функциональность.

Примеры

Рассмотрим несколько жизненных примеров, чтобы лучше понять концепцию ветвления:

1. Дождливый день

Если на улице идет дождь, вы берете зонтик. Если нет - зонтик оставляете дома. Это пример ветвления в реальной жизни.

2. Выбор еды

Если в холодильнике есть яйца, вы готовите яичницу. Если яиц нет, но есть молоко и хлопья - делаете кашу. Это ветвление, но уже с несколькими условиями.

Пример на Python

Рассмотрим простой пример на Python:

temperature = 20

if temperature < 0:

    print("На улице мороз!")

elif temperature < 10:

    print("На улице холодно!")

else:

    print("На улице тепло!")

В этом примере программа проверяет значение температуры и в зависимости от условия выводит разные сообщения.


Ветвление является ключевой концепцией в программировании, позволяя создавать адаптивные и гибкие программы. Оно предоставляет механизм для принятия решений и определения направления выполнения кода. Усвоив этот принцип, вы сделаете огромный шаг в понимании логики программирования.

Лекция. Что такое ветвление и зачем оно нужно

Определение

Ветвление в программировании - это механизм, позволяющий программе принимать решения и выбирать разные направления выполнения в зависимости от конкретных условий. Проще говоря, это способ сказать программе: “Если происходит X, делай Y, иначе делай Z”.

Зачем нужно ветвление

1. Адаптивность программы

В реальном мире часто возникают ситуации, когда на одни и те же входные данные требуются разные реакции. Ветвление позволяет программе адаптироваться к различным ситуациям.

2. Эффективность

Иногда выполнение определенных блоков кода может быть нецелесообразным или даже вредным в определенных условиях. Ветвление позволяет избегать лишних действий.

3. Условное выполнение

Без ветвления программы были бы линейными и последовательными, что ограничивает их функциональность.

Примеры

Рассмотрим несколько жизненных примеров, чтобы лучше понять концепцию ветвления:

1. Дождливый день

Если на улице идет дождь, вы берете зонтик. Если нет - зонтик оставляете дома. Это пример ветвления в реальной жизни.

2. Выбор еды

Если в холодильнике есть яйца, вы готовите яичницу. Если яиц нет, но есть молоко и хлопья - делаете кашу. Это ветвление, но уже с несколькими условиями.

Пример на Python

Рассмотрим простой пример на Python:

temperature = 20

if temperature < 0:

    print("На улице мороз!")

elif temperature < 10:

    print("На улице холодно!")

else:

    print("На улице тепло!")

В этом примере программа проверяет значение температуры и в зависимости от условия выводит разные сообщения.


Ветвление является ключевой концепцией в программировании, позволяя создавать адаптивные и гибкие программы. Оно предоставляет механизм для принятия решений и определения направления выполнения кода. Усвоив этот принцип, вы сделаете огромный шаг в понимании логики программирования.

Примеры ветвления

Часть 1

  

Часть 2

  

Часть 3

  

Последнее изменение: Четверг, 12 октября 2023, 17:42

Лекция. Оператор if

Введение

Оператор if является столпом логики программирования. С его помощью мы можем дать программе указание выполнить определенный блок кода только в случае, если определенное условие истинно.

Синтаксис

Оператор if используется в сочетании с логическим выражением (условием), которое возвращает значение True или False. Если условие истинно (True), блок кода внутри if выполняется.

if условие:

    # Блок кода для выполнения

Простой пример

Давайте представим, что у нас есть переменная, содержащая возраст человека, и мы хотим проверить, является ли этот человек совершеннолетним:

age = 17

if age >= 18:

    print("Человек совершеннолетний")

В этом примере сообщение “Человек совершеннолетний” будет выведено только в том случае, если возраст будет 18 или больше.

Операторы сравнения

Чтобы создать условие для оператора if, часто используются операторы сравнения:

  • ==: равно
  • !=: не равно
  • <: меньше
  • <=: меньше или равно
  • >: больше
  • >=: больше или равно

Пример:

number = 10

if number == 10:

    print("Число равно 10")

Использование else

Чтобы указать блок кода, который должен выполняться, если условие в if ложно, используйте оператор else:

weather = "дождь"

if weather == "солнечно":

    print("Погода солнечная!")

else:

    print("Погода не солнечная!")

В этом примере будет выведено “Погода не солнечная!”, так как условие weather == "солнечно" не выполняется.


Оператор if - это мощный инструмент в вашем арсенале программирования. Он позволяет программе принимать решения на основе данных и выполнять разные действия в зависимости от условия. С практикой использования if и сочетанием его с другими условными операторами и циклами, вы сможете создавать сложные и гибкие программы.

Лекция. Условные выражения: and, or, not

Введение

Когда мы говорим о ветвлении и решениях, которые программа принимает на основе определенных условий, часто возникает необходимость комбинировать несколько условий в одно или проверять противоположное состояние условия. В Python для этого существуют логические операторы: and, or и not.

Оператор and

Этот оператор позволяет соединить два условия, и результат будет True только тогда, когда оба условия истинны.

Пример:

age = 25

citizenship = "Россия"

if age >= 18 and citizenship == "Россия":

    print("Вы можете голосовать на выборах в России!")

В данном примере сообщение будет выведено только если оба условия истинны.

Оператор or

Оператор or также соединяет два условия, но результат будет True, если хотя бы одно из условий истинно.

Пример:

weather = "дождь"

umbrella = False

if weather == "дождь" or umbrella:

    print("Лучше остаться дома.")

Здесь, даже если у вас нет зонта (umbrella = False), сообщение будет выведено, потому что выполняется первое условие (weather == "дождь").

Оператор not

Оператор not используется для инвертирования логического значения условия.

Пример:

rain = False

if not rain:

    print("Можно идти на прогулку!")

В этом случае, так как не идет дождь (rain = False), условие not rain становится True, и программа выводит сообщение.

Комбинирование операторов

Вы можете комбинировать эти операторы для создания сложных условных выражений:

temperature = 15

weather = "солнечно"

coat = False

if (temperature < 20 and weather != "солнечно") or (not coat):

    print("Лучше одеться потеплее!")


Логические операторы and, or и not дают возможность создавать сложные условные выражения, которые делают ваши программы более гибкими и адаптивными к различным ситуациям. Практикуйтесь, экспериментируйте с различными условиями и их комбинациями, чтобы лучше понять, как они работают вместе.

Лекция. Каскадные условия: if-elif-else

Введение

Когда программа сталкивается с ситуациями, где необходимо выбрать из нескольких вариантов действий в зависимости от условий, “каскадные условия” становятся незаменимыми. Они представляют собой комбинацию операторов if, elif (сокращение от “else if”) и else, позволяя выполнить разные блоки кода в зависимости от исхода проверки нескольких условий.

Структура каскадных условий

Простая структура выглядит следующим образом:

if условие_1:

    # блок кода 1

elif условие_2:

    # блок кода 2

else:

    # блок кода 3

Пример

Представим, что у нас есть программа, которая определяет, какое время суток сейчас по текущему часу:

hour = 14  # предположим, что сейчас 14 часов

if 6 <= hour < 12:

    print("Сейчас утро!")

elif 12 <= hour < 18:

    print("Сейчас день!")

elif 18 <= hour < 24:

    print("Сейчас вечер!")

else:

    print("Сейчас ночь!")

В этом примере код проверяет текущий час и выводит соответствующее время суток.

Ключевые моменты использования

1. Порядок имеет значение.

Код проверяет условия в порядке, в котором они указаны. Если первое условие if выполняется, остальные условия elif и else игнорируются.

2. elif и else являются необязательными.

Вы можете использовать только if, комбинировать if и else, или добавить между ними множество elif.

3. else перехватывает все, что не было учтено.

Он действует как “поймай все остальное”. Если ни одно из предыдущих условий не выполнилось, блок кода внутри else будет выполнен.

Пример без elif

number = 5

if number > 10:

    print("Число больше 10")

else:

    print("Число 10 или меньше")


Каскадные условия предоставляют мощный инструмент для принятия решений в программировании на Python. Они позволяют комбинировать несколько условий и реагировать на разные ситуации разными действиями. С помощью if-elif-else вы можете делать ваш код более читаемым и структурированным, особенно когда перед вами стоит задача обработки различных вариантов условий.

Лекция. Вложенные условия

Введение

В программировании очень часто возникают ситуации, когда необходимо проверить несколько условий, каждое из которых зависит от результата предыдущего. В этих случаях “вложенные условия” становятся незаменимым инструментом. Они представляют собой условные операторы, размещенные внутри других условных операторов.

Структура вложенных условий

Базовая структура вложенного условия:

if условие_1:

    # блок кода 1

    if условие_2:

        # блок кода 2


Пример

Допустим, у вас есть программа, которая определяет, является ли год високосным:

year = 2020

if year % 4 == 0:

    if year % 100 != 0 or year % 400 == 0:

        print(f"{year} является високосным годом!")

    else:

        print(f"{year} не является високосным годом!")

else:

    print(f"{year} не является високосным годом!")

Ключевые моменты использования

1. Читаемость прежде всего.

Слишком много вложенных условий может сделать ваш код трудным для понимания. Желательно минимизировать уровень вложенности или использовать другие подходы для улучшения читаемости.

2. Условия внутри условий.

Внутренние условия будут проверены только в том случае, если внешнее условие выполнилось.

3. Комбинация с каскадными условиями.

Вложенные условия можно комбинировать с каскадными условиями для создания более сложных логических структур.


Пример с комбинацией

score = 85

behavior = "good"

if score > 80:

    if behavior == "good":

        print("Поздравляем, вы получили стипендию!")

    else:

        print("Ваш балл выше 80, но из-за поведения стипендия не предоставляется.")

elif score > 60:

    print("Ваш балл неплох, но не достаточен для стипендии.")

else:

    print("Вы не получите стипендию.")


Вложенные условия предоставляют дополнительную гибкость при написании программ на Python. Они позволяют создавать сложные логические структуры, которые адаптируются к различным ситуациям. Однако, важно помнить о читаемости кода и стараться делать его как можно проще и понятнее для других разработчиков или даже для себя в будущем.

Примеры и задачи на ветвление

Пример 1: Определение четности числа

Допустим, вы хотите написать программу, которая определяет, является ли введенное число четным или нечетным.

number = int(input("Введите число: "))

if number % 2 == 0:

    print(f"{number} - четное число.")

else:

    print(f"{number} - нечетное число.")

Задача 1

Модифицируйте код выше таким образом, чтобы программа также проверяла, является ли число нулем. Если число равно нулю, должно выводиться соответствующее сообщение.

Пример 2: Определение наибольшего числа

Вы хотите определить, какое из трех введенных чисел является наибольшим.

a = int(input("Введите первое число: "))

b = int(input("Введите второе число: "))

c = int(input("Введите третье число: "))

if a > b and a > c:

    print(f"Наибольшее число: {a}")

elif b > a and b > c:

    print(f"Наибольшее число: {b}")

else:

    print(f"Наибольшее число: {c}")

Задача 2

Расширьте предыдущий код, добавив проверку на равенство всех трех чисел. Если все числа равны, выводите соответствующее сообщение.

Пример 3: Скидки в магазине

В магазине есть скидка: при покупке на сумму более 1000 рублей  предоставляется скидка 10%, а при покупке на сумму более 5000 рублей - скидка 20%.

sum = float(input("Введите сумму покупки: "))

if sum >= 5000:

    sum *= 0.8

elif sum >= 1000:

    sum *= 0.9

print(f"Итоговая сумма с учетом возможных скидок: {sum} у.е.")

Задача 3

Добавьте условие, что если покупатель является студентом (вводит “да” на соответствующий вопрос), ему предоставляется дополнительная скидка 5%, независимо от суммы покупки.


Ветвление - это мощный инструмент в программировании, который позволяет создавать условные логические структуры. Практика решения задач на ветвление укрепляет понимание этого инструмента и помогает освоиться в программировании. Постоянно практикуйтесь, решайте задачи разной сложности, и вы быстро улучшите свои навыки!

Лекция. Что такое цикл и применение его в программировании

Циклы являются ключевыми элементами в программировании. Они позволяют компьютеру выполнять определенный набор инструкций несколько раз, что делает автоматизацию задач более эффективной.

Определение цикла

Цикл – это структура управления в программировании, которая используется для выполнения набора инструкций многократно на основе заданного условия.

Зачем нужны циклы?

1. Автоматизация повторяющихся задач

Вместо того чтобы писать те же инструкции многократно, вы можете просто использовать цикл.

2. Обработка данных

Циклы удобны для обработки больших массивов данных. Например, если вы хотите просмотреть список студентов и рассчитать средний балл, цикл сделает это быстро.

3. Интерактивность

Циклы могут использоваться для создания интерактивных программ, которые работают до тех пор, пока пользователь не решит их завершить.

Примеры использования циклов

1. Простой цикл с подсчетом

Допустим, вы хотите напечатать числа от 1 до 5. Вместо того чтобы делать это вручную, вы можете использовать цикл:

for i in range(1, 6):

    print(i)

2. Обработка списков

Представьте, что у вас есть список студентов, и вы хотите напечатать имена всех студентов:

students = ["Анна", "Михаил", "Ольга", "Дмитрий"]

for student in students:

    print(student)

3. Определение суммы чисел

Если вы хотите рассчитать сумму чисел от 1 до 10:

total = 0

for num in range(1, 11):

    total += num

print(total)


Циклы – это неотъемлемая часть программирования. Они предоставляют эффективный способ автоматизации задач, обработки данных и создания интерактивных приложений. Как и в случае с другими инструментами программирования, главное – понимать, когда и как их применять, чтобы сделать ваш код чистым, эффективным и удобочитаемым.

Лекция. Цикл while: синтаксис, примеры

Цикл while – это один из основных циклов в программировании, который позволяет выполнять блок кода до тех пор, пока условие остается истинным.

Синтаксис

Основная структура цикла while выглядит следующим образом:

while условие:

    # блок кода

Здесь “условие” – это логическое выражение, которое возвращает значение True или False. Если условие истинно (True), блок кода внутри цикла будет выполняться. Как только условие становится ложным (False), выполнение цикла прекращается.

Примеры

1. Вывод чисел от 1 до 5

number = 1

while number <= 5:

    print(number)

    number += 1

Здесь цикл начинается с числа 1 и продолжается до 5. После каждой итерации значение number увеличивается на 1.

2. Запрашиваем ввод от пользователя

message = ""

while message != "выход":

    message = input("Введите текст (или 'выход' для завершения): ")

    print(message)

Этот цикл будет продолжаться до тех пор, пока пользователь не введет слово “выход”.

3. Использование флага для управления циклом

Флаг может быть полезен, если в вашем коде множество условий для завершения цикла.

active = True

while active:

    message = input("Введите текст (или 'выход' для завершения): ")

    if message == "выход":

        active = False

    else:

        print(message)

Здесь переменная active используется как флаг. Как только пользователь вводит “выход”, флаг устанавливается в False и цикл завершается.

Предостережения

Одной из основных проблем при использовании цикла while может стать бесконечный цикл. Если условие цикла всегда остается истинным, цикл будет выполняться вечно, что может привести к зависанию программы.

Пример потенциально опасного кода:

# Бесконечный цикл!

number = 1

while number > 0:

    print(number)

    number += 1

В этом примере условие number > 0 всегда будет истинным, и цикл будет выполняться бесконечно.


Цикл while предоставляет мощный инструмент для повторения блока кода на основе определенного условия. Несмотря на свою простоту, он может быть использован в широком спектре задач – от простых операций до сложных алгоритмов. Главное – всегда следить за условиями цикла, чтобы избежать потенциальных бесконечных циклов.

Лекция. Цикл for, использование с функцией range()

Цикл for является основным инструментом в программировании для повторения определенного блока кода фиксированное количество раз. В Python этот цикл часто используется в связке с функцией range(), которая генерирует последовательность чисел.

Синтаксис цикла for

for переменная in последовательность:

    # блок кода

Функция range()

Функция range() возвращает последовательность чисел, которую можно использовать в цикле for. У этой функции могут быть разные варианты использования:

1. range(стоп)
Генерирует числа от 0 до (но не включая) стоп.

2. range(старт, стоп)
Генерирует числа от старт до (но не включая) стоп.

3. range(старт, стоп, шаг)
Генерирует числа от старт до стоп с заданным шагом.

Примеры использования

1. Простой цикл for с range()

Вывести числа от 0 до 4:

for i in range(5):

    print(i)

2. Указание начала и конца диапазона

Вывести числа от 1 до 5:

for i in range(1, 6):

    print(i)

3. Использование шага

Вывести все четные числа от 0 до 10:

for i in range(0, 11, 2):

    print(i)

4. Обратный отсчет

Вывести числа от 5 до 1:

for i in range(5, 0, -1):

    print(i)

5. Использование range() для итерации по списку

Если вы хотите пройти по индексам списка, range() может быть полезен:

fruits = ["apple", "banana", "cherry"]

for i in range(len(fruits)):

    print(f"I like {fruits[i]}!")

Преимущества и особенности

1. Определенность

Цикл for идеально подходит для ситуаций, когда вы точно знаете, сколько раз нужно выполнить блок кода.

2. Читаемость

В сочетании с range(), цикл for делает код легко читаемым, особенно когда речь идет о простых итерациях.

3. Гибкость

Функция range() дает гибкость в выборе начала, конца и шага итерации, что позволяет адаптировать цикл к различным задачам.


Цикл for в сочетании с функцией range() – это мощный и гибкий инструмент, который позволяет разработчикам легко управлять повторением кода. Этот цикл идеально подходит для решения задач, когда известно заранее, сколько раз нужно выполнить блок инструкций.

Лекция. Практические примеры: вычисление суммы ряда, создание таблицы значений функции

Для закрепления знаний о циклах, предлагаем рассмотреть два практических примера, которые часто встречаются при решении реальных задач в программировании.

1. Вычисление суммы ряда

Задача: вычислить сумму арифметического ряда от 1 до n.

Формула арифметического ряда:

S=n?(n+1)/2?

Но давайте решим эту задачу с помощью цикла.

Пример на Python:

n = int(input("Введите n: "))

sum = 0

for i in range(1, n+1):

    sum += i

print(f"Сумма ряда от 1 до {n} равна {sum}")

В этом примере мы используем цикл for для прохождения по всем числам от 1 до n и суммируем их.

2. Создание таблицы значений функции

Задача: создать таблицу значений для функции ( f(x) = x^2 ) на интервале от -5 до 5 с шагом 1.


Пример на Python:

print("x\tf(x)")

print("-" * 14)

for x in range(-5, 6):  # Проходим по числам от -5 до 5

    print(f"{x}\t{x**2}"# выводим x и f(x)

На выходе получаем:

x   f(x)

---------

-5  25

-4  16

-3  9

-2  4

-1  1

0   0

1   1

2   4

3   9

4   16

5   25

Здесь мы используем цикл for, чтобы пройтись по каждому значению x на заданном интервале. Для каждого x мы вычисляем значение функции  f(x)  и выводим его.


Циклы являются мощным инструментом в руках программиста. Они позволяют автоматизировать и оптимизировать множество задач, таких как вычисления, обработка данных, анализ результатов и многое другое. В приведенных примерах мы увидели, как с помощью простых циклов можно решить задачи, которые в ручном режиме заняли бы гораздо больше времени.

Задачи для практики

Циклы являются ключевой частью многих программ, и умение правильно их использовать может значительно упростить решение задач. Предлагаем вам поработать над рядом задач для закрепления материала.

1. Вывод чисел от 1 до n

Написать программу, которая будет выводить все числа от 1 до заданного пользователем числа n.

2. Подсчет четных и нечетных чисел

Написать программу, которая будет просить пользователя вводить числа до тех пор, пока он не введет “стоп”. По завершению ввода программа должна вывести количество введенных четных и нечетных чисел.

3. Факториал числа

Написать программу, которая вычисляет факториал числа n, заданного пользователем. Факториал числа n — это произведение всех натуральных чисел от 1 до n включительно.

4. Рисование прямоугольника

Пользователь задает два числа: ширину и высоту прямоугольника. Программа должна “нарисовать” прямоугольник из символов * с заданными размерами.

5. Таблица умножения

Вывести таблицу умножения для чисел от 1 до 10.

6. Сумма последовательности

Пользователь вводит последовательность чисел, завершая ввод словом “стоп”. Программа должна вывести сумму всех введенных чисел.

7. Поиск максимального числа

Пользователь вводит ряд чисел. Найти и вывести на экран максимальное из введенных чисел.

8. Числа Фибоначчи

 Вывести первые n чисел из последовательности Фибоначчи.


Для каждой задачи рекомендуется начать с алгоритмического представления решения, а затем перейти к кодированию на языке программирования. Это поможет систематизировать свои действия и сделать код более чистым и понятным. Удачи в решении!

Лекция. Разветвления в цикле: операторы break, continue

В работе с циклами часто возникают ситуации, когда нужно изменить его обычное поведение. Два таких мощных инструмента для управления циклами — это операторы break и continue.

Оператор break

Оператор break позволяет прервать выполнение цикла до того, как он завершится естественным образом. Этот оператор часто используется в ситуациях, когда при выполнении какого-либо условия дальнейшее выполнение цикла не имеет смысла.

Пример:

Представьте, что вы ищете первое число в списке, которое делится на 7.

numbers = [3, 41, 12, 9, 74, 15, 22, 89]

for num in numbers:

    if num % 7 == 0:

        print(f"Первое число, которое делится на 7: {num}")

        break

Здесь, как только мы находим число, которое делится на 7, нам не нужно проверять остальные числа в списке, поэтому мы используем break, чтобы прервать цикл.

Оператор continue

Оператор continue пропускает оставшуюся часть текущей итерации и переходит к следующему шагу цикла. Это полезно, когда при определенных условиях некоторые действия в цикле должны быть пропущены.

Пример:

Пусть вы хотите вывести все числа в списке, кроме тех, что делятся на 5.

numbers = [10, 15, 20, 25, 30, 35, 40, 45, 50]

for num in numbers:

    if num % 5 == 0:

        continue

    print(num)

В этом примере для чисел, делящихся на 5, текущая итерация цикла прерывается оператором continue, и print(num) не выполняется.

Важное замечание

Следует использовать break и continue с осторожностью, так как они могут усложнить чтение и понимание кода, особенно в сложных циклах. Лучше использовать их в явных и понятных ситуациях.

Пример совместного использования break и continue:

Представьте, что вы ищете число в списке, которое делится и на 7, и на 5, но хотите пропустить первое такое число.

numbers = [10, 35, 14, 70, 49, 25, 105]

found = False

for num in numbers:

    if num % 5 == 0 and num % 7 == 0:

        if not found:

            found = True

            continue

        else:

            print(f"Второе число, которое делится и на 5, и на 7: {num}")

            break

В этом примере мы используем continue, чтобы пропустить первое число, и break, чтобы завершить цикл после нахождения второго числа.


Операторы break и continue — мощные инструменты, которые могут сделать ваш код более эффективным. Однако следует помнить о том, чтобы использовать их осмысленно, чтобы код оставался понятным.

Лекция. Факторизация чисел

Факторизация числа — это разложение этого числа на простые множители. Простыми числами являются те числа, которые делятся только на себя и на единицу (например, 2, 3, 5, 7, 11 и так далее).

К примеру, факторизация числа 56 будет выглядеть следующим образом: (56 = 2x2x2x7 )

Зачем это нужно?

  1. Факторизация широко используется в криптографии.
  2. Это помогает в решении некоторых математических задач.
  3. Факторизация чисел помогает понять свойства числа, его делители.

Примеры факторизации

Давайте рассмотрим несколько примеров.

1. Факторизация числа 18:

(18 = 2x9 ) 

Поскольку 9 не является простым числом, разложим его дальше:

(9 = 3x3 )

Таким образом, полная факторизация числа 18:

(18 = 2x3x3  )

2. Факторизация числа 45:

(45 = 5x9)

(9 = 3x3 )

Итак, факторизация 45:

(45 = 5x3x3)

Как производить факторизацию

  1. Начните с наименьшего простого числа, то есть 2.
  2. Поделите ваше число на это простое число. Если деление без остатка, то это число является множителем.
  3. Продолжайте делить оставшееся число на простые числа до тех пор, пока деление не будет с остатком. Если остаток есть, переходите к следующему простому числу.

Алгоритм факторизации

Приведем простой алгоритм для факторизации числа:

def factorize(n):

    factors = []

    divisor = 2

    while n > 1:

        while n % divisor == 0:

            factors.append(divisor)

            n //= divisor

        divisor += 1

    return factors

number = 56

print(f"Факторизация числа {number}: {factorize(number)}")

На выходе для числа 56 мы получим:

Факторизация числа 56: [2, 2, 2, 7]


Факторизация — это важный математический процесс, который позволяет нам понимать структуру и свойства чисел. Несмотря на кажущуюся простоту, эффективное разложение на множители больших чисел является сложной задачей и играет ключевую роль в современной криптографии.

Лекция. Наибольший общий делитель (НОД) и наименьшее общее кратное (НОК

Два ключевых понятия в арифметике чисел — это НОД и НОК. Они широко применяются в математике, теории чисел и даже в повседневной жизни. Давайте поглубже разберёмся с этими понятиями.

Наибольший общий делитель (НОД)

Определение:

Наибольший общий делитель двух чисел — это наибольшее число, на которое оба эти числа делятся без остатка.

Пример:

Найдем НОД чисел 20 и 25. Делители 20: 1, 2, 4, 5, 10, 20. Делители 25: 1, 5, 25. Наибольший общий делитель — 5.

Как найти НОД:

Один из простых способов — это разложение каждого числа на простые множители и выбор общих множителей.

Наименьшее общее кратное (НОК)

Определение:

Наименьшее общее кратное двух чисел — это наименьшее число, которое делится на оба эти числа.

Пример:

НОК чисел 4 и 5. Поскольку 4 и 5 не имеют общих делителей, их НОК будет равен их произведению: 4 * 5 = 20.

Как найти НОК:

Наименьшее общее кратное двух чисел можно найти, используя их НОД:

НОК(a, b) =(a x b)/НОД(a, b)  

Примечание

Для двух простых чисел, НОК будет равно их произведению, поскольку их НОД равен 1.

Программные реализации

# Нахождение НОД двух чисел

def gcd(a, b):

    while b:

        a, b = b, a % b

    return a

# Нахождение НОК двух чисел

def lcm(a, b):

    return abs(a * b) // gcd(a, b)

# Пример использования:

a, b = 20, 25

print(f"НОД({a}, {b}) =", gcd(a, b))

print(f"НОК({a}, {b}) =", lcm(a, b))

На выходе получим:

НОД(20, 25) = 5

НОК(20, 25) = 100

Почему это важно?

1. Математические задачи

НОД и НОК часто используются при решении задач на делимость, а также задач из теории чисел.

2. Практическое применение

Например, чтобы определить, как часто два разных события будут происходить одновременно (как две орбиты планет), можно использовать НОК.


На этом уроке мы рассмотрели основы нахождения НОД и НОК. Эти понятия служат базой для многих математических и практических задач. С их помощью можно решать различные задачи, связанные с делимостью чисел и их свойствами.

Лекция. Алгоритм Евклида

Алгоритм Евклида — это классический способ нахождения наибольшего общего делителя (НОД) двух целых чисел. Он был известен ещё древним грекам и, несмотря на свою простоту, остаётся одним из наиболее эффективных алгоритмов для этой задачи.

Основное правило

Алгоритм Евклида основан на следующем свойстве:

[ НОД(a, b) = НОД(b, a b) ]

Это свойство используется рекурсивно или итеративно до тех пор, пока ( b ) не станет равным 0. Когда ( b ) станет 0, ( a ) будет являться НОД.

Пример

Найдем НОД чисел 56 и 98:

  1. ( НОД(56, 98) ) = ( НОД(98, 56) )
  2. ( НОД(98, 56) ) = ( НОД(56, 42) )
  3. ( НОД(56, 42) ) = ( НОД(42, 14) )
  4. ( НОД(42, 14) ) = ( НОД(14, 0) )

Таким образом, НОД(56, 98) = 14.

Программная реализация

Итеративная версия:

def gcd(a, b):

    while b:

        a, b = b, a % b

    return a

Рекурсивная версия:

def gcd_recursive(a, b):

    if b == 0:

        return a

    return gcd_recursive(b, a % b)

Применение:

a, b = 56, 98

print(f"НОД({a}, {b}) по итеративному методу =", gcd(a, b))

print(f"НОД({a}, {b}) по рекурсивному методу =", gcd_recursive(a, b))

На выходе получим:

НОД(56, 98) по итеративному методу = 14

НОД(56, 98) по рекурсивному методу = 14


Алгоритм Евклида — это великолепный инструмент, который демонстрирует, как простая идея может привести к эффективному решению сложной математической проблемы. Этот метод полезен не только для нахождения НОД, но и для решения других задач в теории чисел, таких как обращение по модулю или решение линейных диофантовых уравнений.

Лекция. Быстрое возведение в степень

Быстрое возведение в степень — это метод, который позволяет возводить число в степень с использованием значительно меньшего количества операций, чем традиционный метод возведения в степень. Метод основан на свойствах степеней и разложении показателя степени на биты.

Основная идея

Пусть у нас есть число  a  и мы хотим возвести его в степень  n. Вместо того чтобы умножать a  на само себя  n  раз, мы можем использовать следующий подход:

  1. Если  n чётное, то  a^n = (an/2)^2
  2. Если ( n ) нечётное, то  a^n = a x a^(n-1)

Это позволяет нам возводить число в степень, разделяя показатель степени пополам на каждом шаге.

Пример

Допустим, нам нужно возвести число 3 в степень 5:

  1. 3^5 = 3 x 3^4
  2. 3^4 = (32)^2
  3. 3^2 = 3 x 3

Таким образом, 3^5 = 3 ? (3 ? 3)^2 = 243

Программная реализация

Быстрое возведение в степень (рекурсивная версия):

def fast_pow_recursive(a, n):

    if n == 0:

        return 1

    elif n % 2 == 1:

        return a * fast_pow_recursive(a, n - 1)

    else:

        temp = fast_pow_recursive(a, n // 2)

        return temp * temp

Быстрое возведение в степень (итеративная версия):

def fast_pow_iterative(a, n):

    result = 1

    while n > 0:

        if n % 2 == 1:

            result *= a

        a *= a

        n //= 2

    return result

Применение:

base, power = 3, 5

print(f"{base} в степени {power} по рекурсивному методу =", fast_pow_recursive(base, power))

print(f"{base} в степени {power} по итеративному методу =", fast_pow_iterative(base, power))

На выходе получим:

3 в степени 5 по рекурсивному методу = 243

3 в степени 5 по итеративному методу = 243


Быстрое возведение в степень — это эффективный метод, который может быть особенно полезен в задачах, где требуется выполнить множество операций возведения в степень или когда показатель степени очень велик.

Задачи для практики

1. Остановка цикла по условию

Напишите программу, которая будет запрашивать у пользователя числа до тех пор, пока он не введет “0”. Как только это произойдет, остановите выполнение цикла.

Пример:

Ввод:

5

8

12

0

Вывод: Вы завершили ввод!

2. Нахождение простых чисел

Напишите программу, которая найдет и выведет все простые числа до заданного числа N.

Пример:

Ввод: 10

Вывод: 2 3 5 7

3. Вычисление НОД двух чисел

Используя алгоритм Евклида, напишите функцию для нахождения НОД двух чисел.

4. Быстрое возведение в степень

Реализуйте функцию быстрого возведения числа в степень. Сравните время выполнения с обычным методом возведения в степень.

5. Вычисление факториала

Напишите программу, которая вычисляет факториал числа с использованием цикла.

Пример:

Ввод: 5

Вывод: 120

6. Поиск делимости

Напишите программу, которая будет искать числа до N, которые делятся без остатка на 3 и на 5 одновременно.

Пример:

Ввод: 30

Вывод: 15 30

7. Вычисление НОК

Используя уже написанную вами функцию для вычисления НОД, напишите функцию для нахождения НОК.

8. Перевод числа в другую систему счисления

Напишите программу, которая будет переводить число из десятичной системы счисления в двоичную.

Пример:

Ввод: 10

Вывод: 1010

9. Сумма цифр числа

Напишите программу, которая будет считать сумму цифр введенного числа.

Пример:

Ввод: 1234

Вывод: 10

10. Подсчет количества делителей числа

Реализуйте программу, которая будет считать количество делителей заданного числа.

Пример:

Ввод: 12

Вывод: 6

Подсказка:

Делителями числа 12 являются: 1, 2, 3, 4, 6, 12.


Каждая из предложенных задач поможет углубить понимание алгоритмов и работы с циклами. Решая задачи, студенты смогут закрепить материал, пройденный на лекциях, и развить свои навыки программирования.



15.10.2023 16:30 Автор/источник: код будущего
Комментировать
Вы не залогинены! Регистрация




Вход на курсы

Навигация:

Привет, Гость
Войти
Идентификация
Я забыл свой пароль
Регистрация
Последние статьи
Календарь статей
Ноябрь 2024
ПнВтСрЧтПтСбВс
 123
45678910
11121314151617
18192021222324
252627282930
Усердный врач подобен пеликану. /К. Прутков/
Счётчик
Сейчас на сайте - 1 (0 зарег.)
Всего хитов3866 
Сегодня хитов3866 
Сегодня хостов1514