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-ю неделю года.'))