add lesson 03

This commit is contained in:
nik
2025-10-25 15:55:08 +00:00
parent ab056b90b4
commit fce82ed038

265
03_user_input.ipynb Normal file
View File

@@ -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
}