オンラインでこの練習問題を教科書で見つけ出し、自分のやり方で戦うことを試みています。私は彼らがwhileループで答えられるように意図していると信じていますが、代わりにforループを使用していますが、これは私の問題です。初心者のためのPython:For Loop-後で行うこと
「0 < PWR < 6及びルート** PWRは、ユーザによって入力された整数に等しくなるよう整数を入力するようにユーザを促し、二つの整数PWRとルートを返すプログラムを書く。もし整数のそのようなペアが存在しない、それは「そのような整数が存在しない。」印刷する必要があります
どのようにしていると言う、どの#Sが基準を満たすかどうかを確認するためにテストし、どれもあれば行うことができますか?
u_i = int(input("input a #:"))
root = u_i**.5
for pwr in range(1,6):
ans = root**pwr
if ans == u_i:
print(pwr)
print(int(root))
#here is where the problem comes in as it will do this every time and I'm\ failing to discover what I should do instead.
if ans!= u_i:
print("No such integer exists")
全開示:それは長い時間でした私の最後の数学授業以来、私は私の "解決策"が質問が何を求めているのか正しいと確信していません。私は、私が直面するジレンマを解決することにもっと興味を持っていますが、私はループを適切に使用して周りを包み込みたいと思っています。
あなたはちょうど答えが見つかった直後に 'break'(Pythonコードと文字どおり:)が必要です。ループは常に最高値で終了し、最新のテストは偽である可能性があります。 –
プログラムは '64'に対して何を返すべきですか? '4 ** 3'または' 8 ** 2'?単なる好奇心から。 – Rockybilly
精度を失うことにも注意してください。 '(2 ** 5)** 2 = 2.0000000000000004'となります。基本的には、一度ルートを平方根にしてから元に戻すと、それは実数ではないかもしれません。 – MooingRawr