直角三角形星星有四種情況分別是,如下圖所示,假設行數等於列數
其中(1)和(2)屬於一種情況,(3)與(4)屬於另一種情況
首先說(1)和(2):
這種三角形星星只需要列印星星即可,然後觀察可以知道
圖(1)是第1行列印1個星星,第2行列印2個星星,以此類推
# 定義行變數,從1開始計數
row = 1
# 迴圈5次
while row <= 5:
print("*" * row) # 第i行列印i個星星
row += 1
print("end")
圖(2)類似,只不過變成第1行列印5個星星,第2行列印4個星星,以此類推第i行列印n-i+1個,n為行數,**讀者可以自行練習這裡就省略了。
接下來說(3)和(4):
這種三角形星星即要列印空格又要列印星星,觀察可知
圖(3)是第1行列印0個空格和5個星星,第2行是列印1個空格和4個星星,以此類推
# 定義行變數,從1開始計數
row = 1
while row <= 5:
print(" " * (row-1) + "*" * (6-row)) # 第i行列印i-1個空格和6-i個星星,加起來等於行數5
row += 1
print("end")
圖(4)類似,只不過變成第1行列印4個空格和1個星星,第2行列印3個空格和2個星星,以此類推第i行列印n-i個空格和i個星星,加起來等於行數n,**讀者可以自行練習。
不使用字串拼接列印就有點類似c等其他語言的思路,就是乙個乙個的列印,那麼就需要變化一下,首先來介紹一下print函式
# 向控制台輸出內容結束之後,不會換行
print("*", end="")
# 單純的換行
print("")
end=""
表示向控制台輸出內容結束之後,不會換行
有了以上知識後首先說圖(1)和(2)
由於是從左到右乙個字元乙個字元的列印,這個時候就需要引入列變數了
圖(1)第1行列印1個星星,就是列變數計數的內層迴圈只迴圈1次,第2行列印2個星星就是列變數計數的內層迴圈迴圈2次,以此類推
# 定義行變數,從1開始計數
row = 1
while row <= 5:
# 定義列變數,從1開始計數
col = 1
# 第i行,列迴圈i次
while col <= row:
print("*", end="")
col += 1
# 每列印完1行換行
print("")
row += 1
print("end")
圖(2)類似,第1行列印5個星星,就是列變數計數的內層迴圈迴圈5次,第2行列印4個星星就是列變數計數的內層迴圈迴圈4次,以此類推第i行的內層迴圈迴圈n+1-i次,其中n為行數,**讀者可以自行練習。
圖(3)和(4)就比較麻煩,因為既要列印空格又要列印星星
我們可以這麼來看圖(3)和(4),它們都是列印5行,每行有5列,對於每一行來說先列印空格然後列印星星,空格和星星的個數加起來等於5,一共列印25下。
我們可以先簡化問題,列印5行5列,共25個星星看一下
# 定義行變數,從1開始計數
row = 1
while row <= 5: #列印5行
col = 1 # 定義列變數,從1開始計數
while col <= 5: # 每行列印5列
print("*", end="")
col += 1
print("") # 每列印完1行後換行
row += 1
print("end")
有了以上程式之後我們就可以在此基礎上修改
我們的目標是第1行先列印0個空格然後列印5個星星,第2行先列印1個空格然後列印4個星星,可以在內層迴圈中用if來判斷列印幾個空格和幾個星星, 第i行就是i-1個空格和6-i個星星,空格和星星的個數加起來等於列數n
# 定義行變數,從1開始計數
row = 1
while row <= 5: #列印5行
col = 1 # 定義列變數,從1開始計數
while col <= 5: # 每行列印5列
# 第i行列印i-1個空格和6-i個星星
if col <= (row - 1):
print(" ", end="")
else:
print("*", end="")
col += 1
print("") # 每列印完1行後換行
row += 1
print("end")
圖(4)類似,第1行列印4個空格和1個星星,第2行列印3個空格和2個星星,以此類推,第i行列印n-i個空格和i個星星,n等於列數 ,**讀者可以自行練習。 5道關於python基礎 while迴圈練習題
目錄 count 0 while count 10 count 1 print count count 0 total 0 定義兩個變數 while count 100 total count 每迴圈一次,total的count都需要累計加一次 count count 1 每迴圈一次,count都需...
Python中for迴圈和while迴圈
python中用while語句和for語句表示迴圈執行某一段 while後面跟乙個條件,或者跟乙個序列 列表 元組等 序列為空則跳出迴圈,否則繼續迴圈 for迴圈後面跟乙個序列,迴圈次數為序列的長度 while迴圈可以加個else語句,跳出while的時候就執行這個else a 3 while a ...
python中的while迴圈
一 迴圈的一般格式 while if break if continue else 二 迴圈關鍵字pass 1 pass 無運算占用語句,由於語法需要且沒有任何實用語句可寫時實用。2 例項 函式體中使用pass佔位符,實際不做任何操作 def fun pass x 10 while x fun x ...