Дробные числа
Числа бывают целыми и дробными. Для десятичных дробей, или чисел с плавающей запятой, в Python есть специальный тип данных — float
(от англ. floating point, «плавающая точка»).
first = 87.2
second = 50.2
third = 50.242
print(first + second + third) # 187.642
2
3
4
Дробные числа, как и целые, преобразуют к строкам вызовом функции str()
:
first = 87.2
second = 50.2
third = 50.242
print(str(first) + str(second) + str(third)) # 87.250.250.242
2
3
4
Такой похожий код — и такой разный результат! Превратив числа в строки, мы получили один из IP-адресов серверов.
Можно и наоборот. Преобразуем строки в числа функцией float()
:
first = '87.2' # строка
second = '50.2' # тоже строка
third = '50.242' # и это строка
print(float(first) + float(second) + float(third)) # 187.642 - будет числом
2
3
4
Дробные числа приводят к целым функцией int()
. Обратите внимание, что она не округляет числа по правилам арифметики, а лишь отбрасывает дробную часть.
# округление вниз, как вы привыкли
print(int(3.14)) # 3
# а здесь всё равно округление вниз, хотя вроде бы так быть не должно
print(int(2.72)) # 2
print(int(-3.14)) # -3
print(int(-2.72)) # -2
2
3
4
5
6
7
Также можно сделать несколько преобразований в одной строчке. Попробуем сначала сделать дробь целым числом, а затем преобразовать ее в строку:
fraction = 1.5 # дробь
print("Целая часть = " + str(int(fraction)))
# вернётся строка, представляющая собой целочисленную часть дроби
2
3
Целая часть = 1
ИНТЕРЕСНО
Что значит «плавающая запятая» и куда она плывет? Грубо говоря, дробные числа называются «числами с плавающей запятой», потому что запятая «плавает» по числу, когда его представляют в виде произведения значащей части и степени.
Например, число 3,14159 можно записать следующим образом:
314,15910^(-2)
0,031415910^(2)
314159,0*10^(-5)
В англоязычной литературе запятая называется точкой, floating point, потому что принято писать десятичные дроби через точку.
Упражнения
Научим Виту вести беседы о погоде. Температура хранится в переменной
temperature
, а описание погоды — в переменнойweather
. Соберите из строк и переменных сообщение так, чтобы на экране вывелись все возможные четыре фразы:Сегодня солнечно, температура воздуха -25 градусов Цельсия
Сегодня облачно, температура воздуха -25 градусов Цельсия
и т.д.temperature_1 = -25 temperature_2 = 25 weather_sun = 'солнечно' weather_cloudy = 'облачно' # напишите ваш код ниже
1
2
3
4
5
6Очеловечим Виту. Пусть она округляет точные значения так, как это делают люди. Точное значение — дробь — хранится в переменной temperature_exact (англ. exact, «точный»). Выведите на экран строку вида За окном 39.3 градусов Цельсия. Это почти 40 Вита должна взять точное значение, отбросить знаки после запятой, добавить единицу и сообщить примерное значение, округлённое «вверх» — до ближайшего большего целого числа. Его Вита сохраняет в переменной temperature_approx(от англ. approximate, «примерный»). При другом значении temperature_exact должна изменяться и возвращаемая строка.
temperature_exact = '39.3' # (жара)
temperature_approx = int(float(temperature_exact)) + 1 # преобразуйте значение в целое и прибавьте 1
2
Упражнения tkinter
Создайте оконное приложение "Вита", в которое выводятся данные о погоде: утро, день, вечер, ночь. Температура хранится в переменной
temperature
, а описание погоды — в переменнойweather
.Сегодня утром солнечно, температура воздуха -25 градусов Цельсия
Сегодня днем облачно, температура воздуха -25 градусов Цельсия
и т.д.Создайте оконное приложение "Вита", в которое выводятся данные о температуре. Пусть она округляет точные значения так, как это делают люди. Точное значение — дробь — хранится в переменной temperature_exact (англ. exact, «точный»). Выведите на экран строку вида За окном 17.3 градусов Цельсия. Это почти 18 Вита должна взять точное значение, отбросить знаки после запятой, добавить единицу и сообщить примерное значение, округлённое «вверх» — до ближайшего большего целого числа. Его Вита сохраняет в переменной temperature_approx (от англ. approximate, «примерный»). При другом значении temperature_exact должна изменяться и возвращаемая строка.
temperature_exact = '17.3' # (жара) # преобразуйте значение в целое и прибавьте 1 temperature_approx = int(float(temperature_exact)) + 1
1
2
3