2011-06-19 6 views
3

私は数字の平方根を計算する簡単なpythonスクリプトを書こうとしています。私は思いついたコードをheresし、それは動作します。しかし、分数指数を使用する方法を学びたいと思います。パーツに整数のn番目の根を計算するために、どのようにして分数をpythonに指数として渡すのですか?

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

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

助けてくれてありがとう

+0

あなたは文字列1/4などの形で指数の入力を得るのですか? –

答えて

10

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 
+0

Fractionクラスを使用するのが最も良い点は、入力(var1)がint、float、fraction、decimal、または文字列(適切な文字列)であるかどうかは関係なく、上記のコードスニペットが常に機能することです。 –

+0

'Fraction(1,243)** Fraction(1、5)'は '0.3333333'を生成しますが、Fraction(1,3) – endolith

6
numerator, denominator = [float(s) for s in raw_input().strip().split("/")] 
print 2 ** (numerator/denominator) 

入力からI strip空白、splitそれは、その後、list comprehensionで数値に部品を変換します。

入力が分数形式でない場合、これは失敗します。 12が整数であるため、Pythonの2が整数の除算を使用し、小数部分を無視するように、あなたは2 ** (1/2)を使用してみました、それが失敗した場合は...

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 

をチェックし、適切に動作するには、それが、あります。スクリプトに1.0/2と入力するか、input()と入力して修正できます。

+0

か、奇数の "1.0/2"入力を強制するのではなく、 'exponent = numerator /(float(denominator))'を使うことができます。 –

関連する問題