一、主題介紹:
有時候在撰寫 Python 程式中,為了需要符合列印輸出想要的格式,或則為了整齊美觀必須這麼做,所以就得想盡各種方法來完成它,今天就來測驗中華民國電腦技能基金會考題,看看自己是否能完成題目想要的輸出格式。
(1) 題目
請撰寫一程式,讓使用者輸入一個1~9位數的數字,輸出每一個數字相乘的算式及結果。
(2) 輸入輸出
#輸入
一個1~9位數的數字
#輸出
每一個數字相乘的算式及結果
#範例輸入一
57326
#範例輸出一
5*7*3*2*6=1260
#範例輸入二
0
#範例輸出二
0=0
二、程式範例:
(1) 方法一
1. str = input()
2. array = list(str)
3. product = 1
4. for num in array:
5. product = product * eval(num)
6. if len(array)>0:
7. s = array[0]
8. for i in range(1,len(array)):
9. s = s + '*' + array[i]
10. print(f"{s}={product}")
#執行結果
57326
5*7*3*2*6=1260
0
0=0
(2) 方法二
1. str = input()
2. array = list(str)
3. product = 1
4. for num in array:
5. product = product * eval(num)
6. s = '*'.join(array)
7. print(f"{s}={product}")
#執行結果
57326
5*7*3*2*6=1260
0
0=0
三、程式說明:
以上兩種方法都可以完成題目想要的結果,不同的是撰寫程式內容的不同,方法一的第6~9行使用傳統邏輯寫法,一個字串循環合併另一個字串,而方法二就厲害了,它在第6行使用了 join 內建函式,將串列資料間字串使用 * 字元隔開合併為一個字串,一行程式就解決題目想要的功能,不但程式簡潔易維護,而且省下了很多時間。
沒有留言:
張貼留言