{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Python для анализа данных" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Алла Тамбовцева, НИУ ВШЭ*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ввод информации с клавиатуры" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Иногда возникает необходимость запросить какую-нибудь информацию у пользователя — попросить ввести её с клавиатуры. Это может быть нужно, например, когда мы пытаемся имитировать заполнение какой-нибудь формы (собрать информацию и обработать) или написать функцию, которая будет работать по-разному в зависимости от режима (\"Если хотите выгрузить данные из файла, нажмите 1, если хотите вводить данные вручную, введите 2\"). \n", "\n", "Запросить данные с клавиатуры можно с помощью функции `input()`:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Введите что-нибудь: нечто\n" ] }, { "data": { "text/plain": [ "'нечто'" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input(\"Введите что-нибудь: \")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Однако обычно нам нужно не просто вывести на экран то, что ввел пользователь (он и сам это видит), но и сохранить введенную информацию. Сделаем это (и заодно перейдем к числам)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Введите какое-нибудь число: 5\n" ] } ], "source": [ "num = input(\"Введите какое-нибудь число: \")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Теперь мы можем работать с переменной `num`, в которую мы сохранили результат ввода с клавиатуры. " ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'5'" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Введенное нами число 5 сохранилось. Однако, если посмотреть внимательнее, это не совсем число: число пять стоит в кавычках. Это строка! То есть обычный текст. Проверим:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "str" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "type(num) # действительно" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Тут нам как раз и пригодится преобразование типов переменных:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num = int(num)\n", "num" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "И теперь всё сразу: правильно и компактно." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Введите какое-нибудь число: 23\n" ] }, { "data": { "text/plain": [ "23" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num = int(input(\"Введите какое-нибудь число: \"))\n", "num" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Раз мы не предлагаем пользователю ввести именно целое число, число может быть любым, даже дробным. Учтем это – будем конвертировать введенный текст в число с плавающей точкой. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Введите какое-нибудь число: 7.5\n" ] }, { "data": { "text/plain": [ "7.5" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num = float(input(\"Введите какое-нибудь число: \"))\n", "num" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "С клавиатуры можно вводить сколько угодно объектов:" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Введите числа через пробел: 2 3\n" ] } ], "source": [ "numbers = input(\"Введите числа через пробел: \")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'2 3'" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "numbers" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Только тогда для работы с отдельными элементами ввода потребуется разбить строку на части по какому-нибудь символу (в нашем случае – по пробелу). О разбиении текста на части поговорим позже, когда будем обсуждать работу со строками, а пока разберём вывод информации на экран." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Вывод информации на экран" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Как мы уже знаем, для вывода чего-либо на экран в Python существует функция `print()`:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "5\n", "Hello!\n" ] } ], "source": [ "print(5)\n", "print('Hello!')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Для того, чтобы вывести на экран сразу несколько объектов, нужно просто перечислить их через запятую в круглых скобках." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Your age is 25\n" ] } ], "source": [ "age = 25\n", "print('Your age is', age)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "По умолчанию в качестве разделителей (отделяющих объекты друг от друга) используются пробелы. Но при желании это можно поправить, добавив аргумент `sep` (от *separator* – разделитель):" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2-3\n" ] } ], "source": [ "print(2, 3, sep='-')" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2------3\n" ] } ], "source": [ "print(2, 3, sep='------')" ] } ], "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.8" } }, "nbformat": 4, "nbformat_minor": 2 }