首页 > 解决方案 > Python:给定一个二维数组,返回 True 是数组中的每个数字都是 2、0 和大于 2000 的幂。没有导入的库

问题描述

Python:给定一个 2-D ,创建一个函数,如果数组中的每个数字都是 2、0 和大于 200 的幂,则array该函数将返回。没有导入的库。True

前任:

board = [[0,1,0,2],[0,0,2,4],[0,7,2001,0]] 
return False

--

def is_data(board):
    col= len(board[0])
    row= len(board)
    for c in range(col):
        for r in range(row):
            n= int(board[r][c])
            if n > 2000:
                return False
            else:
                while isinstance(n, int) == True:
                    if n % 2 != 1:
                        if isinstance(n, float):
                            return False
                            break
                        else:
                            n = n//2                  
    return True

标签: pythonarrayscomputer-science

解决方案


楼层划分不是二次方。
https://www.w3schools.com/python/trypython.asp?filename=demo_oper_floordiv

def power_of_two( num ):
    while num > 1:  num /= 2
    if num == 1:  return True
    else:  return False

print(  power_of_two( 7 )  )
print(  power_of_two( 92 )  )
print(  power_of_two( 128 )  )
print(  power_of_two( 4096 )  )

输出:

False  
False  
True  
True 

推荐阅读