Основы программирования в Python

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

Семинар 1

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

Задание 0 (вычислительное)

Посчитайте:

  • $log(25)$, $log(exp(3))$, $log_{10}1000$
  • $\pi^3$, $123^4$
  • $\sqrt{459}$
In [1]:
# импортируем модуль math
import math
In [2]:
# посчитаем
math.log(25)
Out[2]:
3.2188758248682006
In [3]:
math.log(math.exp(3))
Out[3]:
3.0
In [4]:
math.log10(1000)
Out[4]:
3.0
In [5]:
math.pi ** 3
Out[5]:
31.006276680299816
In [6]:
123 ** 4
Out[6]:
228886641
In [7]:
math.sqrt(459)
Out[7]:
21.42428528562855

Задание 1 (стартовое)

В переменных a и b хранятся некоторые числа. Напишите код, который бы менял значения переменных местами. Пример:

In [12]:
# до
a = 2
b = 5
In [10]:
# после
print(a)
print(b)
5
2
In [13]:
# создадим дополнительную переменную
# она будет выступать в роли пустой коробки, 
# в которую мы на время будем "перекладывать" значения

c = a 
a = b
b = c

print(a)
print(b)
5
2

Для тех, кто знаком с множественным присваиванием в Python:

In [14]:
a = 2
b = 5

a, b = b, a

print(a, b)
5 2

Задание 2 (экономическое)

Напишите программу, которая логарифмирует значение ВВП, которое хранится в переменной gdp и округляет результат до второго знака после запятой.

In [15]:
gdp = 2104568

round(math.log(gdp), 2)
Out[15]:
14.56

Задание 3 (политологическое)

В переменной fh хранится значение индекса политической свободы Freedom House, а в переменной p значение индекса Polity IV. Напишите программу, которая будет считать индекс Freedom:

$Freedom = 0.4 \cdot Freedom House + 0.6 \cdot Polity IV$

In [16]:
fh = 3.6
p = -2

0.4 * fh + 0.6 * p # не совсем ожидаемый результат - это все особенности float
Out[16]:
0.2400000000000002

Задание 4 (весеннее)

С приходом весны питон решил каждый день выползать погреться на солнышко. Однако он знал, что солнце весной довольно активное, и поэтому разработал такую схему: в первый день он греется одну минуту, а в каждый последующий день увеличивает время пребывания на солнце на 3 минуты. Напишите код, который позволит вычислять, сколько минут питон будет тратить на солнечные ванны в некоторый выбранный день.

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

In [17]:
time = 1 # число минут в первый день
i = 1 # номер дня
print(i, time)
1 1
In [18]:
time = time + 3 # будем каждый раз обновлять значение - к уже сохраненному добавлять 3
i = i + 1 # увеличиваем номер дня на 1
print(i, time)
2 4
In [19]:
# можно просто прогонять предыдущую ячейку через Ctrl+Enter много раз,
# я скопирую пару раз для наглядности

time = time + 3
i = i + 1
print(i, time)
3 7
In [20]:
time = time + 3
i = i + 1
print(i, time)
4 10

Для тех, кому интересно – еще один способ увеличивать значения переменных на какое-то число:

In [21]:
time += 3 # плюс равно - увеличивать на 3 текущее значение
i += 1 
print(i, time)
5 13

Для других операций такое тоже будет работать:

In [22]:
# пример с умножением
y = 3
y *= 2
print(y)
6
In [23]:
y *= 2
print(y)
12

Задание 5 (приветственное)

Напишите программу, которая запрашивает у пользователя имя и фамилию и выводит на экран сообщение

Имя Фамилия, добро пожаловать!

In [24]:
name = input("Введите имя: ")
surname = input("Введите фамилию: ")
Введите имя: Алла
Введите фамилию: Тамбовцева
In [25]:
print('%s %s, добро пожаловать!' % (name, surname))
Алла Тамбовцева, добро пожаловать!

Если кто-то чувствует себя некомфортно с форматированием строк через %, еще вариант:

In [26]:
# плюс - для склеивания строк, иначе перед запятой будет пробел 
# можно проверить: наберите print(name, surname, ',', 'добро пожаловать!') 

print(name, surname + ',', 'добро пожаловать!') 
Алла Тамбовцева, добро пожаловать!

Задание 6 (кулинарно-политологическое)

Перед вами шаблон рецепта жизни политолога на факультете социальных наук:

Рецепт

название курса: 200 г

название курса: 300 г

название курса: 100 г

Приправить политической историей. Добавить математические модели по вкусу.

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

Пример:

Введите название первого курса: политическая теория
Введите название второго курса: история политических учений
Введите название третьего курса: математика
Рецепт

политическая теория : 200 г

история политических учений: 300 г

математика: 100 г

Приправить политической историей. Добавить математические модели по вкусу.

Задание 7 (кулинарно-математическое)

У вас есть шаблон, похожий на шаблон рецепта из предыдущей задачи:

Рецепт

политическая теория : __ кг

история политических учений: __ кг

математика: __ кг

Приправить политической историей. Добавить математические модели по вкусу.

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