【发布时间】:2021-10-17 08:48:20
【问题描述】:
x = 64
root = 0
for pwr in range(2,6):
if x > 1:
while root <= x:
root += 1
if root**pwr == x:
print('root = ', root, ' and pwr = ', pwr)
root = 0
elif x < 0:
while root >= x:
root -= 1
if root**pwr == x:
print('root = ', root, ' and pwr = ', pwr)
root = 0
elif x == 0:
print('There is no such pair')
break
我收到的输入是: 根 = 8 和 pwr = 2 root = 4 和 pwr = 3
但是,我只希望获得最高的根答案(如果有)。
所以我希望我的输入只是:
root = 8 和 pwr = 2
反之亦然...如果我只想显示它应该怎么做: root = 4 和 pwr = 3
谢谢!
【问题讨论】:
-
那么,循环内的事情会发生一次还是多次?您希望
print发生一次还是多次?因此,它应该发生在循环内部还是外部?现在,下一个问题是如何确定它应该打印什么。这里有一个提示:尝试使用一个变量来记住迄今为止看到的最佳结果。你能看到循环结束后如何使用该结果吗? -
不确定我是否完全理解要求,但看起来好像 print() 之后的 break 可能就是您所需要的全部
-
@BrutusForcus 是的!这解决了我的第一个问题,但现在我该如何让它只打印 root = 4 和 power = 3?
-
@KarlKnechtel 你能扩展你的提示吗?我想不出任何变量来代表最好的结果。我很欣赏第一个提示,现在为什么我要打印多个值更有意义。
-
“我想不出任何变量来代表最好的结果。”这没有任何意义。你知道什么是变量。您需要做的是为其分配一个值。你知道
=做了什么,对吧?试着一步一步地思考这个过程。用一支真正的铅笔和一张纸画一个图表。
标签: python for-loop input range