Как передать дробь в python как показатель степени для вычисления n-го корня из целого числа? - PullRequest
3 голосов
/ 19 июня 2011

Я пытаюсь написать простой скрипт на python, который будет вычислять квадратное число числа.вот код, который я придумал, и он работает.но я хотел бы узнать, как использовать дробные показатели вместо.

var1 = input('Please enter number:')
var1 = int(var1)

var2 = var1**(.5)
print(var2)

спасибо за помощь

Ответы [ 2 ]

11 голосов
/ 19 июня 2011

Вы можете использовать дробные показатели с помощью модуля fractions.

В этом модуле есть класс Fraction, который работает аналогично нашему встроенному int классу.
Вот ссылка на документацию класса - http://docs.python.org/library/fractions.html (просто посмотрите первые несколько примеров, чтобы понять, как он работает. Это очень просто.)

Вот код, который работал для меня -

from fractions import Fraction  
var1 = input('Please enter number:')  
var1 = Fraction(var1)  
expo = Fraction('1/2')           //put your fractional exponent here  
var2 = var1**expo  
print var2
6 голосов
/ 19 июня 2011
numerator, denominator = [float(s) for s in raw_input().strip().split("/")]
print 2 ** (numerator/denominator)

I полоса пробела от ввода, разделить его на части, а затем преобразовать части в числа с помощью списка .

Это не удастся, если ввод не в дробной форме. Проверять и вести себя соответственно ...

line = raw_input().strip()
if "/" in line:
    numerator, denominator = [float(s) for s in line.split("/")]
    exponent = numerator/denominator
else:
    exponent = float(line)

print 2 ** exponent

Если вы пытались использовать 2 ** (1/2) и это не помогло, это потому, что 1 и 2 являются целыми числами, поэтому Python 2 использует целочисленное деление и игнорирует дробную часть. Вы можете исправить это, набрав 1.0/2 в вашем скрипте или input().

...