Занятие 3. Параметры sep, end. Работа с переменными

Необязательные параметры команды print

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

Параметр sep

Рассмотрим следующий код:

print('a', 'b', 'c')
print('d', 'e', 'f')

Результатом выполнения такого кода будет:

a b c
d e f

Рассмотрим следующий код: 

print('a', 'b', 'c', sep='*')
print('d', 'e', 'f', sep='**')

Результатом выполнения такого кода будет:

a*b*c
d**e**f

При первой печати в качестве строки разделителя между аргументами команды print() установлена строка sep='*'.

При второй печати в качестве строки разделителя между аргументами команды print() установлена строка sep='**'.

Таким образом, необязательный параметр sep команды print() позволяет установить строку, с помощью которой будут разделены аргументы при печати.

Параметр end

Если перевод строки делать не нужно или требуется указать специальное окончание, то следует явно указать значение для параметра end.

Рассмотрим следующий код:

print('a', 'b', 'c', end='@')
print('d', 'e', 'f', end='@@')

Результатом выполнения такого кода будет:

a b c@d e f@@

По завершении первой печати вставлена строка @ вместо перевода строки. Аналогично, по завершении второй печати вставлена строка @@.

Параметры sep и end можно использовать вместе. Рассмотрим следующий код:

print('a', 'b', 'c', sep='*', end='finish')
print('d', 'e', 'f', sep='**', end='^__^')
print('g', 'h', 'i', sep='+', end='%')
print('j', 'k', 'l', sep='-', end='#')
print('m', 'n', 'o', sep='/', end='!')

Результатом выполнения такого кода будет:

a*b*cfinishd**e**f^__^g+h+i%j-k-l#m/n/o!

Примечания

Примечание 1. Вызов команды print() с пустыми скобками ставит перевод строки.

Примечание 2. Последовательность символов \n называется управляющей последовательностью и задает перевод строки. Например, такой код

print('a', '\n', 'b', '\n', 'c', sep='*', end='#')

выведет следующее:

a*
*b*
*c#

Примечание 3. Значения по умолчанию у параметров sep и end следующие:

sep = ' '  # пробел
end = '\n'  # перевод строки

Примечание 4. Чтобы убрать все дополнительные выводимые символы, можно вызывать команду print() так:

print('a', 'b', 'c', sep='', end='')

Примечание 5. Программный код

print('Python')

равнозначен коду

print('Python', end='\n')

 Примечание 6. Если после вывода данных нужно более одного перевода строки, то необходимо использовать следующий код:

print('Python', end='\n\n\n')

Примечание 7. Вы можете указывать в качестве параметров sepend переменные, содержащие строковый тип данных:

first_word = 'Бесконечность'
second_word = 'Не'
third_word = 'Предел'

asterisk = "*"

print(
    first_word, second_word, third_word, sep=asterisk, end="!"
)  # Бесконечность*Не*Предел!

В данном случае мы указали параметр sep как переменную.

Переменные

В предыдущих упражнениях мы уже использовали переменные, но до сих пор не объясняли, что же это такое и с чем его едят.

Мы знаем, что команда input() обозначает «подожди, пока пользователь введет что-нибудь с клавиатуры, и запомни то, что он ввёл». Просто так просить «запомнить» довольно бессмысленно: нам ведь потом надо будет как-то сказать компьютеру, чтобы он вспомнил то, что запомнил. Для этого используем переменные и пишем такой код:

variable_name = input()
print('Вы ввели текст:', variable_name)

Данный код означает: «Сохрани то, что ввёл пользователь, в памяти, и дальше это место в памяти мы будем называть именем variable_name». Соответственно, команда print(variable_name) означает: «Посмотри, что лежит в памяти, под именем variable_name, и выведи это на экран».

Вот такие «места в памяти» называются переменными. Любая переменная имеет имя и значение.

Имя переменной

1. В имени переменной используйте только латинские буквы a-z, A-Z, цифры и символ нижнего подчеркивания (_);

2. Имя переменной не может начинаться с цифры;

3. Имя переменной по возможности должно отражать её назначение.

Запомни: Python — регистрочувствительный язык. Переменная name и Name — две совершенно разные переменные. Для именования переменных принято использовать стиль lower_case_with_underscores (слова из маленьких букв с подчеркиваниями).

Значение переменной

Значение переменной — сохраненная в ней информация. Это может быть текст, число и т.д.

Знак «=» – это оператор присваивания. Он присваивает значение, которое находится справа от знака «равно», переменной, которая находится слева от знака «равно».

В нашем случае это то, что поместил в неё пользователь командой input(). Это текстовое значение — строка. То есть переменная сохраняет в себе строковое значение. Говорят, что переменная имеет строковый тип данных.

Запомни: интерпретатор ждет, что пользователь что-то введет с клавиатуры ровно столько раз, сколько команд input() встречается в программе. Каждый input() завершается нажатием Enter на клавиатуре.

Значения переменной, естественно, можно менять (переприсваивать).

