Программирование для всех (основы работы в Python)

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

Набор задач 1 по темам: вычисления в Python, переменные

Решения

Задача 1

Посчитайте:

  • $12^{34}$;
  • $\log(25)$, $\log_{10}(1000)$, $\log_{25}(15625)$;
  • $\sqrt{459}$ + $\sqrt{45}$.
In [1]:
12 ** 34
Out[1]:
4922235242952026704037113243122008064
In [2]:
import math 
math.log(25)
Out[2]:
3.2188758248682006
In [3]:
# через log10
math.log10(1000)   
Out[3]:
3.0
In [4]:
# через log – проблемы с дробными числами, это 3
math.log(1000, 10)   
Out[4]:
2.9999999999999996
In [5]:
# и здесь тоже, это 3
math.log(15625, 25)
Out[5]:
3.0000000000000004
In [6]:
math.sqrt(459) + math.sqrt(45)
Out[6]:
28.13248921812792

Задача 2

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

Пример:

In [7]:
# до
a = 2
b = 5
In [8]:
c = a
a = b
b = c
In [9]:
# после
print(a)
print(b)
5
2

Задача 3

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

In [10]:
gdp = 20000
log_gdp = math.log(gdp)
print(round(log_gdp, 2))
9.9
In [11]:
# или все сразу
gdp = 20000
print(round(math.log(gdp), 2))
9.9

Задача 4

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

$$ \text{Freedom}=0.4⋅ \text{Freedom House}+ 0.6⋅\text{Polity IV} $$
In [12]:
fh = 20
p = 4
Freedom = 0.4 * fh + 0.6 * p
Freedom
Out[12]:
10.4

Задача 5

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

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

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

In [13]:
# решение 1 – с многократным запуском следующей ячейки
i = 1
day = 1
In [14]:
i = i + 1
day = day + 3
print(i, day) 
2 4
In [15]:
# решение 2 – запрашиваем номер дня у пользователя и выводим результат – число минут
n = int(input("Enter day number: "))
res = 1 + 3 * (n - 1)
print(res)
Enter day number: 2
4