Программирование для всех

Алла Тамбовцева, НИУ ВШЭ

Практикум 1: ввод-вывод и приведение типов

Задание 1

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

Пример:

In [1]:
# до
a = 2
b = 5
In [3]:
# после
print(a)
print(b)
5
2
In [1]:
# решение 1 (классическое)
a = 2
b = 5

c = a
a = b
b = c

print(a)
print(b)
5
2
In [2]:
# решение 2 (множественное присваивание)
a = 2
b = 5
a, b = b, a

print(a)
print(b)
5
2

Задание 2

Напишите программу, которая запрашивает у пользователя с клавиатуры его рост в сантиметрах, его вес в килограммах (каждый показатель – с новой строки, в новом запросе) и выводит на экран сообщение вида:

    Индекс массы тела: [значение].

где вместо [значение] подставляется посчитанное значение индекса массы тела.

Индекс массы тела считается так:

$$\text{BMI}=\frac{\text{m}}{\text{h}^2},$$

где $\text{m}$ – масса тела в килограммах, $\text{h}$ – рост в метрах.

In [3]:
# классическое форматирование строк
# %f – float, %.2f – два знака после запятой

h = float(input("Введите свой рост: ")) / 100
w = float(input("Введите свой вес: "))
bmi = w / h ** 2

print("Индекс массы тела: %.2f." % bmi) 
Введите свой рост: 168
Введите свой вес: 60
Индекс массы тела: 21.26.
In [4]:
# f-strings
# без округления

print(f"Индекс массы тела: {bmi}") 
Индекс массы тела: 21.258503401360546
In [5]:
# f-strings
# с округлением
# f-строки умеют еще и простые функции обрабатывать

print(f"Индекс массы тела: {round(bmi, 2)}") 
Индекс массы тела: 21.26

Задание 3

Выполните задание 3, но вместо обычного запроса с клавиатуры используйте виджеты:

  • поле для ввода целого числа для роста в сантиметрах;
  • слайдер с целыми числами от 0 до 250 с шагом 1 для веса.

Примеры виджетов можно посмотреть здесь.

In [6]:
import ipywidgets as widgets
In [7]:
# value: значение по умолчанию, если ничего не выбрано
# description: текст с комментарием, как в input()
# функция display() показывает виджет на экране

height = widgets.IntText(
    value=165, 
    description='Height:'
)

weight = widgets.IntSlider(
    value=60,
    min=0,
    max=250,
    step=1,
    description='Weight:',
    orientation='horizontal'
)

display(height)
display(weight)
In [8]:
# сами w и h – это виджеты
# из них извлекаем значения, извлеченные пользователем,
# забираем их через .value и используем далее

BMI = weight.value / (height.value / 100) ** 2
print("Индекс массы тела: %.2f." % BMI) 
Индекс массы тела: 21.97.