2017-07-06 22 views
-2

私は、サイコロを振ったり、数の平方根を見つけることができるプログラムを作成しました。これらのオプションは、数字1と2で切り替えることができます。どのように数値の平方根を求めたいのですが、それは私に必要な数の平方根と2の平方根を与えます。 。スタックオーバーフローが私のコードを入れてタフな時間を与えたとして、インデントのエラーを無視してください Pythonで数の平方根

from random import randint 
import math 

UserInput = int(input("To Roll A Dice, Type One. To Find The Square Root Of A 
Number, Press 2 ")) 
    while True: 
     if UserInput == 1: 
      print (randint(1, 6)) 

     if UserInput == 2: 
      print(math.sqrt(int(input("What Number Would You Like To Find The Square Root Of? ")))) 

そして、私は16の平方根を見つけたいとき、これは私の結果です::コードは以下の通りです

To Roll A Dice, Type One. To Find The Square Root Of A Number, Press 2 2 
What Number Would You Like To Find The Square Root Of? 16 
4.0 
1.4142135623730951 
+0

を持っています。 – Barmar

+1

この現象は再現できません。あなたはあなたに侮辱をしたことがありますか? –

+1

私はスクリプトを実行したところ、うまく見えたので、インデントの問題になる可能性があります。 2つのif文が互いに一致していることを確認し、/ elif/elseの形式を変更することを検討してください。 – ginginsha

答えて

2

コメントに記載されているようにインデントが悪いなどのコードの主な問題。さらに、それがあなたの目標でない限り、無限ループの必要はないことがわかります。あなたが繰り返しの場合は、ユーザー入力変数の作成上のwhileループを入れているユーザーの入力をお願いする場合を除き、ある

from random import randint 
import math 

UserInput = int(input("To Roll A Dice, Type One. To Find The Square Root Of A Number, Press 2 ")) 
if UserInput == 1: 
    print (randint(1, 6)) 

elif UserInput == 2: 
    print(math.sqrt(int(input("What Number Would You Like To Find The Square Root Of? ")))) 

: はここに私のコードです。

編集:あなたは本当に再ユーザビリティをしたいならば、あなたのインデントを修正し、この関数を作るためにdefを使用して、次のコードに

while True: 
    play = input("Do you want to play? y/n") 
    if play == "y": 
     function_name() 
    elif play == "n": 
     break 
+1

ありがとう!これは間違いなく助けになりました –