注册 登录
编程论坛 Python论坛

新手小白遇到问题,向大佬们求助

a793299850 发布于 2018-02-17 16:59, 1568 次点击
写一个函数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
3 回复
#2
shujuk2018-02-19 12:51
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))
#3
a7932998502018-02-19 23:07
好的,谢谢
#4
li3840222018-02-27 15:48
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)
1