Python
Как найти корень в Python: sqrt, степень 0.5 и math.isqrt
Если нужен квадратный корень, самый читаемый способ в Python — функция sqrt() из модуля math. Сначала импортируем модуль, потом передаем число, из которого нужно извлечь корень. Такой вариант лучше всего подходит для обычных учебных задач, расчетов расстояния, формул и проверки математических примеров
import math
number = 81
root = math.sqrt(number)
print(root)
Результат будет таким:
9.0
Обратите внимание: результат у math.sqrt() получается вещественным числом, поэтому Python выводит 9.0, а не 9. Это нормально. Даже если корень извлекается ровно, функция все равно возвращает число типа float
Как записать квадратный корень через степень
В Python возведение в степень записывается через **. Поэтому квадратный корень можно получить как степень 0.5
number = 81
root = number ** 0.5
print(root)
Такой код тоже выведет:
9.0
Этот способ полезен, когда вы уже работаете со степенями и хотите увидеть математическую связь: квадратный корень из числа — это число в степени одна вторая. Но в обычном учебном коде math.sqrt() читается понятнее, особенно для начинающих
Почему нельзя писать через ^
Начинающие часто пробуют написать так:
number = 81
root = number ^ 0.5
В математике символ ^ иногда используют для степени, но в Python это не возведение в степень. Для степени нужен оператор **. Поэтому выражение number ^ 0.5 не решает задачу и приведет к ошибке типов
Правильно:
root = number ** 0.5
или так:
import math
root = math.sqrt(number)
Как найти корень из числа, которое вводит пользователь
Если число вводится с клавиатуры, input() возвращает строку. Перед расчетом строку нужно превратить в число через float() или int()
import math
value = float(input("Введите число: "))
root = math.sqrt(value)
print("Квадратный корень:", root)
Если пользователь введет 25, программа выведет:
Введите число: 25
Квадратный корень: 5.0
Для учебных задач я бы использовал float(), потому что тогда программа сможет принять не только 25, но и 2.25. Если в задаче строго сказано, что вводятся только целые числа, можно использовать int()
Что будет с отрицательным числом
Функция math.sqrt() работает с обычными вещественными числами. Если передать туда отрицательное число, Python выдаст ошибку ValueError, потому что квадратный корень из отрицательного числа не является вещественным числом
import math
print(math.sqrt(-9))
Результат:
ValueError: math domain error
Если вы пока изучаете базовый Python, проще сначала проверять число и не пускать отрицательные значения в math.sqrt()
import math
value = float(input("Введите число: "))
if value < 0:
print("Для отрицательного числа обычный квадратный корень не считаем")
else:
print(math.sqrt(value))
Для комплексных чисел в Python есть модуль cmath, но начинающим лучше не смешивать его с базовыми задачами, пока не стало понятно, чем вещественные числа отличаются от комплексных
Целочисленный корень через math.isqrt()
Иногда нужен не точный вещественный корень, а целое число без дробной части. Для этого есть math.isqrt(). Она возвращает наибольшее целое число, квадрат которого не превышает исходное число
import math
print(math.isqrt(81))
print(math.isqrt(80))
Результат:
9
8
Почему для 80 получилось 8? Потому что 8 8 = 64, а 9 9 = 81, то есть девятка уже слишком большая. Такой вариант встречается в задачах на целые числа, делители, простые числа и оптимизацию перебора
Как найти корень другой степени
Кубический корень и корень другой степени можно записать через степень. Например, кубический корень — это степень 1 / 3
number = 27
root = number ** (1 / 3)
print(root)
Результат будет близок к 3.0, но из-за особенностей вещественных чисел иногда можно увидеть не совсем красивую дробь вроде 2.9999999999999996. Это не значит, что формула неправильная. Так работает представление дробных чисел в компьютере
Пример: длина диагонали по теореме Пифагора
Корень удобно показать на задаче, где он действительно нужен. Например, есть прямоугольный треугольник с катетами 3 и 4, нужно найти гипотенузу
import math
a = 3
b = 4
c = math.sqrt(a ** 2 + b ** 2)
print(c)
Результат:
5.0
Здесь a 2 и b 2 возводят катеты в квадрат, сумма дает 25, а math.sqrt(25) возвращает 5.0. На таком примере проще запомнить, зачем вообще нужен корень в программе
Мини-практика
Создайте файл root_practice.py и напишите программу, которая просит пользователя ввести два катета прямоугольного треугольника, считает гипотенузу и выводит результат. Начните с float(input(...)), потому что длины могут быть дробными, затем используйте формулу math.sqrt(a 2 + b 2)
После этого добавьте проверку: если пользователь ввел ноль или отрицательное число, программа должна написать, что длина стороны должна быть положительной. Это маленькое усложнение полезно, потому что в реальном коде почти всегда нужно проверять входные данные, а не только писать формулу
Частые ошибки
Ошибка первая: забыли import math. Если написать math.sqrt(25) без импорта, Python не знает, откуда взять имя math, и выдаст NameError
Ошибка вторая: использовали ^ вместо . В Python степень — это , поэтому квадрат числа пишется как number 2, а корень через степень — как number 0.5
Ошибка третья: передали строку из input() прямо в math.sqrt(). Сначала нужно сделать float(input(...)) или int(input(...)), потому что математическая функция не умеет считать корень из текста
Ошибка четвертая: пытаетесь считать math.sqrt(-9) и ждете обычное число. Для базового курса проще не считать корень из отрицательных чисел, а заранее проверять if value < 0
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- Path в Python: как найти путь к файлу, папке и самому Python
- Как написать бота в Telegram на Python: первый бот на aiogram
- Как округлить число в Питоне до целого: round, int, floor и ceil
- Как сделать калькулятор на Питоне: простой код для начинающих