July 17, 2022
Библиотеки
Общую информацию о библиотеках можно получить тут.
А здесь можно почитать про модуль Pandas
Пример кода импорта библиотеки:
Импортируем библиотеку random
— и станут доступны её функции, например
- функция
random.randint(min, max)
выберет случайное целое число в диапазоне от числа min до числа max; - функция
random.choice(список)
вернёт случайный элемент из списка; - функция
random.random()
вернёт случайное дробное число от 0.0 до 1.0.
Можно импортировать не всю библиотеку, а только одну ее функцию:
from random import choice # из библиотеки random подключить функцию choice
from random import choice # Импорт одной функции из библиотеки def find_a_present(prizes): # Обращаемся к функции напрямую: choice(), а не random.choice() return choice(prizes) print(find_a_present(['кукла', 'жвачка', 'игрушечный питон'])) print(find_a_present(['мяч', 'чебурашка', 'лосяш']))
Иногда у библиотек очень длинные имена, и, если не хочется при каждом вызове писать её полное имя и загромождать код, при импорте можно дать библиотеке короткий «псевдоним» через ключевое слово as
:
import random as r # Теперь к библиотеке random нужно обращаться только через псевдоним r: print(r.randint(0, 100)) # Случайное целое число от 0 до 100
Работа со временем
Со временем работает функция datetime
import datetime as dt
Тип данных datetime — ещё один тип, как int, string или dict. Он нужен, чтобы хранить информацию о конкретном моменте времени: год, месяц, день, час, минуты, секунды и микросекунды. Чтобы создать объект этого типа, нужно вызвать функцию datetime() из библиотеки dt. Она принимает обязательные аргументы — год, месяц и день, — и необязательные: час, минута, секунда и микросекунда, которые по умолчанию равны нулю.
import datetime as dt # Взлёт: 1961 год, 12 апреля, 9 часов утра, 7 минут start_time = dt.datetime(1961, 4, 12, 9, 7, 0) print('Уже', start_time, 'Поехали!')
import datetime as dt start_time = dt.datetime(1961, 4, 12, 9, 7, 0) # Дата и время посадки: 1961 год, 12 апреля, 10 часов, 55 минут landing_time = dt.datetime(1961, 4, 12, 10, 55, 0) print(landing_time - start_time)
При создании данных типа datetime можно не указывать время и обойтись только датой. В этом случае метка времени будет установлена автоматически, это будет полночь, начало заданной даты:
import datetime as dt start_day = dt.datetime(1961, 4, 12) print(start_day)
1961-04-12 00:00:00
Как сделать так, чтобы отображалось только время или только часы с минутами, будет ниже в разделе "Форматирование времени".
Пример правильно решенной задачи по вычитанию времени:
# подключите библиотеку datetime под именем dt import datetime as dt start_moment = dt.datetime(2022,7,10,10,52,0) current_moment = dt.datetime(2022,7,15,23,8,0) total_time =current_moment-start_moment print(total_time)
Стандарт времени UTC
import datetime as dt utc_time = dt.datetime.utcnow() print(utc_time) # покажет время по гринвичу
Время - это еще одна переменная, как int, string и т.д., поэтому его складывать с числами и строками не получится.
На случай сложения разных типов данных есть тип данных timedelta, в котором можно сохранить определённый промежуток времени — в часах, днях, годах, как угодно. Этот тип данных тоже хранится в библиотекеdt
. А объект такого типа создаётся функциейtimedelta()
import datetime as dt # Как и раньше - определяем текущее время UTC utc_time = dt.datetime.utcnow() # Создаём промежуток времени в три часа period = dt.timedelta(hours=3) # И прибавляем к значению времени по UTC поправку в три часа: moscow_time = utc_time + period # Печатаем print(moscow_time)
В аргументах функцииtimedelta()
можно указыватьdays
,hours
,minutes
,seconds
,microseconds
.
Пример: import datetime as dt # Время, за которое Боттас сделал круг — это не дата, # а продолжительность, промежуток времени. Создаём данные типа timedelta: time_bottas = dt.timedelta(minutes=1, seconds=25, microseconds=273250) # Вычисляем timedelta Хэмилтона: time_hamilton = time_bottas + dt.timedelta(microseconds = 208860) print(time_hamilton)
Форматирование времени
Для отображение определенного вида времени используем метод strftime().
print('Самолёт прибывает в', arrival_time.strftime('%H:%M')) # Самолёт прибывает в 19:45
Здесь%H
означает часы,%M
— минуты.
Кроме этих параметров, бывают ещё, например%B
— месяц,%Y
— год и%S
— секунды,%A
— название дня недели по-английски,%U
— номер недели в году.
import datetime as dt # дата первого осеннего снега в Новосибирске в 2018 first_snow = dt.datetime(2018, 9, 9) # дата последнего весеннего снега в Новосибирске в 2018 last_snow = dt.datetime(2018, 5, 19) print(last_snow.strftime('Последний снег выпал в %U-ю неделю года.')) print(first_snow.strftime('А первый снег пошёл в %U-ю неделю.'))
Результат:
Последний снег выпал в 19-ю неделю года.
А первый снег пошёл в 36-ю неделю.
dt.datetime(1961, 4, 12, 9, 7, 0)
random.randint(min, max)
random.choice(список)
random.random()
from random import choice
period = dt.timedelta(hours=3)
(last_snow.strftime('Последний снег выпал в %U-ю неделю года.'))