原始方案
# 給定一個不超過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