Линейные алгоритмы

Форматированный вывод данных

help

Продемонстрировать возможности: вывода данных в табличной форме (с выровненными столбцами); выравнивания слева; вывода вещественных чисел с заданным количеством знаков после запятой.

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

Форматированный вывод

print("%8.3f" % 3.141593)
print("%-8.3f число Пи" % 3.141593)

Использование методов

print("hello".rjust(10)+'!')
print("hello".ljust(10)+'!')
print("hello".center(10)+'!')

Обмен значений численных переменных

help Пользователь вводит два числа. Одно присваивается одной переменной, а второе — другой. Необходимо поменять значения переменных так, чтобы значение первой оказалось во второй, а второй — в первой.

Существует два способа обменять значения переменных. Первый подходит для любых типов данных, а второй — только для численных.

1-й способ. Через «буферную» переменную

  1. Пусть первое введенное значение присвоено переменной a, второе — b.
  2. Присвоим некой третьей переменной (например, c) значение хранимое в a. Таким образом окажется, что одно и то же значение будет сохранено в двух переменных.
  3. Запишем значение переменной b в a. Таким образом, мы «затрем» прежнее содержимое a, а значение b будет храниться в двух переменных.
  4. Однако значение a не потеряно, т.к. заранее было сохранено в c. Теперь мы можем присвоить переменной b значение хранимое в c.

В результате данных трех присвоений окажется, что в переменной a будет значение b, в b — значение a.

2-й способ. Путем арифметических операций

  1. Запишем в переменную a сумму значений двух переменных: a и b.
  2. Переменной b присвоить разность между новым значением переменной a и значением b. Таким образом в b окажется старое значение a.
  3. Переменной a присвоить разность между ее текущим значением и новым значением переменной b. В результате в a окажется старое значение b.

Способ 1

a = int(input())
b = int(input())
print('a=%d; b=%d' % (a,b))
c = a
a = b
b = c
print('a=%d; b=%d' % (a,b))

Способ 2

a = int(input())
b = int(input())
print('a=%d; b=%d' % (a,b))
a = a + b
b = a - b
a = a - b
print('a=%d; b=%d' % (a,b))

Способ 3

a = int(input())
b = int(input())
print('a=%d; b=%d' % (a,b))
a,b = b,a
print('a=%d; b=%d' % (a,b))

Битовые операции над числами

help Выполнить логические побитовые операции «И», «ИЛИ» и др. над числами 5 и 6. Выполнить над числом 5 побитовый сдвиг вправо и влево на два знака. Объяснить полученный результат.

Обычно в языках программирования предусмотрены так называемые логические побитовые операции. Они выполняются не над самими числами, а над их двоичным представлением. Например, число 5 в двоичной системе счисления выражается как 101, а число 6 — как 110. Выполняя логическую побитовую операцию «И» получим число 4, т.к. в младшим разряде числа 5 стоит 1, а числа 6 — 0. Выражение «1 и 0» возвращает 0. Продолжая поразрядно выполнять логическое «И» в среднем разряде получим 0, а в старшем 1. Можно записать так:
101
110
100
Двоичное число 100 — это десятичное число 4.

Выполним операцию побитового логического «ИЛИ»:
101
110
111 — это число 7.

«Исключающее ИЛИ»:
101
110
011 — это число 3.

При сдвиге биты просто сдвигаются на указанное количество ячеек в освободившиеся ячейки дописываются нули или единицы (это зависит от ряда причин):
110 << 2 = 11000 (число 24),
110 >> 2 = 001 (число 1).

a = 5
print("%d = %s" % (a, bin(a)))
b = 6
print("%d = %s" % (b, bin(b)))

print("%d & %d = %d (%s)" % (a,b,a&b,bin(a&b)))
print("%d | %d = %d (%s)" % (a,b,a|b,bin(a|b)))
print("%d ^ %d = %d (%s)" % (a,b,a^b,bin(a^b)))
print("%d << 2 = %d (%s)" % (b,b<<2,bin(b<<2)))
print("%d >> 2 = %d (%s)" % (b,b>>2,bin(b>>2)))

Информация

Все изображения, размещенные на сайте, изготовлены автором самостоятельно, а также взяты в сети Интернет из тех изображений, которые находятся в свободном доступе. Поиск изображений осуществлялся посредством "Яндекс. Картинки".

Индекс цитирования

Проект при поддержке компании RU-CENTER Рейтинг@Mail.ru

Версия сайта для слабовидящих