名字" "没有定义

时间:2015-10-04 23:28:42

标签: python nameerror

import math

EMPTY = '-'

def is_between(value, min_value, max_value):
    """ (number, number, number) -> bool

    Precondition: min_value <= max_value

    Return True if and only if value is between min_value and max_value,
    or equal to one or both of them.

    >>> is_between(1.0, 0.0, 2)
    True
    >>> is_between(0, 1, 2)
    False
    """
    return value >= min_value and value <= max_value

    # Students are to complete the body of this function, and then put their
    # solutions for the other required functions below this function.

def game_board_full(cells):
    """ (str) -> bool

    Return True if no EMPTY in cells and else False

    >>> game_board_full ("xxox")
    True
    >>> game_board_full ("xx-o")
    False
    """

    return "-" not in cells



def get_board_size (cells):
    """ (str) -> int

    Return the square root of the length of the cells

    >>>get_board_size ("xxox")
    2
    >>>get_board_size ("xoxoxoxox")
    3
    """
    sqrt_cell= len(cells) ** 0.5

    return  int(sqrt_cell)


def make_empty_board (size):
    """ (int) -> str
    Precondition: size>=1 and size<=9

    Return a string for storing information with the size
    >>>make_empty_board (2)
    "----"
    >>>make_empty_board (3)
    "---------"
    """

    return "-" *size ** 2 



def get_position (row_index,col_index,size):
    """ (int,int,int) -> int

    Precondition:size >=col_index and size >= row_index

    Return the str_index of the cell with row_index,col_index and size
    >>>get_position (2,2,4)
    5
    >>>get_position (3,4,5)
    13
    """
    str_index = (row_index - 1) * size + col_index - 1  
    return str_index


def make_move( symbol,row_index,col_index,game_board):
    """(str,int,int,str) -> str

    Return the resultant game board with symbol,row_index,col_index and game_board
    >>>make_move("o",1,1,"----")
    "o---"
    >>>make_move("x"2,3,"---------")
    "-----x---"
    """
    length=len(game_board)
    size=len(cells) ** 0.5 
    str_index = (row_index - 1) * size + col_index - 1
    return "-"*(str_index-1)+symbol+"-"*(length-str_index)




def extract_line (cells,direction,cells_num):
    """ (str,str,int) -> str

    Return the characters of a specified row with cells, direction and cells_num

    >>>extract_line ("xoxoxoxox","across",2)
    "oxo"
    >>>extract_line ("xoxo","up_diagonal","-")
    "xo"
    """
    num=cells_num
    s=cells
    size= get_board_size (cells)
    if direction=="across":
        return  s[(num-1)* size : num*size]
    elif direction=="down":
        return  s[num-1:size **2:size]
    elif direction=="up_diagonal":
        return  s[(size-1)*size:size-2:1-size]
    elif direction=="down_diagonal":
        return  s[0:size*2:size+1]
  

NameError:name&#39; cells&#39;未定义

我不知道如何定义cells,因为它是一个参数。

2 个答案:

答案 0 :(得分:1)

中没有cells参数
def make_move( symbol,row_index,col_index,game_board):

下次仔细阅读错误消息,以便了解您遇到问题的代码行。

答案 1 :(得分:0)

我发现您在没有声明的情况下引用了make_move函数中的变量单元格,也许您应该在参数列表中定义它。

顺便说一句,你必须提出所有的追溯,否则我们所有人都很难找到问题。