Тест Python. Переменные и функция input()

Прокрутить вниз

Курсы для детей программирования

Ввод и вывод данных (функции input () и print ())

Курсы для детей программирования. До этого момента вся цифровая информация для программ, которые выполняют вычисления, указывалась непосредственно в коде. Пришло время наделить наши программы способностью ввода (input) данных. Это процедура, позволяющая вставить новую информацию в уже работающую программу. Данная процедура позволяет писать более разнообразные и интересные программы, которые взаимодействуют с пользователем. В Python существует встроенная функция input (), предназначенная для получения данных от пользователя.

Функция input ()

Функция input () получает от пользователя строку текста. Обычно данные просто вводятся с клавиатуры. Подробно о функциях мы будем говорить позже, а пока достаточно запомнить, что вставляя их в свои программы, вы должны добавлять круглые скобки.

Вот пример применения функции ввода:

yourName = input ()

Эта команда дает пользователю возможность ввести строку, которой будет присвоено имя yourName. Вставим ее в программу. Создайте в IDLE новый файл и добавьте туда код:

print «Как тебя зовут?»)

yourName = input ()

print «Привет,» yourName)
Сохраните и запустите эту программу в IDLE, чтобы посмотреть, как она работает. Вы должны получить примерно такой результат:

Как тебя зовут?
Тарас
Привет, Тарас

Здесь было использовано две функции — функция print () для вывода на экран объясняющего текста, а функция input () — для считывания с клавиатуры введенного пользователем ответа. Но, это все можно сделать несколько проще. Ведь функция input () может сама выводить подсказки для пользователя. Например:

yourName = input «Введите имя: )

То есть, для того чтобы вывести подсказку — пользователю достаточно написать ее в скобках после input (если объяснение — это строка, не забываем использовать кавычки). В данном случае, функция input () выведет на экран сообщение «Введите имя:» и остановит выполнение программы до получения ответа пользователя (до нажатия клавиши Enter).

Введите имя: Тарас

Из примера видно, что программа ожидает ввода данных в той же строке где было выведено подсказку пользователю. Но это не всегда удобно.

Символ переноса строки

Можно разделить строки вывода и ввода, используя символ переноса строки — «\ n». В частности, используя следующую структуру:

yourName = input «Введите имя: \ n»)

мы получим результат в виде :

Введите имя:
Тарас

Сложнее считывать значения переменных, если они записаны в одной строке. Здесь нужно применить к считываемого строки метод split (), который разделяет строку на части по одному или нескольким пропускам (а также табуляции и другим символам). Затем результат выполнения этой функции предоставим нескольким переменным. Например, если в строке вводятся два числа через пробел, то считать их можно так:

>>> a, b = input (). Split ()
125325
>>> a
«125»
>>> b
«325»

Аналогично, можно считывать значения разделены, любыми символами. Для этого достаточно в скобках после метода split указать нужный символ:

>>> a, b, c, d = input (). Split ‘;’)
12; 45; 25; 32
>>> a
’12’
>>> b
«45»
>>> c
’25’
>>> d
’32’

Если же объединить все указанные возможности для ввода, можно получить интересный результат:

>>> dd, mm, yyyy = input «Введите дату своего рождения: \ n»). Split «.»)
Введите дату своего рождения:
10.08.1986
>>> print «Вы родились:» dd, «числа», mm, «луны», yyyy, «года!»)
Вы родились: 10 числа 08 месяца 1986!

Но, как мы смогли вывести столько информации в одной ленте? Оказывается print () также встроенная функция Python. И так же как input () она имеет ряд своих свойств.

Функция print ()

Для вывода данных используется функция print (), которая может выводить не только значения переменных, но и значение любых выражений. Например:

>>> print (2 + 8 / 23-45 * 2 + 12 ** 3)
1640.3478260869565

Также с помощью функции print можно выводить значения не одного, а нескольких выражений, для этого нужно перечислить их через запятую:

>>> print (14 + 8,12 + 36, 8 * 9)
22 48 72

Используя функцию print () можно выводить на экран любые скомпонованы строки текста:

>>> a = 15
>>> b = 23
>>> print (a, ‘+’, b, ‘=’, a + b)
15 + 23 = 38

По умолчанию, вместо запятой между значениями, которые выводятся, вставляется пробел. Это можно легко изменить использовав дополнительный парамент sep функции print ():

>>> print (1, 2, 3, 4, 5, 6, sep = ‘-‘)
1-2-3-4-5-6

Фактически, атрибут sep заменит стандартный пробел на указанный вами символ (или последовательность символов, но не забываем об использовании кавычек).

Курсы для детей программирования лучший способ увлечь ребенка в IT сферу.

