2019年5月20日 星期一

Python 自學方案- Step(二)

迴圈 For,重複執行某些指令時就可以利用For來實現

「for」和「in」是 Python 的關鍵字,兩者之間可以放置使用者自訂的變數,而「in」後則可接一個序列 (Sequence),串列 (list)、字串 (str)、元組 (tuple) 等皆是序列的一種。表示方式如下

for iterating_var in sequence:
         statements(s)
         break
else:

迴圈會依序從序列取得元素,並將元素指定給前面自訂的變數(此例為iterating_var),再執行迴圈裡的內容,直到序列每一元素都被取出過為止。
break 指令是強制由for迴圈跳出
else : else 中的指令在循環正常執行完(即 for 不是通过 break 跳出而中斷的)的情况下執行
例如下列在Python shell 中輸入下列指令

Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:06:47) [MSC v.1914 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> for i in range(5):    
...     print(i)
...
0
1
2
3
4

上面有使用到range()函数,range()可建立一个整數列表,一般用在 for 循環中
語法:range(start, stop[, step])
start:計數從 start 开始。沒指定數字初始值從 0 開始。例如range(5)等於range(0,5);
stop:計數到 stop 结束,但不包括 stop。例如:range(0,5)是[0, 1, 2, 3, 4]没有5
step:階層,沒指定數字初始值為1。例如:range(0,5)等於 range(0, 5, 1),step 也可以為負值

>>> for i in range(5):
...     print(i)
...     break
...
0

迴圈中出現break,就會強制跳出(結束)迴圈,所以只顯示第一個數字 0



>>> for i in range(5):
...     print(i)
... else:
...     print("Print OK!!")
...
0
1
2
3
4
Print OK!!

迴圈中使用 else: 其實也可以不需要,只要將要執行的指令寫在 迴圈外,也可以達到相同效果

使用雙重迴圈,來寫九九乘法表,如下:

for i in range(1,6):           #把6改成10
  for j in range(2,6):          #把6改成10
x=i*j
print(j , "X" , i , "=", x,end="\t")  #用Tab來區隔,避免擠在一起
  print()


C:\> python test2.py

2 X 1 = 2       3 X 1 = 3       4 X 1 = 4       5 X 1 = 5
2 X 2 = 4       3 X 2 = 6       4 X 2 = 8       5 X 2 = 10
2 X 3 = 6       3 X 3 = 9       4 X 3 = 12      5 X 3 = 15
2 X 4 = 8       3 X 4 = 12      4 X 4 = 16      5 X 4 = 20
2 X 5 = 10      3 X 5 = 15      4 X 5 = 20      5 X 5 = 25

一個階梯程式,每迴圈一次就增加一個 *
y="*"
for i in range(0,10):         #0~9階
print(y," ",i+1)         #顯示 * 及數字
y=y+"*"                   #增加一個* ,放進變數 y

如下:

C:\> python test3.py

*   1
**   2
***   3
****   4
*****   5
******   6
*******   7
********   8
*********   9
**********   10


另一個階梯程式,增加一個縮排階梯
y="*"
for i in range(0,10):         #設定0~9階
print(y)                    #顯示 *
y=y+"*"                  #增加一個* ,放進變數 y

for j in range (9,0,-1):    #設定9~1階,每次-1
print(y[0:j])           #顯示 *


C:\> python test4.py

*
**
***
****
*****
******
*******
********
*********
**********
*********
********
*******
******
*****
****
***
**
*



沒有留言: