все Python 3до 3.9Числа и математикафункция
fractions.gcd()
удалено
Наибольший общий делитель из модуля fractions. Удалён в Python 3.9 — используйте math.gcd().
Синтаксис
fractions.gcd(a, b) # до 3.9
Функция жила в fractions, потому что была нужна для сокращения дробей. В Python 3.5 появилась math.gcd() — быстрее и в правильном модуле, — и fractions.gcd() объявили устаревшей, а в 3.9 убрали. Как переписать: from fractions import gcd → from math import gcd. Одно отличие: у fractions.gcd() знак результата следовал за вторым аргументом, а math.gcd() всегда неотрицательна. С 3.9 math.gcd() принимает любое число аргументов, а для НОК есть math.lcm().
Примеры
# Python 3.9+
import fractions
try:
fractions.gcd(12, 18)
except AttributeError as e:
print(type(e).__name__) # → AttributeError
# Python 3.9+
import math
print(math.gcd(12, 18)) # → 6
print(math.gcd(4, -6)) # → 2
print(math.gcd(12, 18, 27)) # → 3
import fractions
print(fractions.gcd(12, 18)) # → 6
print(fractions.gcd(4, -6)) # → -2
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности