884 lines
23 KiB
Plaintext
884 lines
23 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"## Семинар 2"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 0 (разминка)\n",
|
||
"\n",
|
||
"Даны два списка `a` и `b` (см. ниже).\n",
|
||
" \n",
|
||
"1. Выведите на экран первый элемент списка `a`, третий элемент списка `a`, последний элемент списка `a`.\n",
|
||
"2. Добавьте в список `b` элемент 7 (просто допишите в конец).\n",
|
||
"3. Замените пятый элемент списка `a` на число 8.\n",
|
||
"4. Создайте список `merged`, который включает в себя все элементы списка `a` и списка `b`.\n",
|
||
"5. Создайте новый список `с`, который получается заменой последнего элемента списка `a` на число 100. Сам список `a` измениться не должен!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"a = [1, 0, 9, 12, 18, 34, 89, 91, 33, 127]\n",
|
||
"b = [2, 8, 9, 11, 76, 25, 44]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"1"
|
||
]
|
||
},
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# 1\n",
|
||
"a[0]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"9"
|
||
]
|
||
},
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"a[2]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"127"
|
||
]
|
||
},
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"a[-1]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# 2"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[1, 0, 9, 12, 18, 34, 89, 91, 33, 127, 7]"
|
||
]
|
||
},
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"a.append(7)\n",
|
||
"a"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[1, 0, 9, 12, 8, 34, 89, 91, 33, 127, 7]"
|
||
]
|
||
},
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# 3\n",
|
||
"a[4] = 8\n",
|
||
"a"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# 4\n",
|
||
"merged = a + b"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[1, 0, 9, 12, 8, 34, 89, 91, 33, 127, 7, 2, 8, 9, 11, 76, 25, 44]\n",
|
||
"[1, 0, 9, 12, 8, 34, 89, 91, 33, 127, 7]\n",
|
||
"[2, 8, 9, 11, 76, 25, 44]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"merged = a.copy()\n",
|
||
"merged.extend(b) # через extend лучше\n",
|
||
"\n",
|
||
"print(merged)\n",
|
||
"print(a)\n",
|
||
"print(b)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"[1, 0, 9, 12, 8, 34, 89, 91, 33, 127, 100]\n",
|
||
"[1, 0, 9, 12, 8, 34, 89, 91, 33, 127, 7]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# 5\n",
|
||
"C = a.copy() # важно - не присваивание, а копирование\n",
|
||
"C[-1] = 100\n",
|
||
"print(C)\n",
|
||
"print(a)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 1 (девочковое)\n",
|
||
"\n",
|
||
"Есть список имен:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"girls = [\"Иветта\", \"Виолетта\", \"Кассандра\", \"Вирджиния\", \n",
|
||
" \"Амелия\", \"Розамунда\", \"Янина\", \"Беатриса\"]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Используя список `girls`, выведите на экран следующие списки:\n",
|
||
"\n",
|
||
" [\"Виолетта\", \"Кассандра\", \"Вирджиния\", \"Амелия\"]\n",
|
||
" [\"Вирджиния\", \"Амелия\", \"Розамунда\", \"Янина\", \"Беатриса\"]\n",
|
||
" [\"Иветта\", \"Виолетта\", \"Вирджиния\", \"Амелия\"]\n",
|
||
" [\"Кассандра\", \"Амелия\", \"Розамунда\"]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['Виолетта', 'Кассандра', 'Вирджиния', 'Амелия']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(girls[1:5])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['Вирджиния', 'Амелия', 'Розамунда', 'Янина', 'Беатриса']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(girls[3:])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['Иветта', 'Виолетта', 'Вирджиния', 'Амелия']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(girls[0:2] + girls[3:5])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"['Кассандра', 'Амелия', 'Розамунда']\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(girls[2:3] + girls[4:6])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 2 (поэлементное) \n",
|
||
"\n",
|
||
"Дан список `L`. Выведите на экран (последовательно, с новой строчки): \n",
|
||
"\n",
|
||
"* все элементы списка `L`\n",
|
||
"* логарифмированные значения элементов списка `L`"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"L = [12, 3, 8, 125, 10, 98, 54, 199]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"12\n",
|
||
"3\n",
|
||
"8\n",
|
||
"125\n",
|
||
"10\n",
|
||
"98\n",
|
||
"54\n",
|
||
"199\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"for i in L:\n",
|
||
" print(i)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2.4849066497880004\n",
|
||
"1.0986122886681098\n",
|
||
"2.0794415416798357\n",
|
||
"4.8283137373023015\n",
|
||
"2.302585092994046\n",
|
||
"4.584967478670572\n",
|
||
"3.9889840465642745\n",
|
||
"5.293304824724492\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import math\n",
|
||
"\n",
|
||
"for i in L:\n",
|
||
" print(math.log(i))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"Замените пятый элемент списка `L` на 0. Проделайте те же операции, что и раньше. Объясните, почему получаются такие результаты."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"2.4849066497880004\n",
|
||
"1.0986122886681098\n",
|
||
"2.0794415416798357\n",
|
||
"4.8283137373023015\n"
|
||
]
|
||
},
|
||
{
|
||
"ename": "ValueError",
|
||
"evalue": "math domain error",
|
||
"output_type": "error",
|
||
"traceback": [
|
||
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
||
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
|
||
"\u001b[0;32m<ipython-input-23-c9c0aa08fedd>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mL\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mprint\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlog\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mi\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: math domain error"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"L[4] = 0\n",
|
||
"\n",
|
||
"for i in L:\n",
|
||
" print(math.log(i)) # логарифм от 0 - невозможно!"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 3 (демографическое)\n",
|
||
"\n",
|
||
"В списке `age` сохранены значения возраста респондентов: \n",
|
||
"\n",
|
||
" age = [24, 35, 42, 27, 45, 48, 33]\n",
|
||
" \n",
|
||
"Создайте список `age2`, в котором будут храниться значения возраста, возведенные в квадрат.\n",
|
||
"\n",
|
||
"*Подсказка:* используйте цикл *for*."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 25,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[576, 1225, 1764, 729, 2025, 2304, 1089]"
|
||
]
|
||
},
|
||
"execution_count": 25,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"age = [24, 35, 42, 27, 45, 48, 33]\n",
|
||
"\n",
|
||
"age2 = []\n",
|
||
"\n",
|
||
"for a in age:\n",
|
||
" age2.append(a ** 2)\n",
|
||
"age2"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 4 (игровое)\n",
|
||
"\n",
|
||
"Питон просит пользователя загадать (ввести с клавиатуры) целое число $k$ от 1 до 10. Питон берет это число $k$ и выводит на экран $k$-тый элемент списка `numbers`, причем $k$-ый элемент в привычном понимании, в нумерации, которая начинается с единицы. \n",
|
||
"\n",
|
||
"Список `numbers`:"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 26,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"numbers = [1, 5, 6, 8, 10, 21, 25, 1, 0, -9, 9]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"**Пояснение:**\n",
|
||
" \n",
|
||
"*Входные данные:*\n",
|
||
"\n",
|
||
" Введите целое число от 1 до 10: 3\n",
|
||
" \n",
|
||
"*Выходные данные:*\n",
|
||
"\n",
|
||
" 6"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 28,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Введите целое число от 1 до 10: 3\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"k = int(input(\"Введите целое число от 1 до 10: \"))"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 29,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"6\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"print(numbers[k-1])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 5 (числовое)\n",
|
||
"\n",
|
||
"У питона есть набор любимых чисел.\n",
|
||
"\n",
|
||
" favorites = [3, 7, 11, 23, 18, 48, 81]\n",
|
||
"\n",
|
||
"Напишите программу, которая просит пользователя ввести целое число, и если оно нравится питону, на экран будет выводиться сообщение: \"Мое любимое число!\", если нет ‒ \"Эх, ну почему?\".\n",
|
||
"\n",
|
||
"*Подсказка:* чтобы проверить, принадлежит ли некоторый объект элементам списка, можно воспользоваться оператором *in*."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 30,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"favorites = [3, 7, 11, 23, 18, 48, 81]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 31,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Введите целое число: 81\n",
|
||
"Мое любимое число!\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"n = int(input(\"Введите целое число: \"))\n",
|
||
"if n in favorites:\n",
|
||
" print(\"Мое любимое число!\")\n",
|
||
"else:\n",
|
||
" print(\"Эх, ну почему?\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 6 (четное)\n",
|
||
"\n",
|
||
"Напишите программу, которая просит пользователя ввести число и, если оно чётное, выводит на экран сообщение: \"Это число чётное\", если нечётное ‒ \"Это число нечётное\".\n",
|
||
"\n",
|
||
"*Подсказка:* используйте оператор `%` для определения остатка от деления."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 32,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Введите целое число: 9\n",
|
||
"Это число нечётное.\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"x = int(input(\"Введите целое число: \"))\n",
|
||
"\n",
|
||
"if x % 2 == 0:\n",
|
||
" print(\"Это число чётное.\")\n",
|
||
"else:\n",
|
||
" print(\"Это число нечётное.\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 7 (музыкальное)\n",
|
||
"\n",
|
||
"Напишите программу, которая принимает на вход список слов такого вида:\n",
|
||
"\n",
|
||
" words = [\"Speak \",\"to\", \"me \", \"of\", \"Florence\" ,\"And \", \"of\", \"the\", \"Renaissance\"]\n",
|
||
"\n",
|
||
"а возвращает список\n",
|
||
"\n",
|
||
" words_clean = [\"speak\", \"to\", \"me\", \"of\", \"florence\", \"and\", \"of\", \"the\", \"renaissance\"]\n",
|
||
"\n",
|
||
"Другими словами, программа убирает пробелы в словах и приводит все слова к нижнему регистру. Эту задачу можно решить через циклы, но в Python есть такая полезная вещь как списковые включения. Они работают быстрее, чем циклы, и создавать новые списки на основе старых очень удобно. Прочитать про них можно [здесь](http://pythontutor.ru/lessons/lists/#section_3) и [здесь](https://nbviewer.jupyter.org/github/allatambov/Py-programming-3/blob/master/20-04/lecture-lists-contd.ipynb).\n",
|
||
"\n",
|
||
"*Подсказка:* запросите `help()` по методам `strip()` и `lower()`."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 33,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"['speak', 'to', 'me', 'of', 'florence', 'and', 'of', 'the', 'renaissance']"
|
||
]
|
||
},
|
||
"execution_count": 33,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"words = [\"Speak \",\"to\", \"me \", \"of\", \"Florence\" ,\"And \", \"of\", \"the\", \"Renaissance\"]\n",
|
||
"\n",
|
||
"words_clean = [w.strip().lower() for w in words]\n",
|
||
"words_clean"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 8 (секретное)\n",
|
||
"\n",
|
||
"Напишите программу, которая запрашивает у пользователя пароль, и далее:\n",
|
||
"\n",
|
||
"- если пароль верный, выводит на экран сообщение \"Login success\".\n",
|
||
"- если пароль неверный, выводит на экран сообщение \"Incorrect password, try again!\" до тех пор, пока пользователь не введет верный пароль.\n",
|
||
"\n",
|
||
"Считайте, что верный пароль программе известен, то есть уже сохранен в некоторой переменной. "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 35,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Enter password: 123\n",
|
||
"Incorrect password, try again!\n",
|
||
"Enter password: 124\n",
|
||
"Incorrect password, try again!\n",
|
||
"Enter password: 123a\n",
|
||
"Logic success!\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"my_password = \"123a\"\n",
|
||
"\n",
|
||
"password = input(\"Enter password: \")\n",
|
||
"\n",
|
||
"while password != my_password:\n",
|
||
" print(\"Incorrect password, try again!\")\n",
|
||
" password = input(\"Enter password: \") # важная строчка!\n",
|
||
" \n",
|
||
"print(\"Logic success!\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 9 (функциональное)\n",
|
||
"\n",
|
||
"Напишите функцию `nums()`, которая принимает на вход целое число, а возвращает список из двух элементов: целое число, предшествующее принятому на вход, и число, следующее за ним.\n",
|
||
"\n",
|
||
"**Пример:**\n",
|
||
"\n",
|
||
"*Входные данные:*\n",
|
||
"\n",
|
||
" 7\n",
|
||
"\n",
|
||
"*Выходные данные:*\n",
|
||
"\n",
|
||
" [6, 8]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 36,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def nums(n):\n",
|
||
" return [n-1, n+1]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 37,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[8, 10]"
|
||
]
|
||
},
|
||
"execution_count": 37,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"nums(9)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 10 (счетное)\n",
|
||
"\n",
|
||
"Напишите функцию `my_log()`, которая принимает на вход список чисел, и возвращает список их натуральных логарифмов. Если число меньше или равно 0, на его месте в возвращаемом списке должно быть None.\n",
|
||
"\n",
|
||
"**Пример:**\n",
|
||
"\n",
|
||
"*Входные данные:*\n",
|
||
"\n",
|
||
" [1, 3, 2.5, -1, 9, 0, 2.71]\n",
|
||
"\n",
|
||
"*Выходные данные:*\n",
|
||
"\n",
|
||
" [0.0,\n",
|
||
" 1.0986122886681098,\n",
|
||
" 0.9162907318741551,\n",
|
||
" None,\n",
|
||
" 2.1972245773362196,\n",
|
||
" None,\n",
|
||
" 0.9969486348916096]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 38,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def my_log(L):\n",
|
||
" newL = []\n",
|
||
" for i in L:\n",
|
||
" if i <= 0:\n",
|
||
" newL.append(None) # None - отдельный тип, не строка \"None\"\n",
|
||
" else:\n",
|
||
" newL.append(math.log(i))\n",
|
||
" return newL"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 39,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"[0.0,\n",
|
||
" 1.0986122886681098,\n",
|
||
" 0.9162907318741551,\n",
|
||
" None,\n",
|
||
" 2.1972245773362196,\n",
|
||
" None,\n",
|
||
" 0.9969486348916096]"
|
||
]
|
||
},
|
||
"execution_count": 39,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"my_log([1, 3, 2.5, -1, 9, 0, 2.71])"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"### Задание 11 (зимнее)\n",
|
||
"\n",
|
||
"Напишите функцию `str_lower()`, которая принимает на вход строку (набор слов через пробел), а возвращает список ее элементов в нижнем регистре. \n",
|
||
"\n",
|
||
"**Пример:**\n",
|
||
"\n",
|
||
"*Входные данные:*\n",
|
||
"\n",
|
||
" \"В лесу родилась ёлочка В лесу она росла\"\n",
|
||
"\n",
|
||
"*Выходные данные:*\n",
|
||
"\n",
|
||
" ['в', 'лесу', 'родилась', 'ёлочка', 'в', 'лесу', 'она', 'росла']\n",
|
||
" \n",
|
||
"*Подсказка:* для разбиение строки на части, познакомьтесь с функцией `split()` – запросите по ней `help`."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 41,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def str_lower(s):\n",
|
||
" l = [j.lower() for j in s.split()]\n",
|
||
" return l"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 42,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"['в', 'лесу', 'родилась', 'ёлочка', 'в', 'лесу', 'она', 'росла']"
|
||
]
|
||
},
|
||
"execution_count": 42,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"str_lower(\"В лесу родилась ёлочка В лесу она росла\")"
|
||
]
|
||
}
|
||
],
|
||
"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.6.5"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|