#方法一(数字解包,最快!)
x = 1234
a,b,c,d = map(int,str(x))
print(tuple({a,b,c,d}))

#方法二(字符串转换函数,也快,注意缩进tab和空格统一)
def position(number):
    ls=[]
    for i in str(number):
        ls.append(int(i))
    return print(tuple(ls))
position(1234)

#方法三(函数递归)
ls1=[]
def func1(n): #从高分位开始打印
    lengh = len(str(n))     # 确定数字的长度
    x = 10**(lengh-1)       # 确定数字的分位
    if n < 10:
        ls1.append(n)
    else:
        ls1.append(n//x)
        func1(n%x)
    return ls1
print(tuple(func1(1234)))

#方法四(调换了方法三的两行,更简洁,逻辑更强大!!!)
ls2=[]
def func2(n): #从高分位开始打印
    if n < 10:
        ls2.append(n)
    else:
        func2(n//10)
        ls2.append(n%10) #从这里开始回溯了
    return ls2
print(tuple(func2(1234)))

参考:(14条消息) python 利用递归实现打印一个数字的每一位_Jenny_He的博客-CSDN博客_python输出一个数的每一位

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