gpt4 book ai didi

python - 在这种情况下,if 代码块如何从 while 循环中断的位置继续执行?

转载 作者:行者123 更新时间:2023-12-01 09:02:00 25 4
gpt4 key购买 nike

我根本没有任何编码经验,而且我刚刚开始学习 Python。

在 John Guttag 的书《Introduction to Computation andProgramming Using Python With Application to Understanding Data》中,第 3 章开头有一个代码示例:

#Find the cube root of a perfect cube
x = int(input('Enter an integer: '))
ans = 0
while ans**3 < abs(x):
ans = ans + 1
if ans**3 != abs(x):
print(x, 'is not a perfect cube')
else:
if x < 0:
ans = -ans
print('Cube root of ' + str(x) + ' is ' + str(ans))

我很难理解的是,“while”之外的“if”如何能够从循环停止迭代的地方继续进行?如果是因为 ans 的最后一次迭代使其脱离了循环并且也满足了 if 条件,那么 if 条件如何对 ans 的值以及循环内的 x 起作用?(ans^3 不等于x 只在 while 循环内,这部分怎么能工作:

 if ans**3 != abs(x):
print(x, 'is not a perfect cube')

我真的不知道还能怎么问这个问题,但这是我在查看书中的代码之前想出的代码,它有效,也许它有助于澄清我到底要问什么:

x=int(input('Enter an integer: '))
crx=0

while True:
if crx**3<abs(x):
crx=crx+1
elif crx**3==x:
print('The cube root of',x,'is',str(crx)+'.')
break
elif crx**3==-x:
print('The cube root of',x,'is',str(-crx)+'.')
break
else:
print(x,'is not a perfect cube.')
break

在我看来,不知何故,我必须在 while 循环内插入 if 代码块...

提前谢谢您。

最佳答案

这不是 if 返回到 while 循环的结果。让我们检查一下控制流:

x 被设置为来自字符串输入的整数

ans 初始化为值 0,一个 int

x = int(input('Enter an integer: '))
ans = 0

要检查某物是否具有立方根,while 循环会获取每个大于 0 的整数,并对其进行立方,如果立方小于小于 x,然后我们将 ans1,否则,保存 ans 并退出 while 循环。请注意,否则,如果立方体大于或等于x

while ans**3 < abs(x):
ans = ans + 1

如果结果 ans 等于 x,则 x 有立方根。如果不是,则 x 不是立方根。

if ans**3 != abs(x):
print(x, 'is not a perfect cube')
else:
if x < 0:
ans = -ans
print('Cube root of ' + str(x) + ' is ' + str(ans))

关于python - 在这种情况下,if 代码块如何从 while 循环中断的位置继续执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52392605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com