From fce82ed038c1346b5055781d3a5e58c2857efbcb Mon Sep 17 00:00:00 2001 From: nik Date: Sat, 25 Oct 2025 15:55:08 +0000 Subject: [PATCH] add lesson 03 --- 03_user_input.ipynb | 265 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 03_user_input.ipynb diff --git a/03_user_input.ipynb b/03_user_input.ipynb new file mode 100644 index 0000000..7a6ba2a --- /dev/null +++ b/03_user_input.ipynb @@ -0,0 +1,265 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "3beaec4d-0974-495f-b538-61b74c461410", + "metadata": {}, + "source": [ + "# User Input" + ] + }, + { + "cell_type": "markdown", + "id": "108ea414-31fc-4cae-8951-e87742d0fc20", + "metadata": {}, + "source": [ + "`input()` - функция, которая просит пользователя ввести данные, а возвращает введенные данные в формате строки (`str`). Попробуем ее использовать." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "e43b4186-6a5f-4559-a619-bd55289ee62e", + "metadata": {}, + "outputs": [ + { + "name": "stdin", + "output_type": "stream", + "text": [ + " vlad\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "your name is vlad\n" + ] + } + ], + "source": [ + "name = input()\n", + "print(f\"your name is {name}\")" + ] + }, + { + "cell_type": "markdown", + "id": "372a4b5f-d601-4dc2-801c-c31f2cd76cbe", + "metadata": {}, + "source": [ + "Как видно, в переменную `name` сохранилась введенная строка.\n", + "Ввод строки заканчивается нажатием на клавишу `enter`. Попробуйте запустить программу выше и ввести свое имя в соответствующее поле." + ] + }, + { + "cell_type": "markdown", + "id": "3c3de63f-d8b2-4322-9eab-33dda9a219f8", + "metadata": {}, + "source": [ + "В функцию `input()` можно передавать строковый параметр чтобы \"подсказать\" пользователю, какой ввод от него ожидается." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "70c2964a-afc9-4400-83a8-fd0c3ef5b641", + "metadata": {}, + "outputs": [ + { + "name": "stdin", + "output_type": "stream", + "text": [ + "enter your name: nik\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "your name is nik\n" + ] + } + ], + "source": [ + "name = input(\"enter your name: \")\n", + "print(f\"your name is {name}\")" + ] + }, + { + "cell_type": "markdown", + "id": "28b6fdde-c224-41db-96db-5b49ae16324a", + "metadata": {}, + "source": [ + "Давайте напишем программу, которая будет спрашивать у пользователя имя и возраст, а затем поздравлять его с днем рождения." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "09059004-0c78-4374-863e-f29ee1f08cf6", + "metadata": {}, + "outputs": [ + { + "name": "stdin", + "output_type": "stream", + "text": [ + "what is your name?: vlad\n", + "How old are you?: 12\n" + ] + }, + { + "ename": "TypeError", + "evalue": "can only concatenate str (not \"int\") to str", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[6], line 4\u001b[0m\n\u001b[1;32m 1\u001b[0m name \u001b[38;5;241m=\u001b[39m \u001b[38;5;28minput\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwhat is your name?: \u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;66;03m# запрашиваем имя\u001b[39;00m\n\u001b[1;32m 2\u001b[0m age \u001b[38;5;241m=\u001b[39m \u001b[38;5;28minput\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mHow old are you?: \u001b[39m\u001b[38;5;124m\"\u001b[39m) \u001b[38;5;66;03m# запрашиваем возраст\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m age \u001b[38;5;241m=\u001b[39m \u001b[43mage\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m1\u001b[39;49m \u001b[38;5;66;03m# увеличиваем возраст на 1\u001b[39;00m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mHello \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mname\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m!\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 7\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mHappy Birthday\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", + "\u001b[0;31mTypeError\u001b[0m: can only concatenate str (not \"int\") to str" + ] + } + ], + "source": [ + "name = input(\"what is your name?: \") # запрашиваем имя\n", + "age = input(\"How old are you?: \") # запрашиваем возраст\n", + "\n", + "age = age + 1 # увеличиваем возраст на 1\n", + "\n", + "print(f\"Hello {name}!\")\n", + "print(\"Happy Birthday\")\n", + "print(f\"you are {age} years old\")" + ] + }, + { + "cell_type": "markdown", + "id": "2bb86b8e-32b9-4a81-add5-aa6582110d7a", + "metadata": {}, + "source": [ + "Программа выше выдаст ошибку, так как мы получаем возраст в формате `str` и хотим его увеличить путем прибавления единицы. Но мы не можем складывать `int` и `str` поэтому `age` нужно привести к типу `int`, а потом уже выполнять сложение." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "c9290070-1446-4198-a315-6e07e255fdda", + "metadata": {}, + "outputs": [ + { + "name": "stdin", + "output_type": "stream", + "text": [ + "what is your name?: vlad\n", + "How old are you?: 12\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Hello vlad!\n", + "Happy Birthday\n", + "you are 13 years old\n" + ] + } + ], + "source": [ + "name = input(\"what is your name?: \") # запрашиваем имя\n", + "age = input(\"How old are you?: \") # запрашиваем возраст\n", + "\n", + "age = int(age) # приводим age к типу int\n", + "\n", + "age = age + 1 # увеличиваем возраст на 1\n", + "\n", + "print(f\"Hello {name}!\")\n", + "print(\"Happy Birthday\")\n", + "print(f\"you are {age} years old\")" + ] + }, + { + "cell_type": "markdown", + "id": "ae37308f-3188-416e-9c6e-73bfdc7c1b84", + "metadata": {}, + "source": [ + "Чаще всего не пишут отдельно `age = int(age)`. Вместо этого можно использовать вот такую запись." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3e76933a-1826-4140-a477-8a7190f3ca52", + "metadata": {}, + "outputs": [], + "source": [ + "name = input(\"what is your name?: \") # запрашиваем имя\n", + "\n", + "# запрашиваем возраст и сразу приводим к типу int\n", + "age = int(input(\"How old are you?: \"))\n", + "\n", + "age = age + 1 # увеличиваем возраст на 1\n", + "\n", + "print(f\"Hello {name}!\")\n", + "print(\"Happy Birthday\")\n", + "print(f\"you are {age} years old\")" + ] + }, + { + "cell_type": "markdown", + "id": "184d3b4f-c355-4cc5-b8fe-52243ead0c6e", + "metadata": {}, + "source": [ + "# Задания" + ] + }, + { + "cell_type": "markdown", + "id": "fb0e7425-75e3-41db-b010-55638abefe3c", + "metadata": {}, + "source": [ + "1. Введите 2 переменные `length` (длина) и `width` (ширина). Запросите их значения у пользователя. И затем выведите площадь прямоугольника с такими сторонами. Программа должна оканчиваться строкой.\n", + "\n", + "```python\n", + "print(f\"the area of the rectangle with length = {length} and width = {width} equals {area}\")\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ead46f8a-2550-47b9-a07c-1d4a8efb5d23", + "metadata": {}, + "outputs": [], + "source": [ + "# решение задания №1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "8af6ed62-b387-46b8-a075-c802d6802423", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.6" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}