Кафедра ИСиТ УО ВГТУ
  • Специальности
    • Экономика электронного бизнеса
    • Информационные системы
    • Information Control Systems
  • Каталог
  • Сайт кафедры
  • Сервисы
    • GitLab
    • JupyterHub
    • Soft
  1. ИСиТ
  2. РиОИИС
  3. Практика
  4. Лаб. работа “Основы программирования на Python”
  • ИСиТ
    • АОС
      • Теория
        • Введение в операционные системы
        • Управление памятью
        • Управление процессами
        • Система ввода-вывода
        • Информационная безопасность
        • Виртуализация
      • Практика
    • РВПсИПП
      • Теория
        • Настройка среды разработки для PHP
        • Введение в PHP
        • Работа с базами данных в PHP
        • Объектно-ориентированные возможности PHP
        • Разработка web-приложений на базе фреймворков
        • Основы Laravel
        • Шаблоны в Laravel
        • Модели и базы данных в Laravel
        • Формы и валидация в Laravel
        • Аутентификация и авторизация в Laravel
        • Создание REST API в Laravel
        • Работа с файлами и изображениями в Laravel
        • Тестирование и отладка в Laravel
        • Введение в фреймворк Symfony
        • Маршруты и контроллеры в Symfony
        • Шаблоны и Twig в Symfony
        • Формы и валидация в Symfony
        • Доступ к базам данных в Symfony
        • Аутентификация и авторизация в Symfony
        • Сервисы и зависимости в Symfony
        • Создание REST API в Symfony
        • Работа с файлами и медиа в Symfony
        • Сравнение и выбор фреймворка
        • Развертывание веб-приложения
      • Практика
        • Регистрация в JupyterHub
        • Лаб. работа “Основы PHP”
        • Лаб. работа “Массивы в PHP”
        • Лаб. работа “Создание веб-приложений с использованием Slim”
        • Лаб. работа 1 “Создание нового приложения Laravel”
        • Лаб. работа 2 “Добавление главной страницы и базовых маршрутов”
        • Лаб. работа 3 “Создание моделей, миграций и сидеров”
        • Лаб. работа 4 “Создание индексных страниц и пагинация”
        • Лаб. работа 5 “Создание форм для работы с сущностями”
        • Лаб. работа 6 “Работа с файлами (эмуляция S3-хранилища)”
        • Лаб. работа “Создание маршрутов в Laravel”
        • Лаб. работа “Работа с базами данных в Laravel”
        • Лаб. работа “Работа с формами в Laravel”
        • Лаб. работа “Аутентификация и авторизация в Laravel”
        • Лаб. работа “Работа с файлами в Laravel”
        • Лаб. работа “Тестирование и оптимизация в Laravel”
        • Лаб. работа “Создание REST API в Laravel”
        • Лаб. работа “Основы Symfony”
        • Лаб. работа “Шаблоны и представления в Symfony”
        • Лаб. работа “Работа с базами данных в Symfony”
        • Лаб. работа “Формы и аутентификация в Symfony”
        • Лаб. работа “Сервисы и зависимости в Symfony”
        • Лаб. работа “REST API в Symfony”
        • Лаб. работа “Работа с медиа контентом в Symfony”
        • Лаб. работа “Создание и развертывание проекта”
        • Расчетно-графическая работа: Разработка веб-приложения с использованием Laravel
          • Методические рекомендации по выполнению работы
          • Варианты заданий для расчетно-графической работы
    • ПСП
      • Теория
        • Введение
        • Протокол HTTP
        • Программирование с использованием сокетов
      • Практика
        • Программное обеспечение
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
      • Темы курсовых проектов по дисциплине “Программирование сетевых приложений”
    • Компьютерные сети
      • Теория
        • Введение в компьютерные сети
        • Топологии сетей
        • Кодирование и мультиплексирование
        • Стеки протоколов
        • Адресация в компьютерных сетях
        • Система доменных имен (DNS)
        • Программирование с использованием сокетов
        • Введение в PHP
        • Протокол HTTP
        • Введение в компьютерные сети
      • Практика
        • Программное обеспечение
        • Регистрация в JupyterHub
        • Лаб. работа “Почтовые протоколы”
        • Лаб. работа “Протокол FTP”
        • Лаб. работа “Протокол HTTP”
        • Лаб. работа “Программирование сетевых приложений с использованием сокетов”
        • Лаб. работа “Основы PHP”
        • Лаб работа “Массивы в PHP”
    • РиОИИС
      • Теория
        • Классификация оптимизационных задач
        • Генетические алгоритмы
        • Системы массового обслуживания
        • Теория игр
        • Машинное обучение
        • Глубокое обучение (Deep learning)
        • Основы функционального программирования
        • Основы программирования на Haskell
        • Введение в логическое программирование
        • Инференция и рассуждения в логическом программировании
        • Разработка экспертных систем
        • Интеллектуальные системы и их архитектура
        • Веб-скрэйпинг
        • Сбор данных с открытых API
      • Практика
        • JupyterHub
        • Лаб. работа "Методы одномерной оптимизации"
          • Лаб. работа “Методы одномерной оптимизации”
        • Лаб. работа “Методы многомерной оптимизации”
        • Лаб. работа “Основы программирования на Python”
        • Лаб. работа “Функции в Python”
        • Лаб. работа “Рекурсия в Python”
        • Лаб. работа “Итераторы в Python”
        • Лаб. работа “Генетические алгоритмы”
        • Лаб. работа “Haskell”
        • Лаб. работа “Логическое программирование”
        • Лаб. работа “Сбор данных с помощью веб-скрейпинга”
        • Лаб. работа “Предобработка данных”
        • Лаб. работа “Машинное обучение: классификация”
        • Лаб. работа “Создание и обучение простейших нейронных сетей”
        • Лаб. работа “Системы массового обслуживания”
        • Лаб. работа “Обработка естественного языка”
        • Лаб. работа “Компьютерное зрение”
        • Лаб. работа “Нейросети и глубокое обучение”
    • КСКР
      • Практика
        • Лаб. работа “Одномерные и двумерные массивы в C#”
        • Лаб. работа “Обращение матриц в C#”
    • Системное программирование
      • Теория
        • Управление памятью в Windows
        • Файловые операции в Windows
        • Управление процессами в Windows
        • Графический интерфейс Windows
        • ОС Unix
      • Практика
        • Лаб. работа “Работа с динамической памятью в Windows”
        • Лаб. работа “Операции с файлами в Windows”
        • Лаб. работа “Управление процессами в Windows”
        • Лаб. работа “Работа с виртуальной машиной Linux”
        • Лаб. работа “Язык командного энтерпритатора Shell”
        • Лаб. работа “Работа с файлами в Linux”
        • Лаб. работа “Работа с процессами в Linux”
    • ИППРПО
      • Теория
      • Практика
        • Лаб. работа “Язык командного энтерпритатора Shell”
        • Лаб. работа “Управление процессами в Shell”
        • Лаб. работа “Управление файловой системой в Shell”
        • Лаб. работа “Управление пакетами в ОС Linux”
        • Лаб. работа “Сетевые инструменты в Linux”
        • Лаб. работа “Мониторинг и анализ системы Linux”
        • Лаб. работа “Основы Docker. Управление контейнерами”
        • Лаб. работа “Docker: Сети”
        • Лаб. работа "Docker: Образы"
        • Лаб. работа “Docker Compose: Управление многоконтейнерными приложениями”
        • Лаб. работа “CI/CD с GitLab”

