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. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x