Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
寻找完美立方体的Python程序_Python_Python 3.x - Fatal编程技术网

寻找完美立方体的Python程序

寻找完美立方体的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,则只需打印“非完美立方体

我已经写了这段代码,但当我写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,则只需打印“非完美立方体”。基本上,您希望将
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')