Содержание

  • Цель работы
  • Теоретические сведения
  • Порядок выполнения работы
  • Задания для самостоятельного выполнения
  • Контрольные вопросы
  • Требования к отчету
  1. ИСиТ
  2. РиОИИС
  3. Практика
  4. Лаб. работа “Основы программирования на Python”

Лаб. работа “Основы программирования на Python”

Разработка и оптимизация интеллектуальных информационных систем
Практика
Автор

Бизюк Андрей

Дата публикации

17 сентября 2025 г.

Цель работы

Изучить основы синтаксиса языка Python: переменные, базовые типы данных, операторы, функции ввода-вывода и управляющие конструкции (ветвления и циклы). Получить практические навыки написания и отладки простых программ.

Теоретические сведения

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

Переменная в Python — это имя, которое ссылается на значение (объект) в памяти. Имя переменной может состоять из букв, цифр и знака подчеркивания _, но не может начинаться с цифры. Python является языком с динамической типизацией, что означает, что тип переменной определяется автоматически в момент присваивания значения.

Основные типы данных:

  • int: целые числа (например, 10, -5, 0).
  • float: числа с плавающей точкой (например, 3.14, -0.5).
  • str: строки, последовательности символов (например, 'Привет', "Python").
  • bool: логический тип, может принимать значения True или False.
# Пример присваивания
age = 25              # int
pi_value = 3.14159    # float
user_name = "Alice"   # str
is_student = True     # bool

Функции ввода и вывода

Для вывода информации на экран используется функция print(). Для считывания данных, введенных пользователем с клавиатуры, используется функция input().

Важно помнить, что функция input() всегда возвращает строку (str). Для выполнения математических операций с введенными числами их необходимо преобразовать в числовой тип с помощью функций int() или float().

