Python计算数位分离的效率优化

原始方案

# 给定一个不超过5的正整数(不转换为字符串),依次打印万位、千位、百位、十位、各位数字。

y = 54321
x = 10000
for i in range(5):
    m = y//x #*位是m
    print("高位是{:_<10}".format(m), end="")
    y = y%x #余数是y
    print(f"余数是{y}")
    x=x/10 
>>>高位是5_________余数是4321
>>>高位是4.0_______余数是321.0
>>>高位是3.0_______余数是21.0
>>>高位是2.0_______余数是1.0
>>>高位是1.0_______余数是0.0

优化方案:减少range从5到4

 
y = 54321
x = 10000
for i in range(4):
    m = y//x #*位是m
    print("高位是{:_<10}".format(m), end="")
    y = y%x #余数是y
    print(f"余数是{y}")
    x=x/10
print("高位是{}".format(y)) #把print提出来打印,就可以减少range从5到4,让我们做一个斤斤计较的程序员
>>>高位是5_________余数是4321
>>>高位是4.0_______余数是321.0
>>>高位是3.0_______余数是21.0
>>>高位是2.0_______余数是1.0
>>>高位是1.0

第二种写法

Python数位分离的效率优化:一个else也要计较

# 常规语句
y =54321
for i in range(4, 0 ,-1):
    w = 10 ** i
    x = y // w
    y = y %w
    print(x,y)
else:
    print(y)
    >>>5 4321
>>>4 321
>>>3 21
>>>2 1
>>>1

else省略:

# 通过提出else里面的语句,可以省略一次else的判断子句
y =54321
for i in range(4, 0 ,-1):
    w = 10 ** i
    x = y // w
    y = y %w
    print(x,y)
print(y) #提出else里面的语句
>>>5 4321
>>>4 321
>>>3 21
>>>2 1
>>>1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值