Python中while迴圈練習 列印星星總結

2021-09-08 20:19:18 字數 2726 閱讀 1582

直角三角形星星有四種情況分別是,如下圖所示,假設行數等於列數

其中(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 ...