Skip to content

Instantly share code, notes, and snippets.

@ischurov
Created February 7, 2020 19:15
Show Gist options
  • Save ischurov/1e332fcfd1c082ecf77497e1cbb8f0d0 to your computer and use it in GitHub Desktop.
Save ischurov/1e332fcfd1c082ecf77497e1cbb8f0d0 to your computer and use it in GitHub Desktop.
lecture 7.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "table = [[2, 3, 2, 5],\n [1, 2, 5, 4],\n [4, 3, 5, 4],\n [5, 2, 3, 1]]\n\n# Задача: отсортировать таблицу table\n# по второму столбцу, а при совпадении элементов во втором\n# столбце — по первому",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def sort_2_then_1(table):\n def my_sort_key(element):\n return (element[1], element[0])\n # return element[1::-1]\n return sorted(table, key=my_sort_key)\n ### YOUR SOLUTION HERE\n\nassert sort_2_then_1(table) == [\n [1, 2, 5, 4],\n [5, 2, 3, 1],\n [2, 3, 2, 5],\n [4, 3, 5, 4]]",
"execution_count": 10,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "sorted(['hello', 'world', 'test'], key=len)",
"execution_count": 2,
"outputs": [
{
"data": {
"text/plain": "['test', 'hello', 'world']"
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def sort_2_then_1(table): \n return sorted(table, \n key=lambda element: (element[1], element[0]))\nsort_2_then_1(table)",
"execution_count": 12,
"outputs": [
{
"data": {
"text/plain": "[[1, 2, 5, 4], [5, 2, 3, 1], [2, 3, 2, 5], [4, 3, 5, 4]]"
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "(lambda x, y=2: x + y)(3, 4)",
"execution_count": 20,
"outputs": [
{
"data": {
"text/plain": "7"
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "incrementors = []\nfor i in range(10):\n incrementors.append(lambda x: x + i)",
"execution_count": 22,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "incrementors[5](3)",
"execution_count": 24,
"outputs": [
{
"data": {
"text/plain": "12"
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "i = 100",
"execution_count": 25,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "incrementors[5](3)",
"execution_count": 26,
"outputs": [
{
"data": {
"text/plain": "103"
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "incrementors = []\nfor i in range(10):\n incrementors.append(lambda x, i=i: x + i)",
"execution_count": 27,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "incrementors[3](1)",
"execution_count": 28,
"outputs": [
{
"data": {
"text/plain": "4"
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def foo(x, *args):\n print(\"x =\", x)\n print(\"args =\", args)",
"execution_count": 29,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "foo(1, 2, 3)",
"execution_count": 30,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "x = 1\nargs = (2, 3)\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def bar(x, **kwargs):\n print(\"x =\", x)\n print(\"kwargs =\", kwargs)",
"execution_count": 34,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "bar(x=5, y=7, z=8)",
"execution_count": 35,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "x = 5\nkwargs = {'y': 7, 'z': 8}\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import matplotlib.pyplot as plt\n%matplotlib inline",
"execution_count": 37,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "points = [(1, 2), (2, 7), (1, 5), (2, 4)]\n# plt.plot([1, 2, 1, 2], [2, 7, 5, 4])",
"execution_count": 43,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "for x, y in points:\n print(x)",
"execution_count": 44,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "1\n2\n1\n2\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "[x ** 2 for x in range(10)]",
"execution_count": 45,
"outputs": [
{
"data": {
"text/plain": "[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]"
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def myplot(points, **kwargs):\n plt.plot([x for x, y in points],\n [y for x, y in points], **kwargs)",
"execution_count": 46,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "def foo(x, y):\n return 2 * x + y\nfoo(x=4, y=5)",
"execution_count": 52,
"outputs": [
{
"data": {
"text/plain": "13"
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "foo(**{'x': 4, 'y': 5})",
"execution_count": 53,
"outputs": [
{
"data": {
"text/plain": "13"
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "myplot([(x ** 3, x ** 2) for x in range(-5, 6)],\n color='teal', lw=4, marker='*')",
"execution_count": 51,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<Figure size 432x288 with 1 Axes>"
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "x",
"execution_count": 55,
"outputs": [
{
"data": {
"text/plain": "2"
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "locals()['x']",
"execution_count": 56,
"outputs": [
{
"data": {
"text/plain": "2"
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "import os",
"execution_count": 57,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "os.getcwd()",
"execution_count": 58,
"outputs": [
{
"data": {
"text/plain": "'/Users/user/prj/oldhse-2010-11/repo/2019-20/nes-datascience'"
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "!ls",
"execution_count": 59,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Lecture 1.ipynb Untitled1.ipynb lecture 4.ipynb ps01-6.ipynb\r\nLecture 2.ipynb \u001b[1m\u001b[36massignments\u001b[m\u001b[m lecture 5.ipynb test.txt\r\nUntitled.ipynb lecture 03.ipynb \u001b[35mold\u001b[m\u001b[m\r\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "#!dir for windows",
"execution_count": 62,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f = open(\"test.txt\")\nfor line in f:\n print(repr(line))\nf.close()",
"execution_count": 64,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "'Раз два три четыре пять\\n'\n'Вышел зайчик погулять\\n'\n'One two three\\n'\n'\\n'\n'This is my last line.'\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f = open(\"test.txt\")\nfor line in f:\n print(line.rstrip())\nf.close()\nprint(\"Okay\")",
"execution_count": 69,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Раз два три четыре пять\nВышел зайчик погулять\nOne two three\n\nThis is my last line.\nOkay\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f = open(\"test.txt\")\nfor line in f:\n print(line, end=\"\")\nf.close()\nprint(\"Okay\")",
"execution_count": 68,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Раз два три четыре пять\nВышел зайчик погулять\nOne two three\n\nThis is my last line.Okay\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f = open(\"test.txt\")\nfor line in f:\n print(line.rstrip())\nprint(\"Once again\")\nf.close()\nf = open(\"test.txt\")\nfor line in f:\n print(line.rstrip())\nf.close()",
"execution_count": 73,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Раз два три четыре пять\nВышел зайчик погулять\nOne two three\n\nThis is my last line.\nOnce again\nРаз два три четыре пять\nВышел зайчик погулять\nOne two three\n\nThis is my last line.\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "a = [1, 2, 3]\nfor i in a:\n print(i)\nfor i in a:\n print(i)",
"execution_count": 72,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "1\n2\n3\n1\n2\n3\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f = open(\"test.txt\")\nfor line in f:\n print(line.rstrip())\nprint(\"Once again\")\nf.seek(0)\nfor line in f:\n print(line.rstrip())\nf.close()",
"execution_count": 77,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Раз два три четыре пять\nВышел зайчик погулять\nOne two three\n\nThis is my last line.\nOnce again\nРаз два три четыре пять\nВышел зайчик погулять\nOne two three\n\nThis is my last line.\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f = open(\"test.txt\")\ntext = f.read()\nf.close()",
"execution_count": 78,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "text",
"execution_count": 79,
"outputs": [
{
"data": {
"text/plain": "'Раз два три четыре пять\\nВышел зайчик погулять\\nOne two three\\n\\nThis is my last line.'"
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f = open(\"test.txt\")\nlines = f.readlines()\nf.close()",
"execution_count": 80,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "lines",
"execution_count": 81,
"outputs": [
{
"data": {
"text/plain": "['Раз два три четыре пять\\n',\n 'Вышел зайчик погулять\\n',\n 'One two three\\n',\n '\\n',\n 'This is my last line.']"
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "with open('test.txt') as f:\n for line in f:\n print(line.rstrip())\n print(f.closed)\nprint(f.closed)",
"execution_count": 83,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Раз два три четыре пять\nВышел зайчик погулять\nOne two three\n\nThis is my last line.\nFalse\nTrue\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "f.read()",
"execution_count": 84,
"outputs": [
{
"ename": "ValueError",
"evalue": "I/O operation on closed file.",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[0;32m<ipython-input-84-571e9fb02258>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[0;31mValueError\u001b[0m: I/O operation on closed file."
]
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "with open('test-new.txt', encoding='cp1251') as f:\n for line in f:\n print(line.rstrip())",
"execution_count": 87,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Раз два три четыре пять\nВышел зайчик погулять\nOne two three\n\nThis is my last line.\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.7.2",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "",
"data": {
"description": "lecture 7.ipynb",
"public": false
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment