2017-08-03 19 views
1

私は平方根のために私自身のコードを書こうとしています。プログラムは完全な四角形と10進数ではない根しか印刷できません。 私はプログラムがすべての根を印刷できるようにしたいと思います。フロートを印刷できません

userInput=input("Enter a natural number:>>>") 
userInput=int(userInput) 

はこれを行います:

userInput = float(input("Enter a number:>>>")) 

intは整数のみを許可する、floatは小数点以下を可能に

は、これは私がこれまで

while True: 

    def frange(start, stop, step=1): 
     i = start 
     while i < stop: 
      yield i 
      i += step 
    userInput=input("Enter a natural number:>>>") 
    userInput=int(userInput) 
    for i in frange(1,(userInput+1)/2): 
     if i*i==userInput: 

      print(i) 
+1

defループブロックからdef frangeブロックを移動して、int(userInput)をfloat(userInput)に変更すると、行きたいと思っています。 –

+0

あなたの質問をよく読んで、frange()関数を浮動小数点数を出力するように変更する必要があります。あなたが印刷するi値はfrange()関数の出力です。これは常に整数になります。たとえそれを浮かべてキャストしても、それはまだ整数に過ぎません。 –

+1

あなたのアルゴリズムは整数平方根のブルートフォース検索です。*もちろんもちろん、正方形の整数平方根だけを出力します。任意の平方根に対しては、根本的に異なる手法が必要です。ニュートンの方法。または、ホイールを再開発したくない場合は 'math.sqrt()'を使用してください。ところで、私はあなたが印刷*浮動小数点の問題があることを疑う、したがってあなたのタイトルは誤解を招く。 –

答えて

0

代わりにこれを行うの持っているものです。

編集:私はあまりにも再読み込みあなたの質問

それについて考え、あなたのコードの多くは不要である

する必要がありました。

userInput = float(input("Enter a number:>>>")) 
root = userInput ** 0.5 
print(str(root)) 
関連する問題