print('Как тебя зовут?')
name = input()
print('Привет,', name)
name = 'Timur'
print('Привет,', name)

Оператор присваивания сообщает переменной то или иное значение независимо от того, была ли эта переменная введена раньше. Вы можете менять значение переменной, записав еще один оператор присваивания. Если у нас имеется переменная, мы можем делать с её значением все что угодно — например, присвоить другой переменной:

name1 = 'Тимур'
name2 = name1
print(name2)

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

<имя переменной> = <значение переменной>

Как только эта команда выполнится, в программе появится переменная с указанным значением.

Запомни: название переменной всегда должно быть слева от знака равенства.

Следующий код приведет к ошибке:  "Timur" = name.

Множественное присваивание

В языке Python можно за одну инструкцию присваивания изменять значение сразу нескольких переменных. Делается это так:

name, surname = 'Ivan', 'Petrov'
print('Имя:', name, 'Фамилия:', surname)

Этот код можно записать и так:

name = 'Ivan'
surname = 'Petrov'
print('Имя:', name, 'Фамилия:', surname)

Отличие двух способов состоит в том, что множественное присваивание в первом способе присваивает значение двум переменным одновременно.

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

name, surname = input(), input()
print('Имя:', name, 'Фамилия:', surname)

Если слева от знака «равно» в множественном присваивании должны стоять через запятую имена переменных, то справа могут стоять произвольные выражения, разделённые запятыми. Главное, чтобы слева и справа от знака присваивания было одинаковое число элементов.

Множественное присваивание удобно использовать, когда нужно обменять значения двух переменных. В Python это делается так:

name1 = 'Alex'
name2 = 'Gvido'
name1, name2 = name2, name1

Примечания

Примечание 1. Названия переменных ничего не говорят интерпретатору, и даже в очень хорошо названной переменной не появится нужное значение, если мы сами его туда не запишем.

Примечание 2. Новое значение переменной вытесняет старое. Важно представлять, чему равно значение переменной в каждый момент времени.

Примечание 3. Переменные можно вводить в любой момент (не только в самом начале программы).

Примечание 4. В качестве названия переменных запрещено использовать ключевые (зарезервированные) слова. К ключевым словам в языке Python относятся:

False;
True;
None;
and;
with;
as;
assert;
break;
class;
continue;
def;
del;
elif;
else;
except;
finally;
try;
for;
from;
global;
if;
import;
in;
is;
lambda;
nonlocal;
not;
or;
pass;
raise;
return;
while;
yield.

Задания по теме

Задание 1.

Напишите программу, которая читает с клавиатуры три переменные, а затем выводит на экран их значение, разделяя символами ***.

Примечание. Используйте необязательный параметр sep.

Пример ввода:
I
like
Python

Пример вывода:
I***like***Python

Задание 2.

Напишите программу, которая приветствует пользователя, выводя слово «Привет» (без кавычек), после которого должна стоять запятая и пробел, а затем введенное имя и восклицательный знак.

Формат входных данных
На вход программе подаётся одна строка — имя пользователя.

Формат выходных данных
Программа должна вывести текст в соответствии с условием задачи.

Примечание 1. Перед восклицательным знаком не должно быть пробелов.

Примечание 2. Для считывания текста используйте команду input(), для печати текста на экране используйте команду print().

Примечание 3. Используйте необязательный параметр end.

Пример ввода:
Джон

Пример вывода:
Привет, Джон!

Задание 3.

Напишите программу, которая считывает строку-разделитель и три строки, а затем выводит указанные строки через разделитель.

Формат входных данных
На вход программе подаётся строка-разделитель и три строки, каждая на отдельной строке.

Формат выходных данных
Программа должна вывести введённые три строки через разделитель.

Примечание 1. Для считывания текста используйте команду input(), для печати текста на экране используйте команду print().

Примечание 2. Используйте необязательный параметр sep.

Пример ввода:
##
Money often
costs
too much

Пример вывода:
Money often##costs##too much

Задание 4.

Арифметической прогрессией называется последовательность чисел a1​, a2​, …, an​, каждое из которых, начиная с a2​, получается из предыдущего путем прибавления к нему одного и того же постоянного числа d (разность прогрессии). Например, арифметической прогрессией является следующая последовательность:

−6, −3, 0, 3, 6, 9, 12

Если известен первый член прогрессии (a1​) и её разность (d), то n-ый член арифметической прогрессии находится по формуле:

an=a1​+d(n−1)

Входные данные
На вход программе подаётся три целых числа: a1​, d и n, каждое на отдельной строке.

Выходные данные
Программа должна вывести n-ый член арифметической прогрессии.

Пример ввода:
-1
1
2

Пример вывода:
0

Задание 5.

Напишите программу, которая считывает целое положительное число x и выводит на экран последовательность чисел x, 2x, 3x, 4x и 5x, разделённых тремя дефисами.

Пример ввода:
7

Пример вывода:
7---14---21---28---35

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *