Статья Автор: Деникина Н.В., Деникин А.В.

Ввод и вывод (для био профиля)

Дозатор набрал 100 мкл среды. Сколько это в миллилитрах легко посчитать и в уме. А если проб сорок, тысяча, сорок тысяч? А если формула сложнее?

Цель: научитться делать расчёты программным путём!.

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


Шаг 1. Ввод: число или текст?

Команда input() всегда возвращает строку: набрал 100 — это текст, и вот умножать текст на 0.001 нельзя.

Поэтому ввод сразу преобразую в число, если нужно работать с числами:

  • int(input()) — когда величина целая: число клеток, пробирок, лунок;
  • float(input()) — когда величина дробная: объём, масса, концентрация.

Запомни: считаешь штуки — int, меришь прибором — float.


v = float(input())    # объём пробы, мкл
n = int(input())      # сколько таких проб
print(v / 1000)
print(v / 1000 * n)

Ввели 100 и 3:

0.1
0.30000000000000004

Первая строка в порядке. Вторая — нет: вместо 0.3 нули и тройка в конце. Это особенность хранения дробных чисел в памяти.

Запомни: дробный ответ не печатают сырым.


Вводишь число клеток в квадрате. Какая строка верная?


Шаг 2. Вывод: f-строка

Чтобы задать вид числа, перед кавычками ставят букву f, а число берут в фигурные скобки:

print(f"{c:.2f}") напечатает 0.30 вместо 0.30000000000000004.

В скобках — что печатать, после двоеточия — как: .2f значит «ровно два знака после точки».

Округляет f-строка сама, отдельная команда не нужна.

Второй важный формат — {m:02d}: целое ровно двумя цифрами, 5 превратится в 05.


Что напечатает каждый формат для x = 20 / 3?


Шаг 3. Деление с остатком

Проб 50, в штативе 12 мест. Три вопроса — три ответа:

  • сколько заполнится целиком — 50 // 12;
  • сколько пробирок останется — 50 % 12;
  • сколько штативов понадобится на все — неполный тоже занимает место, округляем вверх: math.ceil(50 / 12).

Функция ceil лежит в модуле math: в начале программы пишут import math.


import math

n = 50
k = 12
print(n // k)
print(n % k)
print(math.ceil(n / k))

Программа напечатала:

4
2
5

Четыре полных штатива, две пробирки сверх них, всего нужно пять.

Проверь на ровном случае: 24 пробы по 12 дают 2, а не 3 — когда остатка нет, лишний штатив не нужен.


Проб 100, в штативе 12 мест. Сколько штативов понадобится?


Пример

Маточный раствор 50 мг/мл. Нужно 20 мл рабочего по 5 мг/мл.

Считают не объём, а массу вещества: в рабочем растворе её должно быть 5 · 20 = 100 мг. В миллилитре маточного 50 мг, значит отобрать 100 / 50 = 2 мл. Остальное вода: 20 − 2 = 18 мл.

В общем виде: v1 = c2 * v2 / c1, а воды v2 - v1.


c1 = 50      # маточный, мг/мл
c2 = 5       # нужный, мг/мл
v2 = 20      # нужный объём, мл
v1 = c2 * v2 / c1
print(f"{v1:.2f} {v2 - v1:.2f}")

Вывод: 2.00 18.00 — два миллилитра маточного и восемнадцать воды.
 

Пример 2

Над большим квадратом сетки стоит столбик жидкости объёмом 0,0001 мл. Насчитали 320 клеток в четырёх квадратах, суспензию развели в 10 раз.

  • на квадрат: 320 / 4 = 80.0 клеток в 0,0001 мл;
  • на миллилитр — умножить на 10000;
  • на исходную суспензию — умножить на разведение 10.

Итого 8.00 млн клеток в мл.


Верно или нет?

Печать