В этом листочке речь пойдет о нецелых числах, имеющих тип float
.
Обратите внимание, что если вы хотите считать с клавиатуры нецелое
число, то результат, возращаемый функцией input()
необходимо
преобразовывать к типу float
:
x = float(input())
Числа типа float представляются в виде чисел с десятичной точкой (а не запятой, как принято при записи десятичных дробей в русский текстах). Для записи очень больших или очень маленьких по модулю чисел используется так называемая запись “с плавающей точкой” (также называемая “научная” или “стандартная” запись). В этом случае число представляется в виде некоторой десятичной дроби, называемой мантиссой, умноженной на целочисленную степень десяти (порядок). Например, расстояние от Земли до Солнца равно 1.496·1011 м, а масса молекулы воды 2.99·10-23 г.
Числа с плавающей точкой в программах на языке Питон, а также при вводе и выводе записавыются
в виде мантиссы, затем пишется буква e
, затем пишется порядок. Пробелы внутри этой
записи не ставятся. Например, указанные выше константы можно записать в виде
1.496e11
и 2.99e-23
. Перед самим числом также может стоять знак минус.
Напомним, что результатом операции деления /
всегда является число типа float,
в то время как результатом операции //
является целое число.
Преобразование чисел типа float к целому производится с округлением
в сторону нуля, то есть int(1.7) == 1
, int(-1.7) == -1
.
Для проведения вычислений с действительными числами язык Питон содержит много
дополнительных функций, собранных в библиотеку (модуль), которая называется math
.
Для использования этих функций в начале программы необходимо подключить математическую библиотеку, что делается командой
import math
Функция от одного аргумента вызывается, например, так: math.sin(x)
(то есть явно указывается, что из модуля math
используется функция sin
).
Вместо числа x
может быть любое число, переменная или выражение.
Функция возращает значение, которое можно вывести на экран, присвоить
другой переменной или использовать в выражении:
y = math.sin(x) print(math.sin(math.pi/2))
Другой способ использовать функции из библиотеки math
, при котором не нужно будет
при каждом использовании функции из модуля math
указывать название
этого модуля, выглядит так:
from math import * y = sin(x) print(sin(pi/2))
Ниже приведен список основных функций модуля math
. Более подробное описание
этих функций можно найти на сайте с документацией на Питон.
Некоторые из перечисленных функций (int
, round
, abs
)
являются стандартными и не требуют подключения модуля math
для использования.
Функция | Описание |
---|---|
Округление | |
int(x) |
Округляет число в сторону нуля. Это стандартная функция, для ее использования не нужно подключать
модуль math . |
round(x) |
Округляет число до ближайшего целого. Если дробная часть числа равна 0.5, то число округляется
до ближайшего четного числа. Функция round(x, n) округляет число x
до n знаков после точки. Это стандартная функция, для ее использования не нужно подключать
модуль math . |
floor(x) |
Округляет число вниз (“пол”), при этом floor(1.5) == 1 , floor(-1.5) == -2 |
ceil(x) |
Округляет число вверх (“потолок”), при этом ceil(1.5) == 2 , ceil(-1.5) == -1 |
trunc(x) |
Округление в сторону нуля (так же, как функция int ). |
abs(x) |
Модуль (абсолютная величина). Это - стандартная функция. |
fabs(x) |
Модуль (абсолютная величина). Эта функция всегда возвращает значение типа float . |
Корни, степени, логарифмы | |
sqrt(x) |
Квадратный корень. Использование: sqrt(x) |
pow(a, b) |
Возведение в степень, возвращает ab. Использование: pow(a,b) |
exp(x) |
Экспонента, возвращает ex. Использование: exp(x) |
log(x) |
Натуральный логарифм. При вызове в виде log(x, b) возвращает логарифм по основанию b . |
log10(x) |
Десятичный логарифм |
e |
Основание натуральных логарифмов e примерно равно 2.71828... |
Тригонометрия | sin(x) |
Синус угла, задаваемого в радианах |
cos(x) |
Косинус угла, задаваемого в радианах |
tan(x) |
Тангенс угла, задаваемого в радианах |
asin(x) |
Арксинус, возвращает значение в радианах |
acos(x) |
Арккосинус, возвращает значение в радианах |
atan(x) |
Арктангенс, возвращает значение в радианах |
atan2(y, x) |
Полярный угол (в радианах) точки с координатами (x, y). |
hypot(a, b) |
Длина гипотенузы прямоугольного треугольника с катетами a и b. |
degrees(x) |
Преобразует угол, заданный в радианах, в градусы. |
radians(x) |
Преобразует угол, заданный в градусах, в радианы. |
pi |
Константа π |
Дано положительное действительное число X. Выведите его дробную часть.
Ввод | Вывод |
---|---|
17.9 |
0.9 |
Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. При решении этой задачи нельзя пользоваться условной инструкцией и циклом.
Ввод | Вывод |
---|---|
1.79 |
7 |
По российский правилам числа округляются до ближайшего целого числа, а если дробная часть числа равна 0.5, то число округляется вверх.
Дано неотрицательное число x
, округлите его по этим правилам.
Обратите внимание, что функция round
не годится для этой задачи!
Ввод | Вывод |
---|---|
2.3 |
2 |
2.5 |
3 |
С начала суток прошло H часов, M минут, S секунд (0 ≤ H <12, 0 ≤ M < 60, 0 ≤ S < 60). По данным числам H, M, S определите угол (в градусах), на который повернулаcь часовая стрелка с начала суток и выведите его в виде действительного числа.
При решении этой задачи нельзя пользоваться условными инструкциями и циклами.
Ввод | Вывод |
---|---|
1 |
31.05 |
С начала суток часовая стрелка повернулась на угол в A градусов. Определите на какой угол повернулась минутная стрелка с начала последнего часа. Входные и выходные данные — действительные числа.
При решении этой задачи нельзя пользоваться условными инструкциями и циклами.
Ввод | Вывод |
---|---|
190 |
120 |
С начала суток часовая стрелка повернулась на угол в A градусов. Определите сколько полных часов, минут и секунд прошло с начала суток, то есть решите задачу, обратную задаче F. Запишите ответ в три переменные и выведите их на экран.
При решении этой задачи нельзя пользоваться условными инструкциями и циклами.
Ввод | Вывод |
---|---|
31.05 |
1 2 6 |
К задачам H и I существует подсказка. Если вы написали программу, сдали ее в проверяющую систему, а она ведет себя странно, пожалуйста, придите про это поговорить и попросите подсказку.
Процентная ставка по вкладу составляет P процентов годовых, которые прибавляются к сумме вклада. Вклад составляет X рублей Y копеек. Определите размер вклада через год.
Программа получает на вход целые числа P, X, Y и должна вывести два числа: величину вклада через год в рублях и копейках. Дробная часть копеек отбрасывается.
Подумайте, как решить эту задачу, не пользуясь условными инструкциями и циклами.
Ввод | Вывод |
---|---|
12 |
200 48 |
Процентная ставка по вкладу составляет P процентов годовых, которые прибавляются к сумме вклада через год. Вклад составляет X рублей Y копеек. Определите размер вклада через K лет.
Программа получает на вход целые числа P, X, Y, K и должна вывести два числа: величину вклада через K лет в рублях и копейках. Дробное число копеек по истечение года отбрасывается. Перерасчет суммы вклада (с отбрасыванием дробных частей копеек) происходит ежегодно.
Ввод | Вывод |
---|---|
12 |
315 43 |
Цена товара обозначена в рублях с точностью до копеек, то есть действительным числом с двумя цифрами после десятичной точки. Запишите в две целочисленные переменные стоимость товара в виде целого числа рублей и целого числа копеек и выведите их на экран.
При решении этой задачи нельзя пользоваться условными инструкциями и циклами.
Ввод | Вывод |
---|---|
10.35 |
10 35 |
Забудьте формулу суммы геометрической прогрессии и вычислите сумму 1+x+x2+...+xn.
Программа получает на вход целое число n и действительное число x. Операцией возведения в степень пользоваться нельзя. Алгоритм должен содержать только один цикл.
Ввод | Вывод |
---|---|
4 |
1.1111 |