找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 1738|回复: 2

[求助] python yield问题

6

主题

10

帖子

10

积分

贫民

积分
10
robin_xzz 发表于 2019-4-12 15:24:39 | 显示全部楼层 |阅读模式
import random
def conflict(state,nextx):
    nexty = len(state)
    for i in range(nexty):
        if abs(state[i]-nextx) in (0,nexty-i):
            return True
    return False
def queens(num=8,state=()):
    for pos in range(num):
        if not conflict(state,pos):
            if len(state) == num - 1:
                yield (pos,)---------------------------------------------------------当前面三个(1,3,0)都满足,最后一行满足条件,比如为2时,返回的是(2,)就终止循环了,请问(2,)是怎么添加到元组中,变成(1,3,0,2)的?
            else:
                for result in queens(num,state + (pos,)):
                    yield (pos,) + result


回复

使用道具 举报

6

主题

10

帖子

10

积分

贫民

积分
10
robin_xzz  楼主| 发表于 2019-4-15 08:38:01 | 显示全部楼层
已找到原因
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
薯条叔叔 发表于 2019-4-15 15:02:34 | 显示全部楼层

兄弟你倒是说出原因,让后面的人学习学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表