0
def make_tt_ins(n):
   if n == 0:
      return []
   elif n == 1:
      return [False, True]
   else:
      prev_set = make_tt_ins(n - 1)
      full_set = cross_multiply(prev_set, [False, True])
      return full_set

def cross_multiply(s1, s2):
   rtn_set = []
   for i in range(len(s1)):
      for j in range(len(s2)):
         if type(s1[i]) == bool:
            nxt = [s1[i], s2[j]]
            rtn_set.append(nxt)
         else:
            nxt = []
            for x in range(len(s1[i])):
               nxt.append(s1[i][x])
               nxt.append(s2[j])
            rtn_set.append(nxt)
   return rtn_set

上面的代码是我已经能够用 python 语言制作的。这个函数的要点是返回一个给定多个值(n)的真值表列表。前任。[[False, False], [False, True], [True, False], [True, True]] 如果 n=2。这一切对我来说都很好,但是当我要为我的项目上交它时,显然用 n=1 调用 make_tt_ins(n),我得到一个“TypeError:'bool object is not iterable”,但是当 n是任何其他值,它工作得很好,没有问题。我什至在 n=1 之前和之后对其进行了测试,但我仍然没有遇到问题。我想知道是否有人可以帮助我了解这是怎么回事!

4

0 回答 0