设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 23497|回复: 4
打印 上一主题 下一主题

TypeError: object of type 'NoneType' has no len()

[复制链接]

1

主题

0

好友

245

积分

中级会员

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2017-4-8 23:53:41 |只看该作者 |倒序浏览
各位大佬帮个忙,困扰好几天了,我试着编一个关于全排列的小代码,可是老是显示TypeError: object of type 'NoneType' has no len(),很尴尬。具体报错信息为:Traceback (most recent call last):
  File "C:\Users\asus\Desktop\Exercise\00000.py", line 19, in <module>
    arrange(member)
  File "C:\Users\asus\Desktop\Exercise\00000.py", line 10, in arrange
    temp_arrange = arrange(temp_list)
  File "C:\Users\asus\Desktop\Exercise\00000.py", line 2, in arrange
    if len(member) == 1:
TypeError: object of type 'NoneType' has no len()
我的思路是这样的:想用递归(或者迭代?)的方式:首先对于输入进的n个元素,转化为字符类型存放于列表中,在取出第一个字符类型作为插入元素,依次插入到前面n-1个已经做好全排列的结果中,最后以列表形式输出。预计的结果大概像这样:[['a','s','d'],['a','d','s'],['d','s','a'],['d','a','s']]
下面贴我的代码:
def arrange(member):
    if len(member) == 1:
        result = []
        result.append(member)
        print(result)
        
    else:
        x = member[0]
        temp_list = member.remove(x)
        temp_arrange = arrange(temp_list)
        for i in temp_arange:
            for j in range(len(i)):
                i.insert(j,x)
                print(i)
   

member = input("请输入待排列元素:")
member = list(member)
arrange(member)
回复

使用道具 举报

0

主题

0

好友

5

积分

新手上路

Rank: 1

沙发
发表于 2017-4-9 11:29:33 |只看该作者
你用的是2还是3
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

板凳
发表于 2017-4-9 13:45:01 |只看该作者
报错里已经把你出错的地方都写出来了

temp_list = member.remove(x)

看看结果是什么
了解下 remove 的效果
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

245

积分

中级会员

Rank: 3Rank: 3

地板
发表于 2017-4-10 12:55:21 |只看该作者
unkownY 发表于 2017-4-9 11:29
你用的是2还是3

用的是3,经crossin大佬提醒,知道原因了,remove过后是返回none的,怪不得没有
回复

使用道具 举报

1

主题

0

好友

245

积分

中级会员

Rank: 3Rank: 3

5#
发表于 2017-4-10 12:57:58 |只看该作者
crossin先生 发表于 2017-4-9 13:45
报错里已经把你出错的地方都写出来了

temp_list = member.remove(x)

谢谢老师!找到原因了,remove之后确实返回none,怪自己没有搞清楚remove的具体作用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-4-20 08:53 , Processed in 0.025684 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部