二进制 CSP 实例

Binary CSP instance

python 非常新,我正在尝试做一个二进制 CSP 实例,它根据用户想要的变量数量生成变量。因此,如果用户想要 4 个变量,它会生成 X1、X2、X3、X4,然后附加到列表中。我已经试过了,还是放不下

class CSP:
    def __init__(self, variables):
        self.variables = list(variables)

    def get_variables(self):
        return self.variables

class Map(CSP):
    n = input("Enter number of variables: ")
    for i in range(n):
        vare = 'X' + 'i'

    def __init__(self):
        super().__init__(self._collect_variables())

    def _collect_variables(self):
        variables = []
        variables.append(self.vare) #list the user appends to

def main():
    Map()

if __name__ == '__main__':
    main()

您的代码无法正常工作的原因很简单:它不会生成多个变量。取而代之的是,它更新单个变量 'vare'.

我应该按以下方式进行:

class Map(CSP):
    self._vare = []

    def __init__(self):
      n = input("Enter number of variables: ")
      for i in range(n):
        vare.append ('X' + 'i')

      super().__init__(self._get_variables())

    def _get_variables(self):
      return self._vare