标题:新手小白遇到问题,向大佬们求助
只看楼主
a793299850
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-2-17
结帖率:0
已结贴  问题点数:20 回复次数:3 
新手小白遇到问题,向大佬们求助
写一个函数get_digits(n),将参数n分解出每个位的数字并按顺序存放到列表中。举例:get_digits(12345) ==>
[1, 2, 3, 4, 5]
def get_digits(n):
    list1 = [ n%10 ]
    if n > 0:
        if n//10 == 0:
            return list1
        else:
            return list1.append(get_digits(n // 10))
n = int(input('请输入一串数字:'))
print(get_digits(n).sort())

错误类型'NoneType' object has no attribute 'sort'
为什么返回值会是None


QQ图片20180217165233.png (1.87 KB)
搜索更多相关主题的帖子: 参数 数字 if return sort 
2018-02-17 16:59
shujuk
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:100
注 册:2008-9-17
得分:20 
1. print(get_digits(n).sort())输出的可能是命令执行的结果,不是计算的结果了。
2. 你的迭代可能有问题。
3. 可以这样试试,我也不熟练。
def get_digits(n):
    t = []
    #把数字转换为字符串
    m = str(n)
    #把字符串转换为列表
    k = list(m)
    #把列表中的字符转换为数字
    for i in k:
        i = int(i)
        t.append(i)
    return t
   
n = int(input('请输入一串数字:'))
print(get_digits(n))
2018-02-19 12:51
a793299850
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-2-17
得分:0 
好的,谢谢
2018-02-19 23:07
li384022
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
得分:0 
n=int(input("输入一个数字"))
def get_digits(n):
    list1=[]
    while n>0:
        x=n%10
        n//=10
        list1.append(x)
    list1.sort()
    print(list1)  
get_digits(n)
2018-02-27 15:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-484767-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.103131 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved