-
- 目標任務
-
- 完成第1行輸出
-
- 分析前3行規(guī)律
-
- 編寫第1行代碼
-
- 編寫前2行代碼
-
- 調整輸出格式
-
- 完成總代碼
1. 目標任務
本節(jié)的任務是利用for循環(huán)嵌套編寫九九乘法表。
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
怎樣才能輸出上面的九九乘法表呢?
在我們沒有思路的時候,我們先把任務拆分,然后試著找到編寫規(guī)律。
2. 完成第1行輸出
【目標任務】
原樣輸出1*1=1
x = 1
y = 1
print("%d*%d=%d" % (x, y , x*y))
【終端輸出】
1*1=1
不理解%d作用的需要先回看上一節(jié)《45.%占位符格式化處理》的內容。
【語法】
(要輸出的內容 % 要格式化的變量或數值)
"%d*%d=%d"
是最后要輸出的內容的模板。
%
是格式化占位符。
x, y , x*y
是3個要格式化的變量,分別替換輸出模板中的%d
.
2. 分析前3行規(guī)律
【輸出內容】
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
【分析規(guī)律】
第1行:x=1,y=1
第2行:x=1、2,y=2
第3行:x=1、2、3,y=3
我們發(fā)現y的值在每一行都是固定的,第1行y=1,第y=2,第3行y=3。
x的值是不固定的,它和y有一定的關聯。
y=1時,x=1
y=2時,x=1,2
y=3時,x=1,2,3
x的值總是從1開始到y(tǒng)結束,且兩個數之間差1。
我們可以很快速的想到range函數可以實現這個輸出。
x和y是要聯系在一起的,因此這里用y+1來控制x的值。
range函數含前不含后,因此,當x要取1的時候,range函數要以y+1結束(不含)。
【y = 1】
y = 1
print(list(range(1,y+1)))
【終端輸出】
[1]
【y = 2】
y = 2
print(list(range(1,y+1)))
【終端輸出】
[1, 2]
【y = 3】
y = 3
print(list(range(1,y+1)))
【終端輸出】
[1, 2, 3]
3. 編寫第1行代碼
值是變動的,且每次取出的數值是不一樣的,我們考慮用range函數來生成值,用for循環(huán)來取值。
y在每一行都是固定的,因此我們可以把y寫成for循環(huán)的外循環(huán)。
x每次都是從1開始,到等于y值結束,因此x要寫成for循環(huán)的內循環(huán)。
同樣先完成第一行代碼的編寫。
for y in range(1,2):
for x in range(1,y+1):
print("%d*%d=%d" % (x, y , x*y))
【終端輸出】
1*1=1
4. 編寫前2行代碼
1*1=1
1*2=2 2*2=4
第2行,y=2,外循環(huán)的range的范圍為1到3(不含3)。
for y in range(1,3):
for x in range(1,y+1):
print("%d*%d=%d" % (x, y , x*y))
【終端輸出】
1*1=1
1*2=2
2*2=4
5. 調整輸出格式
觀察輸出結果,發(fā)現輸出的格式和我們要的不一樣。
再觀察九九乘法表,我們發(fā)現每一行輸出以后都有一個換行。
因此在每一次內循環(huán)執(zhí)行完畢后我們都添加一個換行print( )
。
因為每1行的2個表達式之間都有一個空格,因此我們在內循環(huán)中添加一個空格end = " "
。
end表示打印完最后一個值需要添加的字符串,用來設定輸出語句以什么結尾。
end = " "
:end引號中有1個空格,意思是輸出完表達式后在輸出一個空格。
for y in range(1,3):
for x in range(1,y+1):
print("%d*%d=%d" % (x, y , x*y),end = " ")
# 內循環(huán)結束,輸出一個換行
print()
【終端輸出】
1*1=1
1*2=2 2*2=4
6. 完成總代碼
乘法口訣共有9行,外循環(huán)需要循環(huán)9次,y的取值范圍為1到9。
for y in range(1,10):
for x in range(1,y+1):
print("%d*%d=%d" % (x, y, x*y),end = " ")
# 內循環(huán)結束,輸出一個換行
print()
【終端輸出】
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
46-1九九乘法表
-
循環(huán)
+關注
關注
0文章
92瀏覽量
15947 -
編寫
+關注
關注
0文章
29瀏覽量
8425 -
for
+關注
關注
0文章
44瀏覽量
15784
發(fā)布評論請先 登錄
相關推薦
評論