{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Web-scraping: сбор данных из баз данных и интернет-источников\n", "\n", "*Алла Тамбовцева, НИУ ВШЭ*\n", "\n", "## Домашнее задание 1\n", "\n", "*Задание выполняется самостоятельно. При любых нетривиальных совпадениях в решениях задач все вовлечённые домашние работы будут оценены на 0 баллов.*\n", "\n", "### Задача 1 (6 баллов)\n", "\n", "Дан список фразовых глаголов `verbs`:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "verbs = [\"turn on\", \"turn off\", \"take off\", \"go on\", \"put off\", \n", " \"take on\", \"put on\", \"let off\", \"look up\", \"run away\"]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "a. (2 балла) Сохраните в список `verbs_on` глаголы с предлогом `on`, а в список `verbs_off` – глаголы с предлогом `off`." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "### YOUR CODE HERE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b. (2 балла) Напишите код, который выводит на экран сообщение `\"ON > OFF\"`, если количество элементов в списке `verbs_on` больше, чем количество элементов в списке `verbs_off`, и сообщение `\"ON <= OFF\"` – если иначе." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "### YOUR CODE HERE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "c. (2 балла) Используя список `verbs_off` и методы на строках, выведите на экран сообщение `\"Let off, put off, take off, turn off are sorted off-verbs.\"`" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "### YOUR CODE HERE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 2 (2 балла)\n", "\n", "Дана строка `song`:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "song = \"Every drop of rain That falls in Sahara Desert says it all...\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Сохраните в переменную `words` список слов из этой строки, считая, что все слова должны быть набраны строчными (маленькими) буквами." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "### YOUR CODE HERE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 3 (3 балла)\n", "\n", "У питона Пети в записной книжке хранятся полные имена друзей и знакомых из разных стран. Записная книжка представляет собой словарь:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "pythons = {\"королевский питон Рональд\" : \"Уганда\", \n", " \"карликовый питон Антониа\" : \"Ангола\", \n", " \"сетчатый питон Асиф\" : \"Бангладеш\", \n", " \"зеленый питон Оливер\" : \"Австралия\", \n", " \"тиморский питон Николау\" : \"Восточный Тимор\", \n", " \"аметистовый питон Харрисон\" : \"Австралия\", \n", " \"тигровый питон Мэйли\" : \"Китай\",\n", " \"оливковый питон Руби\" : \"Австралия\", \n", " \"белогубый питон Арис\" : \"Индонезия\", \n", " \"эфиопский питон Оника\" : \"Мозамбик\"}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Питон Петя хочет съездить в Австралию, и поэтому хочет вывести на экран имена тех друзей и знакомых, которые живут в Австралии (чтобы потом выбрать, у кого остановиться). Напишите программу, которая выводит на экран полные имена питонов из Австралии.\n", "\n", "Ожидаемый вывод на экран (порядок записей может отличаться):\n", "\n", " зеленый питон Оливер\n", " оливковый питон Руби\n", " аметистовый питон Харрисон" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "### YOUR CODE HERE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 4 (3 балла)\n", "\n", "Дан список с названиями файлов:" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "files = ['file 1.txt', 'file 2.txt', 'file 6.txt', 'file 9.txt']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Напишите программу, которая переименовывает файлы в списке ‒ заменяет все пробелы на нижнее подчеркивание – и выводит обновленный список `files` на экран.\n", "\n", "**Пример**\n", "\n", "На входе:\n", "\n", " files = ['file 1.txt', 'file 2.txt', 'file 6.txt', 'file 9.txt']\n", "\n", "На выходе:\n", "\n", " files = ['file_1.txt', 'file_2.txt', 'file_6.txt', 'file_9.txt']\n", "\n", "Подсказка: вам потребуется метод `.replace()` для строк." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "### YOUR CODE HERE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 5 (3 балла)\n", "\n", "Создайте какие-нибудь две строки и сохраните их в переменные `s1` и `s2`. Разбейте первую строку на слова и добавьте в конец получившегося списка вторую строку целиком. Выведите на экран получившийся список.\n", "\n", "**Пример**\n", "\n", "На входе:\n", "\n", " s1 = \"Hello Brave New World\"\n", " s2 = \"This is a test\"\n", "\n", "На выходе:\n", "\n", " ['Hello', 'Brave', 'New', 'World', 'This is a test']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача 6 (3 балла)\n", "\n", "Дан словарь с информацией по пользователям:" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "info = {\"user00\" : {\"name\" : \"Ann\", \n", " \"age\" : \"16\",\n", " \"hobby\" : [\"hiking\", \"bouldering\", \"skating\"],\n", " \"languages\" : {\"English\" : \"advanced\", \n", " \"Spanish\" : \"intermediate\"}},\n", " \"user01\" : {\"name\" : \"Nick\",\n", " \"age\" : \"20\", \n", " \"hobby\" : [\"swimming\", \"gaming\"], \n", " \"languages\" : {\"French\" : \"elementary\"}}}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Используя элементы словаря (извлекая их из него явно, с помощью кода), выведите на экран сообщение:\n", "\n", " Ann is 16. She likes hiking, bouldering, skating. Her English is \n", " at an advanced level." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Подсказка: предварительно сохраните все необходимые элементы в переменные, а потом подставьте их в текстовый шаблон через f-строки (см.ниже)." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Ann is 20. She likes cats. Her Japanese is at an intermediate level.\n" ] } ], "source": [ "age = 20\n", "smth = \"cats\"\n", "lang = \"Japanese\"\n", "adj = \"intermediate\"\n", "\n", "res = f\"Ann is {age}. She likes {smth}. Her {lang} is at an {adj} level.\"\n", "print(res)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "### YOUR CODE HERE" ] } ], "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 }