分解一个正整数的各位数字,并以一个元组的形式返回的不同方法

#方法一(数字解包,最快!)
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输出一个数的每一位

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值