Hi there! 我是嘟嘟~受到前輩啟發,想說可以紀錄一下自己練習的過程,小女子為程式超超菜鳥,此系列非教學文,僅為個人解題筆記,可能有錯誤或未補充詳盡之處,歡迎前輩們不吝指教!也歡迎正在自學的夥伴一起討論學習~
一個整數n
限制: 2 ≦ n ≦ 20
印出前10個倍數(multiples),每個倍數n*i
(1 ≦ i ≦ 10)都要印在新的一行,且必須印出n x i = result
的格式
2
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20
首先從1~10重複印出,可以使用for
迴圈;字串可以用+
連結在一起,變數記得轉成字串。
n = int(input())
for i in range(1,11): #range(1,11)代表數字1~10
print(str(n) + ' x ' + str(i) + ' = ' + str(n*i)) #注意空格
輸入6
結果為
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
6 x 10 = 60
如果要在字串裡放入變數,可以使用字串格式化達到讓字串裡的變數隨著迴圈不斷改變的效果,在Python里總共有四種方式可以實現。
n = int(input())
for i in range(1,11):
print('%d x %d = %d' % (n,i,n*i))
#%d代表印出為十進位整數,並替換為後面%()元組內對應順序的變數
n = int(input())
for i in range(1,11):
print('{} x {} = {}'.format(n,i,n*i))
#大括號{}會替換為後面元組內對應順序的變數,也可以使用名稱去指定順序
format
和舊式格式化相差無幾,但主要是捨去%
讓字串格式化使用上可以更加正常、規律,可讀性也相對提升。
n = int(input())
for i in range(1,11):
print(f'{n} x {i} = {n*i}')
#f後面的字串內,放入大括號{}代表要替換的變數
新的字串插值語法相當強大的點是,可以在{}裡面嵌入任何 Python 的運算式,一般來說比較推薦這個方法。
from string import Template #從內建模組string導入Template
n = int(input())
for i in range(1,11):
t = Template('$n x $i = $c')
print(t.substitute(n=n,i=n,c=n*i)) #名稱指定要替換的變數
樣板字串較能可以避免一些資訊安全上的問題,例如惡意使用者輸入變數來轉換成字串格式化,利用敏感性資料(例如:密碼、token、金鑰等)取出機密資料的時候。