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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章