{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Программирование на языке Python для сбора и анализа данных\n", "*Семинары ведут: Щуров И.В., Будылин Р.Я., НИУ ВШЭ*\n", "\n", "Данный notebook является набором задач по курсу \n", "«Программирование на языке Python для сбора и анализа данных» \n", "(НИУ ВШЭ, 2014-15). Распространяется по лицензии [CC BY-SA \n", "4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.ru).\n", "На [странице курса](http://math-info.hse.ru/s15/m) находятся другие материалы." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Домашнее задание №6, дополнение: задача C\n", "В связи с технической проблемой, решение задачи C не учитывалось при автоматической проверке ДЗ№6. Если вы сделали эту задачу, пожалуйста, сдайте её отдельно в виде этой микро-домашки. Как обычно, нужно скачать этот ноутбук, внести решение в соответствующее поле и сдать через [систему приёма ДЗ](http://python.math-hse.info)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Задача C. (1 балл.)\n", "Написать функцию `get_first_student_grade(students)`, принимающую на вход список `students`, каждый элемент которого является кортежем: первый элемент кортежа является именем студента, а второй его оценкой. Например: `students = [('Bob', 3), ('Alice', 4)]`. Функция должна вернуть оценку студента, имя которого является первым при алфавитной сортировке. (В нашем случае должна вернуть число `4`.) Все студенты имеют разные имена.\n", "\n", "**Подсказка.** См. подсказку к задаче B. Возможно, функции `min()` удастся скормить кортежи? Попробуйте! Кстати, задача решается ровно в одну строчку (не считая `def`). Использовать библиотеки нельзя." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true, "deletable": false, "nbgrader": { "checksum": "4b06a19f5a6f5e9f5b3b2e6acb268dbd", "grade": false, "grade_id": "prC", "locked": false, "solution": true } }, "outputs": [], "source": [ "# YOUR CODE HERE" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false, "deletable": false, "nbgrader": { "checksum": "1bde310d36dfd5b4e5d9dffdc0bb13b1", "grade": true, "grade_id": "prC_t", "locked": true, "points": 1, "solution": false } }, "outputs": [], "source": [ "from random import shuffle, seed\n", "seed(0)\n", "def shuffle_test(f, inp, outp, n=10):\n", " for i in range(n):\n", " shuffle(inp)\n", " assert f(inp)==outp\n", "def test(inp,outp, n=10):\n", " return shuffle_test(get_first_student_grade, inp, outp)\n", "test([('Bob', 3), ('Alice', 4)], 4)\n", "test([('Zzz', 1)], 1)\n", "test([('Haha', 2), ('Hoho', 3), ('Zzz', 4), ('aaaa', 5)], 2)\n", "\n", "del shuffle, seed, shuffle_test, test" ] } ], "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.5.0" } }, "nbformat": 4, "nbformat_minor": 0 }