#迴圈

#for迴圈 (for loop)
#身為一個程式設計師，你一定要認識迴圈界的明星，那就是所謂的for迴圈!
#for loop的設計概念大概是像這樣的：
#doing this loop for X times => 請執行這個迴圈X次
#所以在其他程式語言中，for迴圈的基本型都是要你給定執行次數。
#但在Python之中，for迴圈卻是走另外一條路線。
#Python的for迴圈，是設計來從序列容器內提取物件的。
#簡單來說，要使用for迴圈，要先有序列容器。

arr1 = [2, 4, 6, 8, 10]
str1 = 'hello python'

for i in range(10):
    print(i)
print('***\n')

for i in range(len(arr1)):
    print(arr1[i])
print('***\n')

for i in arr1:
    print(i)
print('***\n')

for i in str1:
    print(i)
print('***\n')

# for i in arr1:
#     i += 1
# print(arr1)


""" 首先，我們來看看第一個for迴圈。
我們產生了一個含有10個元素的range，內部的元素為0~9。
接著我們使用for 變數 in 容器的語法，來告訴Python我們要從這個容器中拿出元素。
接著迴圈要做的事情，我們要以一個程式區塊來表示。
還記得我們在語法教學part 1說的，程式區塊必須以:以及縮排來定義。
最後我們來好好探討這個變數i，這個變數即為我們從容器所取出的元素，因此在每次執行迴圈的過程中，這個i的值會不一樣。
以這個range為例，他依序存放0~9，因此第一次取出的元素為0，第二次為1，之後以此類推。
取出後我們將元素放入print這個函式，將他們輸出到螢幕上。

來看看第二個迴圈。
首先我們用len來取得arr1的長度，並用這個長度來產生一個range。
arr1的長度為5，因此會產生一個大小為5的range，裡面放有0~4。
如果你還記得昨天我們說過的index，一個長度為5的List，其中每個元素對應的index就剛好為0~4。
因此for迴圈從這個range中取出的五個元素，就剛好可以用來當作arr1的index，再搭配容器[index]的語法，就可以拿到List中的元素囉!

第三與第四個迴圈與前面的例子都很像，因此我們在此不多做解釋。
但被註解掉的第五個迴圈就很有趣了。
請你在心中默默猜測最後的print(arr1)到底會印出什麼，再把註解拿掉，執行程式。
你猜對了嗎? """