Ввод данных в одной строке
В программе, которая показана выше, мы вводили числа по одному: сначала значение переменной num1, затем, после на-жатия на клавишу Enter, значение переменной num2. Иногда нужно вводить несколько значений в одной строке.
Рассмотрим случай, когда нужно ввести два целых числа в одной строке и записать их в переменные num1 и num2. В этом случае программа должна
ввести символьную строку, содержащую запись двух чисел; выделить части, разделённые пробелами;
каждую часть преобразовать в целое число.
Мы уже знаем, как решить первую задачу:
s = input()
Введённая строка записывается в переменную s. Применять к
ней сразу функцию int нельзя, потому что она содержит не од-
но, а два числа.
Чтобы выделить две части, применим функцию split (от
англ. split – расщепить) и, предполагая, что этих частей всего две, запишем их в переменные num1 и num2:
num1, num2 = s.split()
Здесь используется так называемое множественное присваива-ние – в одном операторе присваивания задаются значения двух переменных.
Можно обойтись и без переменной s:
num1, num2 = input().split()
Теперь нужно применить функцию int к переменным
num1 и num2 – преобразовать строки в целые числа:
num1 = int(num1)
num2 = int(num2)
17 http://kpolyakov.spb.ru
05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин
Все эти операции можно заменить одной строчкой:
num1, num2 = map( int, input().split() )
Здесь вызывается функция map, которая применяет другую функцию (в нашем случае – int) к каждой части, полученной после разбиения введённой строки на части.
Обратите внимание, что количество имён переменных слева от оператора присваивания должно точно соответствовать коли-честву введённых чисел: если их будет больше или меньше, программа завершится с ошибкой.
Арифметические выражения
Арифметические выражения обычно записываются в одну строчку. Они могут содержать константы (постоянные значе-ния), имена переменных, знаки арифметических операций, круглые скобки (для изменения порядка действий). Например, присваивание
c b 1
a
2
в программе запишется как
a = (c + b - 1)/2*d
Операция умножения обозначается знаком «*», а операция де-
ления – знаком «/».
Какое же действие будет выполняться первым, какое –вторым и т.д.? Это определяется приоритетом (старшинством) операций. Они выполняются в следующем порядке:
сначала – действия в скобках; умножение и деление, слева направо; сложение и вычитание, слева направо.
Таким образом, умножение и деление имеют одинаковый при-оритет, более высокий, чем сложение и вычитание.
Определите порядок действий компьютера при вычис-лении выражения:
a = c + b – 1 / 2 * 5
Запишите присваивание на языке Python:
18 http://kpolyakov.spb.ru
d
Информатика, 8 класс
z a
05.04.2019 К.Ю. Поляков, Е.А. Еремин
b 5 c 8
Результат деления (операции «/») может быть нецелым
числом, такие числа называются вещественными. Если в пе-ременную записать вещественное число, она будет относиться к типу float.
При записи вещественных чисел в программе целую и дробную часть разделяют не запятой (как принято в России), а точкой. Например
Достарыңызбен бөлісу: |