defconflict(state, nextX):
nextY = len(state)
for i in range(nextY):
if abs(state[i] - nextX) in (0, nextY - i):
returnTruereturnFalsedefqueens(num=8, state=()):for pos in range(num):
ifnot conflict(state, pos):
if len(state) == num -1:
yield (pos, )
else:
for result in queens(num, state+(pos,)):
yield (pos,) + result
print(list(queens(8)))
print(len(list(queens(8))))
# 不使用生成器deffib1(max):
res = []
n, a, b = 0, 0, 1while n < max:
res.append(a + b)
a, b = b, a + b
n += 1return res
# 使用生成器deffib2(max):
n, a, b = 0, 0, 1while n < max:
yield b
a, b = b, a + b
n += 1
f1 = fib1(5)
print(f1)
for i in fib2(10):
print(i)