Ввод и вывод данных в Python

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

1) Ввод данных в программу в самой программе

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


a = 2
b = 3
c = -5

Второй способ, когда используется такой подход — это ввод констант. В Python нет возможности создать константу и по этому используют переменную написанную прописными буквами. И значение ей присваивают в самой программе. Например так можно ввести в программу ускорение свободного падения, которое всегда 9,8 м/с2.


G = 9.8

Способ 2. Консольный ввод/вывод командами input() и print()

Ввод данных командой Input()

Этот способ ввода вывода уже позволяет организовать ввод данных пользователем в стиле старинных программ: в консоли на черном экране. Так как это было в операционной системе MS DOS, еще до появления Windows. Этот способ хорош тем, что подходит, опять же, для решения учебных задач — вы полностью концентрируетесь на алгоритме решения задачи, а не проектируете интерфейс программы для пользователя.

Для ввода данных в программу используется функция input(). Она возвращает введенное значение. В качестве параметра ей можно передать любую строку, в которой нужно указать подсказку для пользователя — что именно сейчас нужно вводить. Нужно помнить, что все введенные данные через input() имеют тип строка. И если вам нужно число, то нужно выполнить преобразование данных функцией int() — для целых чисел, функцией float — для чисел с плавающей точкой.


a = input() # Самый простой способ дать возможность ввести данные в программу

a = input("Введите первый коэффициент квадратного уравнения a = ") # Способ вывести подсказку для пользователя

a = int(input("Введите целое число a = ")) # Способ при котором происходит ввод данных и преобразование строки в целое число

a = int(input("Введите дробное число a = ")) # Способ при котором происходит ввод данных и преобразование строки в число с плавающей точкой

Но даже такой способ позволяет организовать довольно сложное общение с пользователем. Можно даже написать программы-игры и тесты. Например …

Вывод данных командой print()

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


s = v * t

print("Пройденный путь S = ", s, " км.")

Способ 3. Ввод, вывод через форму

Для того,что бы сделать простую форму для Windows можно использовать встроенную в Python библиотеку tkinter. Конечно, что бы пользоваться ее, нужно ее сначала изучить. Но если нужно написать простую программу с вводом числовых или строковых данных, то можно воспользоваться приведенным ниже кодом. Эта программа создает форму с полями вода для 2 числе и с кнопкой по которой выполнятся сложение и вывод на экран результата сложения этих чисел.


from tkinter import *

def clicked():  
	a = int(txt.get())
	b = int(txt2.get())
	c = a + b
	lbl3.configure(text="c = " + str(c))	


window = Tk()

lbl = Label(window, text="a = ")  
lbl.grid(column=0, row=0)

txt = Entry(window,width=10)  
txt.grid(column=1, row=0) 

lbl2 = Label(window, text="b = ")  
lbl2.grid(column=0, row=1)

txt2 = Entry(window,width=10)  
txt2.grid(column=1, row=1) 

lbl3 = Label(window, text="c = ")  
lbl3.grid(column=0, row=2)  

btn = Button(window, text="Выполнить сложение", command=clicked)
btn.grid(column=0, row=3)

window.mainloop()

Способ 4. Загрузка данных из файла

В тестовых задачах на ЕГЭ или в олимпиадных задачах, часто встречается требование получить входные данные из файла. Это встречается и на практике: например когда программа должна обрабатывать большие объемы данных. В этом случае удобно вводить данные в программу через тестовый файл. Для чтения файла можно использовать такой код:


# Файл должен лежать в той же папке, что и сам файл с программой
text1 = open("1.txt")

# Создаем список data и заполняем его строками из файла
data = []
for i in text1:
    data.append(i)

# Удаляем символ переноса строки \n в конце каждой строки
for i in range(len(data)):
    if data[i][-1] == "\n":
        data[i]=data[i][:-1]

# Смотрим наш список со строками
print(data)

# Вот так можно вывести 1 строку
print(data[0])

# Вот так можно вывести 1 символ в 1 строке
print(data[0][0])

# Вот так можно организовать чтение. Например когда в 1 строке количество строк. А в остальных строках по 2 цифры через пробел
f=open('1.txt')
n=int(f.readline())
for i in range(n):
    a=f.readline().split()
    x, y = int(a[0]), int(a[1])

Способ 5. Загрузка данных из базы данных

Очень часто программа должна получать  данные из базы данных. Например программы для для управления предприятием могут хранить в базе данных информацию о товарах, клиентах и т.д. Средствами Python можно записать данные в таблицы базы данных и считать их. Вот простой пример, показывающий работу с SQLite — с компактной СУБД, которая идет в составе Python.