Python——for 循環實現空心菱形

上次給大家介紹了python3.x和2.7在輸出列印時的不同之處。昨天用for實現了實心菱形,今天繼續用for循環實現空心菱形!

代碼如下:

源代碼圖

效果圖

解釋代碼如下:

  1. 102行提示用戶輸入一個num值。

  2. 103行是三個變數初始值,做循環次數用的。

  3. 104行是一個輸入整數num以獲取菱形大小的命令,num的值確定了菱形的大小。

  4. 105行 i 的取值是從 0-num(不包含num)的,i 控制菱形上半部分的行數,由效果圖我們可以看出,上半部分總共有6行(最中間那一行我們放在菱形下半部分,一會詳細說)

  5. 106行 107行 : j 控制空格的多少,當 i =0時,j 取值是 0-6(不包含6),循環列印空格,因此效果圖中第一行有6個空格,!!輸入完6個空格之後游標停留在第6個空格之後!!

    Advertisements

  6. 108行 在6個空格之後輸入一個*,!!游標在*之後!!

  7. 剩下109行-113行一起講:

    109行-103行控制菱形上半部分* 的個數,109行中,當 i =0 時,k=-1,此時循環沒啥意義,也就是說110行不作任何輸出,111-112也不做任何事,因為不符合條件啊。113行輸入的是一個空字元,其作用是換行,執行這一步之前游標在第6補那裡,當執行113行后游標換到下一行,此時 i=0時,菱形上半部分循環完畢。接下來是i= 1時的循環,i=1時,106行j=5,107行循環輸入5個空格,108行輸入一個*,!!游標在*之後!!109行k=1,109行控制的循環是輸入一個空格(k等於幾就輸入幾個空格!)游標在空格之後,110行滿足條件所以112行輸入一個* 113行換行,此時游標在下一行(進行i=2時的循環,大家自己走一遍流程)

    Advertisements

  8. 菱形的下半部分走的流程和上半部分一樣。有不懂的可以私信我!

  9. 附上源碼:

print('print a num is 1-10')

i=j=k=0

num =int(input())

for i in range(0,num):

for j in range(num-i):

print(' ',end='')

print('*',end='')

for k in range(2*i-1):

print(' ',end='')

if i>=1:

print('*',end='')

print('')

for i in range(0,num+1):

for j in range(i):

print(' ',end='')

print('*',end='')

for k in range(2*num-2*i-1):

print(' ',end='')

if i<6:

print('*',end='')

print('')

附上作者帥照和工作日常:

作者帥照

工作日常

Advertisements

你可能會喜歡