#!/usr/bin/env python # coding: utf-8 # # Python для сбора и анализа данных # # *Алла Тамбовцева, НИУ ВШЭ* # # ## Семинар 1: ввод-вывод и приведение типов # # ### Задание 0 # # Посчитайте: # # * $\log(25)$; # * $\log_{10}(1000)$; # * $\pi^3$; # * $\sqrt{459}$. # In[1]: import math # 1 print(math.log(25)) # 2 print(math.log(1000, 10)) print(math.log10(1000)) # более точный ответ # 3 print(math.pi ** 3) # 4 print(math.sqrt(459)) # ### Задание 1 # # В переменных `a` и `b` хранятся некоторые числа. Напишите код, который бы менял значения переменных местами. Создавать вспомогательные переменные можно. # # *Пример:* # In[1]: # до a = 2 b = 5 # In[3]: # после print(a) print(b) # In[2]: # решение 1 (классическое) a = 2 b = 5 c = a a = b b = c print(a) print(b) # In[3]: # решение 2 (множественное присваивание) a = 2 b = 5 a, b = b, a print(a) print(b) # ### Задание 3 # # Напишите программу, которая запрашивает у пользователя с клавиатуры его рост в сантиметрах, его вес в килограммах (каждый показатель – с новой строки, в новом запросе) и выводит на экран сообщение вида: # # Индекс массы тела: [значение]. # # где вместо `[значение]` подставляется посчитанное значение индекса массы тела. # # Индекс массы тела считается так: # # $$\text{BMI}=\frac{\text{m}}{\text{h}^2},$$ # # где $\text{m}$ – масса тела в килограммах, $\text{h}$ – рост в метрах. # In[4]: # без форматирования – результат не очень красивый height = int(input("Введите свой рост: ")) weight = int(input("Введите свой вес: ")) bmi = weight / (height / 100) ** 2 print("Индекс массы тела: ", bmi, ".") # In[5]: # без форматирования, но с другим разделителем + с округлением print("Индекс массы тела: ", round(bmi, 2), ".", sep = "") # In[6]: # f-strings print(f"Индекс массы тела: {bmi}.") # In[6]: # f-strings ещё умеют так print(f"A * B = {6 * 8}") # In[7]: # классическое форматирование строк # %f – float, %i – integer, %s – string print("Индекс массы тела: %f." % bmi) # In[8]: # а так – округляем при выводе на экран до 3го знака print("Индекс массы тела: %.3f." % bmi) # ### Задание 4 # # Выполните задание 3, но вместо обычного запроса с клавиатуры используйте виджеты: # # * поле для ввода целого числа для роста в сантиметрах; # * слайдер с целыми числами от 0 до 250 с шагом 1 для веса. # # Примеры виджетов можно посмотреть [здесь](https://ipywidgets.readthedocs.io/en/latest/examples/Widget%20List.html). # In[9]: import ipywidgets as widgets # In[10]: h = widgets.IntText( value=170, description='Рост:', disabled=False ) m = widgets.IntSlider(min = 0, max = 250, value = 60, step = 1, description = "Вес: ") display(h) display(m) # In[11]: bmi = m.value / (h.value / 100) ** 2 print(f"Индекс массы тела: {round(bmi, 2)}.") # ### Задание 5 # # В Светлогорске, в музее Мирового океана есть прекрасные весы, которые позволяют узнать свой вес, измеренный в селёдках, в китах, в креветках и в других морских обитателях. Напишите код, который запрашивает у пользователя с клавиатуры его вес в килограммах (целое или дробное число) и выводит на экран его вес в селёдках, округленный до целого числа. Считайте, что средний вес селедки равен 350 граммам. # # **Пример исполнения кода:** # # Ввод: # # Enter your weight in kg: 56 # Вывод: # # Your weight is 160 herrings. # In[12]: W = int(input("Enter your weight in kg: ")) print(f"Your weight is {round(W * 1000 / 350)} herrings.") # In[13]: ww = widgets.IntText( value=0, description='Вес:', disabled=False ) display(ww) # In[14]: print(f"Your weight is {round(ww.value * 1000 / 350)} herrings.")