Python:替换不吉利数字

小明认为某些数字不吉利,付账时会尽可能少的多付一些钱,使得价格中不包含这些不吉利数字,并且不出现0.
例如,不吉利数字为1,4,7,8,商品价格为1000,小明实际支付2000.
实现程序,输入商品原来的价格price,不吉利数字集合unlucky_numbers,求小明付账时的价格lucky_price.

def numToLucky(price, li) :
    if li == None or li == [] :
        return price
    num_li = [] #把price各位放入列表
    lens = len(str(price))
    for i in range(lens) :
        if i == 0 :
            tmp = price % 10
            num_li.append(tmp)
        else :
            tmp = price // (10**i) %10
            num_li.append(tmp)
    num_li.append(0)    #防溢出
    i = 0
    while i < lens :
        while num_li[i] in li :
            if num_li[i] >= 9 :
                num_li[i] == (num_li[i] + 1) - 10
                num_li[i+1] += 1
            else :
                num_li[i] += 1
        i += 1
    result = 0
    for i in range(lens) :
        tmp = num_li[i]*(10**i)
        result += tmp
    return result

if __name__ == "__main__" :
    price = 1234
    unlucky_numbers = [1,4,7,8]
    lucky_price = numToLucky(price, unlucky_numbers)
    print(lucky_price)

结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值