{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Программирование на Python\n", "\n", "## Практикум 1: списки, цикл for, методы на строках\n", "\n", "*Алла Тамбовцева, НИУ ВШЭ*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 1\n", "\n", "Дан список станций жёлтой ветки московского метро (упорядочены как на карте). Давайте считать, что движение происходит от Третьяковской до Новокосино." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "line = [\"Третьяковская\", \"Марксистская\", \"Площадь Ильича\", \"Авиамоторная\", \n", " \"Шоссе Энтузиастов\", \"Перово\", \"Новогиреево\", \"Новокосино\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Напишите программу, которая запрашивает у пользователя название текущей станции метро и выводит на экран сообщение вида (считайте, что пользователь знает, какая станция конечная, и не будет запрашивать станцию, следующую после Новокосино):\n", "\n", " Следующая станция: [станция].\n", "\n", "**Пример**\n", "\n", "Входные данные:\n", "\n", " Площадь Ильича\n", "\n", "Выходные данные:\n", "\n", " Следующая станция: Авиамоторная." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 2\n", "\n", "Есть список имён `girls`: " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "girls = [\"Иветта\", \"Виолетта\", \"Кассандра\", \"Вирджиния\", \n", " \"Амелия\", \"Розамунда\", \"Янина\", \"Беатриса\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Используя список `girls`, выведите на экран следующие списки:\n", "\n", " [\"Виолетта\", \"Кассандра\", \"Вирджиния\", \"Амелия\"]\n", " [\"Вирджиния\", \"Амелия\", \"Розамунда\", \"Янина\", \"Беатриса\"]\n", " [\"Иветта\", \"Виолетта\", \"Вирджиния\", \"Амелия\"]\n", " [\"Кассандра\", \"Амелия\", \"Розамунда\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 3\n", "\n", "Напишите программу, которая запрашивает у пользователя с клавиатуры два целых числа через пробел и возвращает список целых чисел, которые находятся в промежутке между этими числами (исключая указанные числа).\n", "\n", "**Пример**\n", "\n", "Входные данные:\n", "\n", " 5 9\n", "Выходные данные:\n", "\n", " [6, 7, 8]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 4\n", "\n", "Напишите программу, которая запрашивает целое число $n$ с клавиатуры, затем $n$ целых чисел, после чего выводит произведение всех этих чисел.\n", "\n", "**Пример**\n", "\n", "Входные данные:\n", "\n", " 3\n", " 9\n", " 2\n", " 5\n", "\n", "Выходные данные:\n", "\n", " 90" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 5\n", "\n", "Объясните, что делает следующий код и почему он выдает такие результаты:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5\n", "3\n", "5\n", "7\n" ] } ], "source": [ "M = [1, 2, 3, 4]\n", "\n", "for i in range(len(M)):\n", " a = M[i] + M[i-1]\n", " print(a)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 6\n", "\n", "Факториалом $n!$ натурального числа $n$ называется произведение всех натуральных чисел от 1 до $n$ включительно. Напишите программу, которая запрашивает натуральное число $n$ с клавиатуры, вычисляет и выводит на экран $n!$. Использовать какие-либо библиотечные функции нельзя (то есть запрещена конструкция `import`)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 7\n", "\n", "В среднем за неделю Питон получает пять сообщений от Анаконды ($\\lambda$=5). Пользователь с клавиатуры вводит число сообщений, которые Анаконда может прислать Питону ($k$). Напишите программу, которая выводит на экран вероятность, с которой Питон получит сообщений от Анаконды за неделю, с точностью до трёх знаков после запятой. Сообщение, выводимое на экран, должно быть такого вида:\n", "\n", " Число сообщений от Анаконды за неделю равно [k], вероятность равна [p].\n", "\n", "Вероятность того, что Питон получит ровно сообщений, определяется следующим образом (распределение Пуассона):\n", "\n", "$$\n", "P(X=k)=e^{−\\lambda}\\frac{\\lambda^k}{k!},\n", "$$\n", "\n", "**Пример**\n", "\n", "Входные данные:\n", "\n", " 2\n", "\n", "Выходные данные:\n", "\n", " Число сообщений от Анаконды за неделю равно 2, вероятность равна 0.084." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 8\n", "\n", "$X$ – дискретная случайная величина, которая может принимать как целые, так и дробные значения. В файле `DV.txt` в первой строке сохранены значения $X$ через пробел (количество значений может быть любым), во второй – соответствующие им вероятности, тоже через пробел.\n", "\n", "Напишите программу, которая считывает значения из файла `DV.txt`, вычисляет математическое ожидание и дисперсию $X$ и записывает их в файл `DV_answer.txt` с точностью до второго знака после запятой в следующем формате:\n", "\n", " E(X) = [математическое ожидание]; D(X) = [дисперсия]\n", "\n", "Считайте, что данные в файле сохранены корректным образом, то есть количество вероятностей всегда совпадает с количеством значений, при этом вероятности всегда лежат в пределах от 0 до 1 и записываются в виде десятичных дробей. Напоминание:\n", "\n", "$$\n", "E(X)=\\sum_{i=1}^{n}x_ip_i\n", "$$\n", "\n", "$$\n", "D(X)=E(X^2)−[E(X)]^2\n", "$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 9\n", "\n", "В файле `text.txt` сохранён некоторый текст. Напишите программу, которая создаёт новый файл `text_clean.txt`, который содержит в себе текст из `text.txt`, преобразованный таким образом, что:\n", "\n", "* все слова написаны строчными буквами;\n", "* отсутствуют знаки препинания." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 10\n", "\n", "Напишите программу, которая запрашивает с клавиатуры любое количество слов через пробел и записывает в файл `reverse.txt` эти слова, написанные наоборот, каждое слово с новой строки. \n", "\n", "**Пример**\n", "\n", "Входные данные:\n", "\n", " питон ползёт по следу\n", "\n", "Содержимое файла:\n", "\n", " нотип\n", " тёзлоп\n", " оп\n", " уделс" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" } }, "nbformat": 4, "nbformat_minor": 2 }