# Вывод данных
print("Привет, мир!")

# Ввод данных
name = input("Введите ваше имя: ")
print("Привет, " + name + "!")

# Ввод числа и преобразование типа
age_str = input("Введите ваш возраст: ")
age_int = int(age_str)
print("Через год вам будет:", age_int + 1)

Операторы

Арифметические операторы
Оператор Описание Пример
+ Сложение 5 + 2
- Вычитание 5 - 2
* Умножение 5 * 2
/ Деление (результат - float) 5 / 2
// Целочисленное деление 5 // 2
% Остаток от деления 5 % 2
** Возведение в степень 5 ** 2
Операторы сравнения
Оператор Описание
== Равно
!= Не равно
> Больше
< Меньше
>= Больше или равно
<= Меньше или равно
Логические операторы
Оператор Описание
and Логическое “И” (истина, если оба операнда истинны)
or Логическое “ИЛИ” (истина, если хотя бы один операнд истинен)
not Логическое “НЕ” (инвертирует значение)

Управляющие конструкции

Условный оператор if-elif-else

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

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

if x > 0:
    print("Число положительное")
elif x < 0:
    print("Число отрицательное")
else:
    print("Число равно нулю")
Цикл for

Используется для перебора элементов в последовательности (например, в диапазоне чисел, сгенерированном range()).

# Вывод чисел от 0 до 4
for i in range(5):
    print(i)

# Сумма чисел от 1 до 10
total = 0
for i in range(1, 11):
    total = total + i
print("Сумма:", total)
Цикл while

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

# Пример с обратным отсчетом
count = 5
while count > 0:
    print(count)
    count = count - 1  # Важно изменять переменную условия!
print("Старт!")

Порядок выполнения работы

  1. Ознакомиться с теоретическими сведениями и примерами кода.
  2. Настроить среду выполнения Python (например, Visual Studio Code с расширением Python, PyCharm Community Edition или онлайн-среда, такая как Google Colab).
  3. Выполнить задания для самостоятельной работы. Для каждого задания создать отдельный файл .py.
  4. Продемонстрировать работоспособность программ преподавателю.
  5. Подготовить отчет о проделанной работе, включающий ответы на контрольные вопросы.

Задания для самостоятельного выполнения

Задание 1: Калькулятор выражений

Напишите программу, которая запрашивает у пользователя два целых числа (a и b) и вычисляет значение выражения \(z = (a + b)^2 / (a - 1)\). Программа должна вывести результат на экран.

  • Пример ввода: Введите число a: 5 Введите число b: 3
  • Пример вывода: Результат выражения z: 16.0

Задание 2: Проверка знака числа

Напишите программу, которая запрашивает у пользователя одно целое число и определяет, является ли оно положительным, отрицательным или нулём. Используйте конструкцию if-elif-else.

  • Пример ввода: Введите число: -10
  • Пример вывода: Число отрицательное

Задание 3: Сумма четных чисел

Напишите программу, которая находит и выводит сумму всех четных чисел в диапазоне от 1 до 50 (включительно). Используйте цикл for и оператор остатка от деления (%).

  • Пример вывода (без ввода данных): Сумма четных чисел от 1 до 50: 650

Задание 4 (со звездочкой): Угадай число

Напишите игру “Угадай число”.

  1. Программа “загадывает” случайное целое число от 1 до 100. Для этого используйте import random и функцию random.randint(1, 100).
  2. Программа в цикле while просит пользователя ввести число.
  3. Если введенное число больше загаданного, программа выводит “Слишком много”.
  4. Если введенное число меньше загаданного, программа выводит “Слишком мало”.
  5. Если пользователь угадал число, программа выводит “Вы угадали!” и завершает работу.
import random

secret_number = random.randint(1, 100)
# ... ваш код дальше

Контрольные вопросы

  1. Какие основные типы данных вы использовали в лабораторной работе?
  2. Почему необходимо преобразовывать тип данных, возвращаемый функцией input()?
  3. В чем разница между операторами деления / и //? Приведите пример.
  4. Для чего используется конструкция if-elif-else?
  5. В каких случаях предпочтительнее использовать цикл for, а в каких — while?

Требования к отчету

Отчет должен содержать:

  • Титульный лист.
  • Цель работы.
  • Код программ для каждого выполненного задания.
  • Скриншоты, демонстрирующие работу каждой программы (ввод данных и результат).
  • Письменные ответы на контрольные вопросы.
  • Вывод по работе.
Наверх
Лаб. работа “Методы многомерной оптимизации”
Лаб. работа “Функции в Python”