寻找完美立方体的Python程序
我已经写了这段代码,但当我写64时,它说不是完美立方体,为什么寻找完美立方体的Python程序,python,python-3.x,Python,Python 3.x,我已经写了这段代码,但当我写64时,它说不是完美立方体,为什么 num=int(input('num: ')) for i in range(0,num+1): if num==i**3: print('It is perfect cube') else: print('not perfect cube') break 如果检查的i的每一个值(而不仅仅是其中一个值)的num==i**3均为false,则只需打印“非完美立方体
num=int(input('num: '))
for i in range(0,num+1):
if num==i**3:
print('It is perfect cube')
else:
print('not perfect cube')
break
如果检查的i
的每一个值(而不仅仅是其中一个值)的num==i**3
均为false,则只需打印“非完美立方体”。基本上,您希望将else
附加到for
循环,而不是if
语句
for i in range(num+1):
if num == i**3:
print('It is a perfect cube')
break # Don't need to check more
else:
# Only executed if the loop ends "naturally", not via a break
print('It is not a perfect cube')
如果您想停止循环一次,这会变得更复杂一点i**3>num
;您需要一个标志来指示您是因为找到了多维数据集根而中断,还是因为您知道没有多维数据集根而中断。一种可能的办法:
cube = False
for i in range(num+1):
tmp = i ** 3
if num == tmp:
print('It is a perfect cube')
cube = True
break
elif num < tmp:
break
else:
if not cube:
print('Not a cube')
cube=False
对于范围内的i(num+1):
tmp=i**3
如果num==tmp:
打印(“它是一个完美的立方体”)
多维数据集=真
打破
elif num
找到解决方案后将停止计算值的快速版本
num = int(input('num: '))
if any(num == i ** 3 for i in range(num)):
print('perfect cube')
else:
print('not perfect cube')
num = int(input('num: '))
if any(num == i ** 3 for i in range(num)):
print('perfect cube')
else:
print('not perfect cube')