Ввод и вывод данных
@Pycoders
Все без исключения программные продукты обрабатывают и выводят данные. Только в некоторых информация заложена изначально, а в других она поступает извне. Черпать данные можно из файлов, либо непосредственно из вводимого пользователем текста. Во втором случае предполагается интерактивный режим работы. Получается, пользователь вводит информацию, программа ее обрабатывает и выводит на экран. В таком случае говорят, что код не замкнут на себе, а может «общаться» со внешней средой.
Вся информация, представленная дальше, будет для python 3 версии, что может отличаться от 2 версии языка.
Форматирование строк
Достаточно часто случаются ситуации, когда, помимо своего текста, нам требуется вывести какие-то доролнительные значения. Чтобы не писать подобное print('Hello ', name), мы разберем сначала форматирование строк.
Способ 1 - .format()
Наиболее популярная конструкия - .format() - ставится после строки таким образом:
name = 'Elliot'
string = 'Hello, {}!'.format(name)
print(string)
# Output: Hello, Elliot!
Разберемся в работе этой функции. В нашей изначальной строке есть {}, вместо этих символов ставится переданный аргумент в функцию .format(). Значений может быть несколько:
num1 = 10
num2 = 20
string = 'Our nums equal {} and {}'.format(num1, num2)
print(string)
# Ouput: Our nums equal 10 and 20
Вы можете использовать индексы внутри фигурных скобок:
num1 = 10
num2 = 20
string = 'Our nums equal {1} and {0}'.format(num1, num2)
print(string)
# Ouput: Our nums equal 20 and 10
Обратите внимание, что нумерование начинается с нуля.
Способ 2 - f-строки
Новая, но не менее популярная конструкция. Такой способ стал достпуен с версии Python 3.6.
num = 10
string = f'Num eqauals {num}'
print(string)
# Output: Num equals 10
С помощью такого способа, переменную (и не только) можно передавать сразу в фигурные скобки.
num = 640
author = 'Bill Gates'
ptint('{num} Кб должно хватить для любых задач. ({author})')
# Output: 640 Кб должно хватить для любых задач. (Bill Gates)
На данный момент это минимум того, что требуется знать. Конкретно о строках будет другая статья.
Ввод
Для ввода используется функция input().
value = input()
После запуска такая программа будет ожидать пользовательского ввода, после которого необходимо нажать клавишу Enter.
Для вывода строки-приглашения, используйте ее в качестве аргумента функции input().
value = input('Введите значение: ')
Попробуем сложить два введеных значения:
num1 = input('Первое число: ') # 3
num2 = input('Второе число: ') # 1
print(num1 + num2)
# Output: 31
Вывод программы может показаться немного странным, потому что 3 + 1 = 4, а не 31. Проблема в том, что любой пользовательский ввод приходит как тип данных str, то есть как строка, а не число. А в python строки могут "склеиваться" (об этом в отдельном уроке).
Преобразуем значения в числовой тип int:
num1 = int(input('Первое число: ')) # 3
num2 = int(input('Второе число: ')) # 1
print(num1 + num2)
# Output: 4
Теперь всё верно.
Вывод
Для вывода испольузется функция print().
print('Hello, world!')
# Output: Hello, world!
Для вывод нескольких значений есть разные способы: через плюс, через запятую. Рассмотрим примеры:
print('a' + 'b') # Output: ab
print('a', 'b') # Output: a b
Разница в том, что знак плюса просто складывает строки, а запятая разделяет значения. По умолчанию разделительный знак - пробел, но это можно изменить:
print('a', 'b', 'c', sep='0')
# Output: a0b0c
В значении sep=' ' стоит то, что будет ставиться между каждыми соседними объектами, по умолчанию это пробел.
Еще один достаточно важный аргумент в функции print() - end. Значение ставится после всех объектов. По умолчанию end='\n', что означает переход на новую строку. Попробуем изменить это значение:
print('a', end='1')
print('b', end='2')
# Output = a1b2
Функция print() имеет еще несколько аргументов, но они не такие важные, как предыдущие.