А если попробовать вывести каждое значение с новой строки. Разве для этого нужно будет писать каждый раз новую функцию print () для каждого значения? Конечно НЕТ. Достаточно в качестве атрибута sep указать символ переноса строки «\ n»:

>>> print (1, 2, 3, 4, 5, 6, sep = ‘\ n’)
1
2
3
4
5
6

Каждая следующая функция print () будет выводить заданное значение с новой строки. Фактически print () выводит указанное значение, а затем переводит курсор на следующую строку. Это можно изменить используя еще один атрибут функции print () — end. В данном случае, в качестве его свойства мы укажем пробел:

print «Меня», end = «»)
print «зовут», end = «»)
print «Николай», end = «»)
print «Александрович»)

Приведенный выше код выведет на экран следующую строку:

Меня зовут Николай Александрович

Также значение атрибута end можно заменить произвольным символом или последовательностью символов. Например, изменим предыдущий код, указав в качестве свойства атрибута end последовательность символов «-, —«. Вот, что мы получим в результате выполнения указанного кода:

Меня —, — зовут —, — Николай —, — Александрович

Также, используя атрибут end и указав в качестве свойства несколько символов переноса строки, мы можем получить необходимое количество пустых лент:

print «Меня зовут», end = «\ n \ n \ n»)
print «Николай Александрович»)

Использовав данный код мы получим следующий результат:

Меня зовут Николай Александрович

Ввод чисел

Итак, теперь вы знаете, как с помощью функции input () осуществить ввод строки. А что делать, если вам нужно ввести число?  Можно взять функцию int () или float () и превратить предоставленный вам функцией input () строка в число. Это будет выглядеть так:

a = input ()
a = float (a)

Сначала с помощью функции input () мы получаем данные в виде строки. А потом, применив функцию float (), мы превращаем ее в число. Впрочем, все это можно сделать и короче, всего за один шаг:

a = float (input ())

Эта строка выполняет те же действия. Получает у пользователя строку и превращает его в число. Но теперь для этого требуется меньше кода.

Функция int ():

Если вы хотите, чтобы все данные, которые вводятся пользователем были целыми числами (без десятичных знаков), для преобразования можно задействовать функцию int ():

a = int (input ())

Но здесь может возникнуть ошибка ввода, когда пользователь вместо целого числа введет дробное:

>>> a = int (input ())
12.3
Traceback (most recent call last):
File »
«, line 1, in

a = int (input ())
ValueError: invalid literal for int () with base 10: ’12 .3 

Это произошло потому, что Python не знает как преобразовать строку с десятичной точкой в целое число. Решить данную проблему, можно сначала превратив строку в действительное число, а уже потом в целое, то есть:

a = float (input ())
a = int (a)

Ту же операцию мы можем выполнить в одной строке кода:

>>> a = int (float (input ()))
12.365
>>> a
12

Теперь ошибка отсутствует, поскольку мы сначала выполнили преобразования в действительное число, а уже потом — в целое.

А как быть, когда мы вводим все числа в одну строку?

Можно по очереди превращать переменные после их считывания:

>>> a, b = input (). Split ()
12 23.65
>>> a = int (a)
>>> b = float (b)
>>> a
12
>>> b
23.65

Здесь, мы каждую переменную превратили в нужный тип данных. Если все вопрошании переменные будут иметь один тип, можно использовать функцию map ().  Которая имеет два обязательных параметра: первый — тип данных, второй — строка, которая преображается:

a, b, c = map (int, input (). split ())

Используя полученные знания, напишем небольшую программу-калькулятор, которая выведет на экран результат выполнения семи основных операций над целыми числами. Числа запрашиваются у пользователя с соответствующим сообщением.

 

Пример программы:
a = int (float (input «Введите первое целое число: \ n»)))
b = int (float (input «Введите второе целое число: \ n»)))
print (a, ‘+’, b, ‘=’, a + b)
print (a, ‘-‘, b, ‘=’, a-b)
print (a, ‘*’, b, ‘=’, a * b)
print (a, ‘/’, b, ‘=’, a / b)
print (a, », b, ‘=’, a  b)
print (a, ‘//’, b, ‘=’, a // b)
print (a, ‘%’, b, ‘=’, a% b)

Результат выполнения:

Введите первое целое число:
12
Введите второе целое число:
32
12 + 32 = 44
12 — 32 = -20
12 * 32 = 384
12/32 = 0.375
12 ** 32 = 34182189187166852111368841966125056
12 // 32 = 0
12% 32 = 12

Курсы для детей программирования — быстрый способ научиться кодить. Проходите тест на знание пайтона! А если вы хотите научиться программировать на Python — записывайтесь на занятие прямо сейчас! У нас есть занятия в офисе на м. Академгородок, м. Житомирская и в формате онлайн.